feat(bookings): implement ticket receipts and seat sharing system

Add receipt tokens and booking_seats table to track individual tickets
Create receipt and seat view pages with QR code generation
This commit is contained in:
2026-04-12 22:48:26 +08:00
parent 7f582b530c
commit 6194c96ead
15 changed files with 1663 additions and 61 deletions

View File

@@ -6,6 +6,10 @@ import type { CreateBookingResponse } from '~~/shared/booking'
import {
BOOKING_MODE_OPTIONS,
BOOKING_TICKET_CATALOG,
DINNER_EVENT_DATE_LABEL,
DINNER_EVENT_TIME_LABEL,
DINNER_EVENT_TITLE,
DINNER_EVENT_VENUE,
formatBookingCurrency,
getSeatCount,
getTicketCatalogItem,
@@ -22,17 +26,17 @@ const apiClient = useApiClient()
const eventDetails = [
{
label: 'Date',
value: 'Saturday, 30 May 2026',
value: DINNER_EVENT_DATE_LABEL,
icon: 'lucide:calendar-days'
},
{
label: 'Time',
value: '6:30 PM',
value: DINNER_EVENT_TIME_LABEL,
icon: 'lucide:clock-6'
},
{
label: 'Venue',
value: "Yong Peng's Chee Ann Kor",
value: DINNER_EVENT_VENUE,
icon: 'lucide:map-pin'
}
] as const
@@ -151,7 +155,7 @@ async function bookTicket(event: FormSubmitEvent<typeof form>) {
<div class="mx-auto max-w-2xl">
<div class="mb-8 text-center">
<h1 class="text-3xl font-extrabold tracking-tight text-highlighted sm:text-4xl">
DAP JOHOR 60th Anniversary Celebration
{{ DINNER_EVENT_TITLE }}
</h1>
</div>