UNPKG

company-cafeteria-shared-demo

Version:

Package partagé pour l'écosystème Cafétéria Entreprise

66 lines 2.56 kB
/** * Rôles d'utilisateur dans le système */ export declare const USER_ROLES: { readonly AGENT: "agent"; readonly ADMIN: "admin"; readonly KITCHEN: "kitchen"; readonly MANAGER: "manager"; }; export type UserRole = typeof USER_ROLES[keyof typeof USER_ROLES]; /** * Permissions par rôle */ export declare const ROLE_PERMISSIONS: { readonly agent: readonly ["view_menu", "create_order", "view_own_orders", "cancel_own_order", "update_profile", "view_recommendations"]; readonly kitchen: readonly ["view_menu", "view_all_orders", "update_order_status", "manage_inventory", "view_kitchen_analytics"]; readonly manager: readonly ["view_menu", "manage_menu", "view_all_orders", "view_analytics", "manage_promotions", "export_data"]; readonly admin: readonly ["view_menu", "manage_menu", "view_all_orders", "update_order_status", "manage_inventory", "view_analytics", "manage_users", "manage_promotions", "system_settings", "export_data", "manage_ai_settings"]; }; /** * Libellés d'affichage pour les rôles */ export declare const ROLE_LABELS: Record<UserRole, string>; /** * Descriptions des rôles */ export declare const ROLE_DESCRIPTIONS: Record<UserRole, string>; /** * Hiérarchie des rôles (du plus bas au plus élevé) */ export declare const ROLE_HIERARCHY: UserRole[]; /** * Vérifie si un utilisateur a une permission spécifique */ export declare function hasPermission(userRole: UserRole, permission: string): boolean; /** * Vérifie si un rôle a un niveau hiérarchique supérieur ou égal à un autre */ export declare function hasRoleLevel(userRole: UserRole, requiredRole: UserRole): boolean; /** * Obtient toutes les permissions d'un rôle */ export declare function getRolePermissions(userRole: UserRole): readonly string[]; /** * Vérifie si un utilisateur peut effectuer une action sur une commande */ export declare function canManageOrder(userRole: UserRole, orderUserId: string, currentUserId: string): boolean; /** * Départements disponibles pour les agents */ export declare const DEPARTMENTS: { readonly IT: "IT"; readonly MARKETING: "Marketing"; readonly SALES: "Commercial"; readonly HR: "Ressources Humaines"; readonly FINANCE: "Finance"; readonly OPERATIONS: "Opérations"; readonly DESIGN: "Design"; readonly LEGAL: "Juridique"; }; export type Department = typeof DEPARTMENTS[keyof typeof DEPARTMENTS]; /** * Libellés des départements */ export declare const DEPARTMENT_LABELS: Record<Department, string>; //# sourceMappingURL=userRoles.d.ts.map