/** * Zuordnung Widget-Typ → Modul (D-22, PERM-07). * * Zweck: Widgets eines für den Benutzer gesperrten Moduls verschwinden * serverseitig aus GET /dashboard/widgets — DashboardService.getWidgets * filtert darüber. * * Schlüssel sind Werte von `WidgetInstance.widgetType`, Werte sind * Modul-Slugs aus `Module.slug`. * * Bewusst eine TypeScript-Konstante statt einer Spalte auf * `WidgetInstance`: eine Migration auf einer bereits befüllten Tabelle * für ein Feld, das derzeit für jede Zeile leer wäre, wiegt schwerer als * diese Konstante mit identischer Aussagekraft (15-RESEARCH.md Pitfall 5). * * Die Tabelle ist am Ende dieser Phase bewusst leer: alle acht heute * registrierten Widget-Typen (clock/search/calendar/note/calculator/ * favorites/link/stopwatch, siehe apps/web/src/components/dashboard/ * widget-registry.tsx) sind Plattform-Widgets ohne Modulbezug. Das * einzige bislang geplante modulgebundene Widget steht in * .planning/REQUIREMENTS.md unter "Future Requirements (deferred)" und * wird in dieser Phase bewusst nicht registriert. */ export const WIDGET_MODULE_MAP: Readonly> = {}; /** * Liefert den Modul-Slug für einen Widget-Typ, oder `undefined`, wenn * der Typ kein Modul-Widget ist (der heutige Zustand für alle acht * bestehenden Typen). Einziger Lesezugriff auf die Zuordnungstabelle, * damit Tests sie gezielt mocken können. */ export function getModuleSlugForWidgetType(widgetType: string): string | undefined { return WIDGET_MODULE_MAP[widgetType]; }