/** * Central, extensible registry of known analytics event names. Adding a new * event elsewhere in the app never requires a migration - the database * column (collections/AnalyticsEvents.ts#eventName) is free-text - this * list exists purely so `track()` calls get autocomplete/type-checking and * the dashboard can show a nice German label instead of a raw event name. * * To add a new event: add one entry here, then call `track("your_event")` * anywhere in the app (see lib/analytics/client.ts). */ export const ANALYTICS_EVENTS = { page_view: "Seitenaufruf", booking_started: "Buchung gestartet", booking_completed: "Buchung abgeschlossen", contact_clicked: "Kontakt angeklickt", navigation_clicked: "Navigation geklickt", } as const; export type KnownAnalyticsEvent = keyof typeof ANALYTICS_EVENTS; /** Any string works (see the collection comment above) - known ones just get a label. */ export type AnalyticsEventName = KnownAnalyticsEvent | (string & {}); export function analyticsEventLabel(eventName: string): string { return (ANALYTICS_EVENTS as Record)[eventName] ?? eventName; }