Files
car-tracker/app/models/maintenance_notification.rb
T
bionickatana 87d2141ed0
CI / scan_ruby (push) Failing after 7s
CI / scan_js (push) Failing after 7s
CI / lint (push) Failing after 8s
Finished phase006
2026-09-16 16:37:03 -06:00

19 lines
784 B
Ruby

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