Class: LlmCostTracker::Ledger::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/llm_cost_tracker/ledger/store.rb

Class Method Summary collapse

Class Method Details

.insert_many(events) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/llm_cost_tracker/ledger/store.rb', line 10

def insert_many(events)
  events = Array(events)
  return [] if events.empty?

  model = LlmCostTracker::Ledger::Call
  insertable = new_events(model, events)

  if insertable.any?
    rows = insertable.map { |event| attributes_for(event) }
    model.insert_all!(rows, record_timestamps: true, returning: false)
    Ledger::Rollups.increment_many!(insertable)
  end
  events
end