company-cafeteria-shared-demo
Version:
Package partagé pour l'écosystème Cafétéria Entreprise
66 lines • 2.56 kB
TypeScript
/**
* 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