import { z } from "zod"; import { uuidSchema } from "./common"; /** * Zod-Schemas für die Benutzerverwaltung im Wehr-Bereich (Workstream 7). * * WICHTIG (Sicherheit): Die Rolle ist auf `wehr_admin | wehr_read` beschränkt. * Ein Wehr-Admin darf NIEMALS `platform_admin` vergeben — Zod lehnt das an der * Grenze ab (Querschnittsstandard 4, Verteidigung in der Tiefe zusätzlich zum * serverseitigen Scope-Guard). */ export const brigadeUserRoleSchema = z.enum(["wehr_admin", "wehr_read"], { errorMap: () => ({ message: "Unzulässige Rolle." }), }); export const brigadeUserCreateSchema = z.object({ email: z .string() .trim() .email({ message: "Ungültige E-Mail." }) .transform((v) => v.toLowerCase()), name: z.string().trim().min(1, { message: "Name ist Pflicht." }), rolle: brigadeUserRoleSchema, }); export type BrigadeUserCreateInput = z.infer; export const brigadeUserDeactivateSchema = z.object({ userId: uuidSchema, }); export type BrigadeUserDeactivateInput = z.infer< typeof brigadeUserDeactivateSchema >;