since3-portal/modules/templates/ai/demos.ts
2026-10-05 08:23:02 +02:00

23 lines
887 B
TypeScript

// Ohne zod, damit Vorlagen-Seiten (Badge, Chat) schlank bleiben
// Admins greifen über die Varianten-ID zu, Kunden über den Freigabe-Token
export type AiAccess = { token: string } | { variantId: string }
// KI-Demos als eigene Seiten; `feature` ist der Schalter in AiSettings
export const AI_DEMOS = {
telefon: { feature: "phone", label: "KI-Telefon" },
assistent: { feature: "assistant", label: "Angebots-Assistent" },
content: { feature: "content", label: "Content-Generator" },
} as const
export type AiDemoSlug = keyof typeof AI_DEMOS
export const AI_DEMO_SLUGS = Object.keys(AI_DEMOS) as AiDemoSlug[]
export function isDemoSlug(value: string): value is AiDemoSlug {
return value in AI_DEMOS
}
export function demoHref(access: AiAccess, slug: AiDemoSlug) {
return "token" in access ? `/demo/${access.token}/${slug}` : `/ki/${access.variantId}/${slug}`
}