UNPKG

company-cafeteria-shared-demo

Version:

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

134 lines 4.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ORDER_STATUS_COLORS = exports.ORDER_STATUS_ICONS = exports.ORDER_STATUS_MESSAGES = exports.FINAL_STATUSES = exports.ACTIVE_STATUSES = exports.CANCELLABLE_STATUSES = exports.ORDER_STATUS_TRANSITIONS = exports.ORDER_STATUS = void 0; exports.isValidStatusTransition = isValidStatusTransition; exports.canCancelOrder = canCancelOrder; exports.isActiveOrder = isActiveOrder; exports.isFinalOrder = isFinalOrder; /** * Statuts possibles pour une commande */ exports.ORDER_STATUS = { PENDING: 'pending', CONFIRMED: 'confirmed', PREPARING: 'preparing', READY: 'ready', COMPLETED: 'completed', CANCELLED: 'cancelled' }; /** * Transitions de statut autorisées */ exports.ORDER_STATUS_TRANSITIONS = { [exports.ORDER_STATUS.PENDING]: [exports.ORDER_STATUS.CONFIRMED, exports.ORDER_STATUS.CANCELLED], [exports.ORDER_STATUS.CONFIRMED]: [exports.ORDER_STATUS.PREPARING, exports.ORDER_STATUS.CANCELLED], [exports.ORDER_STATUS.PREPARING]: [exports.ORDER_STATUS.READY, exports.ORDER_STATUS.CANCELLED], [exports.ORDER_STATUS.READY]: [exports.ORDER_STATUS.COMPLETED], [exports.ORDER_STATUS.COMPLETED]: [], [exports.ORDER_STATUS.CANCELLED]: [] }; /** * Statuts où l'utilisateur peut annuler sa commande */ exports.CANCELLABLE_STATUSES = [ exports.ORDER_STATUS.PENDING, exports.ORDER_STATUS.CONFIRMED ]; /** * Statuts indiquant une commande active */ exports.ACTIVE_STATUSES = [ exports.ORDER_STATUS.PENDING, exports.ORDER_STATUS.CONFIRMED, exports.ORDER_STATUS.PREPARING, exports.ORDER_STATUS.READY ]; /** * Statuts finaux (commande terminée) */ exports.FINAL_STATUSES = [ exports.ORDER_STATUS.COMPLETED, exports.ORDER_STATUS.CANCELLED ]; /** * Messages d'affichage pour chaque statut */ exports.ORDER_STATUS_MESSAGES = { [exports.ORDER_STATUS.PENDING]: 'En attente de confirmation', [exports.ORDER_STATUS.CONFIRMED]: 'Confirmée', [exports.ORDER_STATUS.PREPARING]: 'En préparation', [exports.ORDER_STATUS.READY]: 'Prête à récupérer', [exports.ORDER_STATUS.COMPLETED]: 'Récupérée', [exports.ORDER_STATUS.CANCELLED]: 'Annulée' }; /** * Icônes pour chaque statut */ exports.ORDER_STATUS_ICONS = { [exports.ORDER_STATUS.PENDING]: '⏳', [exports.ORDER_STATUS.CONFIRMED]: '✅', [exports.ORDER_STATUS.PREPARING]: '👨‍🍳', [exports.ORDER_STATUS.READY]: '🍽️', [exports.ORDER_STATUS.COMPLETED]: '✨', [exports.ORDER_STATUS.CANCELLED]: '❌' }; /** * Couleurs pour chaque statut (Tailwind CSS) */ exports.ORDER_STATUS_COLORS = { [exports.ORDER_STATUS.PENDING]: { bg: 'bg-yellow-100', text: 'text-yellow-800', border: 'border-yellow-200' }, [exports.ORDER_STATUS.CONFIRMED]: { bg: 'bg-blue-100', text: 'text-blue-800', border: 'border-blue-200' }, [exports.ORDER_STATUS.PREPARING]: { bg: 'bg-orange-100', text: 'text-orange-800', border: 'border-orange-200' }, [exports.ORDER_STATUS.READY]: { bg: 'bg-green-100', text: 'text-green-800', border: 'border-green-200' }, [exports.ORDER_STATUS.COMPLETED]: { bg: 'bg-gray-100', text: 'text-gray-800', border: 'border-gray-200' }, [exports.ORDER_STATUS.CANCELLED]: { bg: 'bg-red-100', text: 'text-red-800', border: 'border-red-200' } }; /** * Vérifie si une transition de statut est autorisée */ function isValidStatusTransition(currentStatus, newStatus) { return exports.ORDER_STATUS_TRANSITIONS[currentStatus]?.includes(newStatus) ?? false; } /** * Vérifie si une commande peut être annulée */ function canCancelOrder(status) { return exports.CANCELLABLE_STATUSES.includes(status); } /** * Vérifie si une commande est active */ function isActiveOrder(status) { return exports.ACTIVE_STATUSES.includes(status); } /** * Vérifie si une commande est terminée */ function isFinalOrder(status) { return exports.FINAL_STATUSES.includes(status); } //# sourceMappingURL=orderStatus.js.map