- Add 30-minute expiry window for draft tickets with automatic cleanup - Implement 3-attempt payment retry mechanism with tracking - Create background job for cleaning expired draft tickets every 10 minutes - Add comprehensive UI warnings for expiring tickets and retry attempts - Enhance dashboard to display pending draft tickets with retry options - Add payment cancellation handling with smart retry redirections - Include rake tasks for manual cleanup and statistics - Add database fields: expires_at, payment_attempts, last_payment_attempt_at, stripe_session_id - Fix payment attempt counter display to show correct attempt number (1/3, 2/3, 3/3)
22 lines
790 B
Ruby
22 lines
790 B
Ruby
namespace :tickets do
|
|
desc "Clean up expired draft tickets"
|
|
task cleanup_expired_drafts: :environment do
|
|
puts "Starting cleanup of expired draft tickets..."
|
|
CleanupExpiredDraftsJob.perform_now
|
|
puts "Cleanup completed."
|
|
end
|
|
|
|
desc "Show stats about draft tickets"
|
|
task stats: :environment do
|
|
total_drafts = Ticket.draft.count
|
|
expired_drafts = Ticket.expired_drafts.count
|
|
retryable_drafts = Ticket.can_retry_payment.count
|
|
|
|
puts "=== Draft Ticket Statistics ==="
|
|
puts "Total draft tickets: #{total_drafts}"
|
|
puts "Expired draft tickets: #{expired_drafts}"
|
|
puts "Retryable draft tickets: #{retryable_drafts}"
|
|
puts "Max payment attempts: #{Ticket::MAX_PAYMENT_ATTEMPTS}"
|
|
puts "Draft expiry time: #{Ticket::DRAFT_EXPIRY_TIME}"
|
|
end
|
|
end |