- Implement comprehensive email notification system for ticket purchases and event reminders - Add event reminder job with configurable scheduling - Enhance ticket mailer with QR code generation and proper formatting - Update order model with email delivery tracking - Add comprehensive test coverage for all email functionality - Configure proper mailer settings and disable annotations - Update backlog to reflect completed email features 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
20 lines
706 B
Ruby
20 lines
706 B
Ruby
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
|