feat(booking): move event and ticket configuration to database
Replace hardcoded event details and ticket types with dynamic DB records Add booking-config API endpoint to serve active event settings
This commit is contained in:
@@ -2,13 +2,8 @@
|
||||
import type { PublicSeatReceipt } from '~~/shared/booking'
|
||||
|
||||
import {
|
||||
DINNER_EVENT_DATE_LABEL,
|
||||
DINNER_EVENT_TIME_LABEL,
|
||||
DINNER_EVENT_TITLE,
|
||||
DINNER_EVENT_VENUE,
|
||||
formatBookingCurrency,
|
||||
getSeatLabel,
|
||||
getTicketCatalogItem
|
||||
getSeatLabel
|
||||
} from '~~/shared/booking'
|
||||
|
||||
import { formatDateTime } from '../../utils/formatters'
|
||||
@@ -31,7 +26,8 @@ try {
|
||||
|
||||
const receipt = ref(initialReceipt)
|
||||
|
||||
const ticketLabel = computed(() => getTicketCatalogItem(receipt.value.booking.ticketType)?.label || receipt.value.booking.ticketType.toUpperCase())
|
||||
const eventDetails = computed(() => receipt.value.booking.event)
|
||||
const ticketLabel = computed(() => receipt.value.booking.ticketLabel || receipt.value.booking.ticketType.toUpperCase())
|
||||
const totalFormatted = computed(() => formatBookingCurrency(receipt.value.booking.totalPrice))
|
||||
</script>
|
||||
|
||||
@@ -44,7 +40,7 @@ const totalFormatted = computed(() => formatBookingCurrency(receipt.value.bookin
|
||||
{{ getSeatLabel(receipt.seat.seatNumber) }}
|
||||
</h1>
|
||||
<p class="text-sm text-muted">
|
||||
{{ DINNER_EVENT_TITLE }}
|
||||
{{ eventDetails.title }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -124,15 +120,15 @@ const totalFormatted = computed(() => formatBookingCurrency(receipt.value.bookin
|
||||
<div class="space-y-3 rounded-2xl border border-default bg-elevated p-4">
|
||||
<div class="flex items-center gap-3 text-sm text-default">
|
||||
<UIcon name="i-lucide-calendar-days" class="size-4 text-muted" />
|
||||
<span>{{ DINNER_EVENT_DATE_LABEL }}</span>
|
||||
<span>{{ eventDetails.dateLabel }}</span>
|
||||
</div>
|
||||
<div class="flex items-center gap-3 text-sm text-default">
|
||||
<UIcon name="i-lucide-clock-6" class="size-4 text-muted" />
|
||||
<span>{{ DINNER_EVENT_TIME_LABEL }}</span>
|
||||
<span>{{ eventDetails.timeLabel }}</span>
|
||||
</div>
|
||||
<div class="flex items-center gap-3 text-sm text-default">
|
||||
<UIcon name="i-lucide-map-pin" class="size-4 text-muted" />
|
||||
<span>{{ DINNER_EVENT_VENUE }}</span>
|
||||
<span>{{ eventDetails.venue }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user