Class: UserAvgPerPaxBookingWorker

Inherits:
ApplicationWorker show all
Defined in:
app/workers/user_avg_per_pax_booking_worker.rb

Instance Method Summary collapse

Methods inherited from ApplicationWorker

unlimited_retry

Instance Method Details

#perform(reservation_id) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/workers/user_avg_per_pax_booking_worker.rb', line 2

def perform(reservation_id)
  reservation = Reservation.find(reservation_id)

  return false if reservation.cancelled? || reservation.user.blank? || !reservation.package? || !reservation.reached_goal?

  user = reservation.user
  avg_pax_per_booking = user.avg_pax_per_booking.presence || 0

  reservations = user.reservations.reached_goal_scope
  reservations_count = reservations.count
  reservations_total_adult = reservations.sum(:adult)

  total_avg_pax_per_booking = reservations_count.zero? ? 0 : (reservations_total_adult / reservations_count)

  user.update(avg_pax_per_booking: total_avg_pax_per_booking)
end