/** * Property On — Verzeichnis der digitalen Belegschaft. * * Ergänzt `teamAgent.ts`, ersetzt es nicht: `TeamAgent` ist das vollständige * Personaldossier der sieben Kernteammitglieder, `AgentDirectoryEntry` sind die * Stammdaten aller 36 Mitarbeitenden für die Kreisdarstellung. * * Die Stufenbezeichnungen sind aus dem Konzeptdokument übernommen und nicht neu * erfunden. Sie sind kumulativ zu lesen — «+ Zentrale Dienste» meint Kernteam * plus Zentrale Dienste, nicht Zentrale Dienste allein. */ /** Personalstufe — bestimmt zugleich den Ring in der Kreisdarstellung. */ export const AgentLevel = { CORE: 'CORE', CENTRAL_SERVICES: 'CENTRAL_SERVICES', COMMERCIAL: 'COMMERCIAL', RESIDENTIAL: 'RESIDENTIAL', } as const export type AgentLevel = typeof AgentLevel[keyof typeof AgentLevel] /** Ringreihenfolge von innen nach aussen. */ export const AGENT_LEVEL_ORDER: AgentLevel[] = [ AgentLevel.CORE, AgentLevel.CENTRAL_SERVICES, AgentLevel.COMMERCIAL, AgentLevel.RESIDENTIAL, ] export const AgentDepartment = { CENTRAL_SERVICES: 'CENTRAL_SERVICES', COMMERCIAL: 'COMMERCIAL', RESIDENTIAL: 'RESIDENTIAL', } as const export type AgentDepartment = typeof AgentDepartment[keyof typeof AgentDepartment] /** Aufbaustand aus dem Konzept — nicht zu verwechseln mit `AgentStatus` (aktiv/pausiert). */ export const AgentRollout = { PROTOTYPE: 'PROTOTYPE', IN_PROGRESS: 'IN_PROGRESS', PLANNED: 'PLANNED', } as const export type AgentRollout = typeof AgentRollout[keyof typeof AgentRollout] export interface AgentDirectoryEntry { id: string name: string role: string email: string level: AgentLevel department: AgentDepartment rollout: AgentRollout /** true → vollständiges Personaldossier vorhanden. */ isCore: boolean } /** * Minimalform für die Avatardarstellung. Bewusst schmal, damit sowohl ein * vollständiger `TeamAgent` als auch ein blosser Verzeichniseintrag hineinpasst * — sonst bräuchte es zwei fast identische Avatarkomponenten. */ export interface AgentAvatarSubject { id: string name: string role: string }