feat: PDF ticket generation

- Each ticket has a unique URL for viewing and downloading
- Only the ticket owner can access their ticket
- The customer's name is clearly displayed on the ticket
- The PDF can be downloaded directly from the ticket view page
- All existing functionality continues to work as expected
This commit is contained in:
kbe
2025-09-05 21:19:41 +02:00
parent 01b545c83e
commit a984243fe2
6 changed files with 135 additions and 11 deletions

View File

@@ -50,17 +50,18 @@ Rails.application.routes.draw do
end
end
get "orders/payments/success", to: "orders#payment_success", as: "order_payment_success"
get "orders/payments/cancel", to: "orders#payment_cancel", as: "order_payment_cancel"
get "orders/payments/success", to: "orders#payment_success", as: "order_payment_success"
get "orders/payments/cancel", to: "orders#payment_cancel", as: "order_payment_cancel"
# Legacy ticket routes - redirect to order system
get "events/:slug.:id/tickets/checkout", to: "tickets#checkout", as: "ticket_checkout"
post "events/:slug.:id/tickets/retry", to: "tickets#retry_payment", as: "ticket_retry_payment"
get "payments/success", to: "tickets#payment_success", as: "payment_success"
get "payments/cancel", to: "tickets#payment_cancel", as: "payment_cancel"
# legacy routes
get "payments/success", to: "tickets#payment_success", as: "payment_success"
get "payments/cancel", to: "tickets#payment_cancel", as: "payment_cancel"
# === Tickets ===
get "tickets/:ticket_id/download", to: "events#download_ticket", as: "download_ticket"
get "tickets/checkout/events/:slug.:id", to: "tickets#checkout", as: "ticket_checkout"
post "tickets/retry/events/:slug.:id", to: "tickets#retry_payment", as: "ticket_retry_payment"
get "tickets/:ticket_id", to: "tickets#show", as: "ticket"
get "tickets/:ticket_id/download", to: "tickets#download_ticket", as: "download_ticket"
# === Promoter Routes ===
namespace :promoter do