class EventReminderJob < ApplicationJob queue_as :default def perform(event_id, days_before) event = Event.find(event_id) # Find all users with active tickets for this event users_with_tickets = User.joins(orders: { tickets: :ticket_type }) .where(ticket_types: { event: event }) .where(tickets: { status: "active" }) .distinct users_with_tickets.find_each do |user| TicketMailer.event_reminder(user, event, days_before).deliver_now rescue StandardError => e Rails.logger.error "Failed to send event reminder to user #{user.id} for event #{event.id}: #{e.message}" end end end