Finished phase006
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
class MaintenanceNotification
|
||||
NOTIFIABLE_STATUSES = %w[upcoming overdue].freeze
|
||||
|
||||
def self.record_status_change(schedule, status)
|
||||
return if schedule.last_status == status.status
|
||||
|
||||
previous_status = schedule.last_status.presence || "unknown"
|
||||
schedule.update!(last_status: status.status, last_status_changed_at: Time.current)
|
||||
return unless NOTIFIABLE_STATUSES.include?(status.status)
|
||||
|
||||
Rails.logger.warn(
|
||||
"Maintenance schedule #{status.status}: vehicle_id=#{schedule.vehicle_id} " \
|
||||
"maintenance_schedule_id=#{schedule.id} maintenance_type=#{schedule.maintenance_type.inspect} " \
|
||||
"previous_status=#{previous_status} due_odometer=#{status.due_odometer} due_date=#{status.due_date} " \
|
||||
"reason=#{status.reason.inspect}"
|
||||
)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user