import { Ticket, Plus } from 'lucide-react'; import { getTranslations } from 'next-intl/server'; import { createEventManagementApi } from '@kit/event-management/api'; import { CreateHolidayPassDialog } from '@kit/event-management/components'; import { formatDate, formatCurrencyAmount } from '@kit/shared/dates'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { AccountNotFound } from '~/components/account-not-found'; import { CmsPageShell } from '~/components/cms-page-shell'; import { EmptyState } from '~/components/empty-state'; interface PageProps { params: Promise<{ account: string }>; } export default async function HolidayPassesPage({ params }: PageProps) { const { account } = await params; const client = getSupabaseServerClient(); const t = await getTranslations('cms.events'); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; const api = createEventManagementApi(client); const passes = await api.holidayPasses.list(acct.id); return (

{t('holidayPassesDescription')}

{passes.length === 0 ? ( } title={t('noHolidayPasses')} description={t('noHolidayPassesDescription')} actionLabel={t('newHolidayPass')} /> ) : ( {t('allHolidayPasses')} ({passes.length})
{passes.map((pass: Record) => ( ))}
{t('name')} {t('year')} {t('price')} {t('validFrom')} {t('validUntil')}
{String(pass.name)} {String(pass.year ?? '—')} {pass.price != null ? formatCurrencyAmount(pass.price as number) : '—'} {formatDate(pass.valid_from as string)} {formatDate(pass.valid_until as string)}
)}
); }