import type { UserRole } from "@/src/types/user"; /** Ruoli canonici in italiano (valori consigliati in DB). */ export const USER_ROLES: UserRole[] = ["amministratore", "tecnico", "operatore"]; /** Mappatura ruoli legacy → ruoli attuali. */ const LEGACY_ROLE_MAP: Record = { admin: "amministratore", sviluppo: "amministratore", manager: "tecnico", user: "operatore", amministratore: "amministratore", tecnico: "tecnico", operatore: "operatore", }; export const ROLE_LABELS: Record = { amministratore: "Amministratore", tecnico: "Tecnico", operatore: "Operatore", }; export function isUserRole(value: string): value is UserRole { return USER_ROLES.includes(value as UserRole); } export function normalizeRole(value: string): UserRole | null { const key = value.trim().toLowerCase(); const mapped = LEGACY_ROLE_MAP[key]; return mapped ?? null; } export interface AppPermissions { canManageUtenti: boolean; canManageStabilimenti: boolean; canScaricoArticoli: boolean; canAssegnaArticoliMacchina: boolean; canEditMacchine: boolean; canRemoveArticoloMacchina: boolean; } export function getPermissions(ruolo: UserRole): AppPermissions { switch (ruolo) { case "amministratore": return { canManageUtenti: true, canManageStabilimenti: true, canScaricoArticoli: true, canAssegnaArticoliMacchina: true, canEditMacchine: true, canRemoveArticoloMacchina: true, }; case "tecnico": return { canManageUtenti: false, canManageStabilimenti: false, canScaricoArticoli: true, canAssegnaArticoliMacchina: true, canEditMacchine: true, canRemoveArticoloMacchina: true, }; case "operatore": return { canManageUtenti: false, canManageStabilimenti: false, canScaricoArticoli: false, canAssegnaArticoliMacchina: false, canEditMacchine: false, canRemoveArticoloMacchina: false, }; } }