wagers_to_insert = 100_000

breaks = 10

wagers_per_loop = wagers_to_insert / breaks

competition_id = 135154

product_offering = 5

offset = 0

start_time = DateTime.now
def get_seconds(start_time)
  ((DateTime.now - start_time) * 24 * 60 * 60).to_i
end

puts "submitting #{wagers_to_insert} wagers at: #{start_time}"


breaks.times do |l|
  Wager.transaction do
    wagers_per_loop.times do |i|
      wager_params = {
        payment_cycle_id: 1,
        selection_id: - ((i+(l*wagers_per_loop)) + offset),
        competition_id: competition_id,
        selections: ('31'..'40').to_a,
        paid_cost: 100,
        product_offering_id: product_offering,
        payment_state: Wager::PaymentState::PAID,
        payment_type: 'ot_card',
        operator_id: 99
      }
      Wager.create!(wager_params)
      puts "created #{i+1} wagers in #{get_seconds(start_time)}s" if (i+1) % 100 == 0
    end
  end
  puts "committed #{((l+1)*wagers_per_loop)} wagers at in #{get_seconds(start_time)}"
end
puts "committed #{wagers_to_insert} wagers at: #{DateTime.now} | #{DateTime.now - start_time}"
