"use strict"; /** * Enums Constants - SSOT (Single Source of Truth) * * Todos los enums del sistema. Estos se sincronizan automaticamente * al frontend usando el script sync-enums.ts * * @module @shared/constants/enums */ Object.defineProperty(exports, "__esModule", { value: true }); exports.AUDIT_ACTION = exports.WORKFLOW_ACTION = exports.DOCUMENT_TYPE = exports.DOCUMENT_STATUS = exports.TICKET_PRIORITY = exports.TICKET_STATUS = exports.INFONAVIT_PROGRAM = exports.INFONAVIT_ASSIGNMENT_STATUS = exports.ATTENDANCE_VALIDATION = exports.ATTENDANCE_TYPE = exports.EMPLOYEE_TYPE = exports.WORK_PERMIT_TYPE = exports.TRAINING_TYPE = exports.INCIDENT_STATUS = exports.INCIDENT_TYPE = exports.INCIDENT_SEVERITY = exports.RETENTION_TYPE = exports.ESTIMATION_STATUS = exports.STOCK_MOVE_TYPE = exports.REQUISITION_STATUS = exports.PURCHASE_ORDER_STATUS = exports.BUDGET_STATUS = exports.CONCEPT_TYPE = exports.LOT_STATUS = exports.FRACCIONAMIENTO_STATUS = exports.PROJECT_TYPE = exports.PROJECT_STATUS = exports.USER_STATUS = exports.ROLES = void 0; // ============================================================================ // AUTH & USERS // ============================================================================ /** * Roles del sistema de construccion */ exports.ROLES = { // Super Admin (Plataforma) SUPER_ADMIN: 'super_admin', // Tenant Admin ADMIN: 'admin', // Direccion DIRECTOR_GENERAL: 'director_general', DIRECTOR_PROYECTOS: 'director_proyectos', DIRECTOR_CONSTRUCCION: 'director_construccion', // Gerencias GERENTE_ADMINISTRATIVO: 'gerente_administrativo', GERENTE_OPERACIONES: 'gerente_operaciones', // Ingenieria y Control INGENIERO_RESIDENTE: 'ingeniero_residente', INGENIERO_COSTOS: 'ingeniero_costos', CONTROL_OBRA: 'control_obra', PLANEADOR: 'planeador', // Supervisores SUPERVISOR_OBRA: 'supervisor_obra', SUPERVISOR_HSE: 'supervisor_hse', SUPERVISOR_CALIDAD: 'supervisor_calidad', // Compras y Almacen COMPRAS: 'compras', ALMACENISTA: 'almacenista', // RRHH RRHH: 'rrhh', NOMINA: 'nomina', // Finanzas CONTADOR: 'contador', TESORERO: 'tesorero', // Postventa POSTVENTA: 'postventa', // Externos SUBCONTRATISTA: 'subcontratista', PROVEEDOR: 'proveedor', DERECHOHABIENTE: 'derechohabiente', // Solo lectura VIEWER: 'viewer', }; /** * Estados de cuenta de usuario */ exports.USER_STATUS = { ACTIVE: 'active', INACTIVE: 'inactive', PENDING: 'pending', SUSPENDED: 'suspended', BLOCKED: 'blocked', }; // ============================================================================ // PROYECTOS Y ESTRUCTURA // ============================================================================ /** * Estados de proyecto */ exports.PROJECT_STATUS = { DRAFT: 'draft', PLANNING: 'planning', BIDDING: 'bidding', AWARDED: 'awarded', ACTIVE: 'active', PAUSED: 'paused', COMPLETED: 'completed', CANCELLED: 'cancelled', }; /** * Tipos de proyecto */ exports.PROJECT_TYPE = { HORIZONTAL: 'horizontal', // Casas individuales VERTICAL: 'vertical', // Edificios/Torres MIXED: 'mixed', // Combinado INFRASTRUCTURE: 'infrastructure', // Infraestructura }; /** * Estados de fraccionamiento */ exports.FRACCIONAMIENTO_STATUS = { ACTIVE: 'activo', PAUSED: 'pausado', COMPLETED: 'completado', CANCELLED: 'cancelado', }; /** * Estados de lote */ exports.LOT_STATUS = { AVAILABLE: 'disponible', RESERVED: 'apartado', SOLD: 'vendido', IN_CONSTRUCTION: 'en_construccion', DELIVERED: 'entregado', WARRANTY: 'en_garantia', }; // ============================================================================ // PRESUPUESTOS Y COSTOS // ============================================================================ /** * Tipos de concepto de obra */ exports.CONCEPT_TYPE = { MATERIAL: 'material', LABOR: 'mano_obra', EQUIPMENT: 'equipo', SUBCONTRACT: 'subcontrato', INDIRECT: 'indirecto', OVERHEAD: 'overhead', UTILITY: 'utilidad', }; /** * Estados de presupuesto */ exports.BUDGET_STATUS = { DRAFT: 'borrador', SUBMITTED: 'enviado', APPROVED: 'aprobado', CONTRACTED: 'contratado', CLOSED: 'cerrado', }; // ============================================================================ // COMPRAS E INVENTARIOS // ============================================================================ /** * Estados de orden de compra */ exports.PURCHASE_ORDER_STATUS = { DRAFT: 'borrador', SUBMITTED: 'enviado', APPROVED: 'aprobado', CONFIRMED: 'confirmado', PARTIAL: 'parcial', RECEIVED: 'recibido', CANCELLED: 'cancelado', }; /** * Estados de requisicion */ exports.REQUISITION_STATUS = { DRAFT: 'borrador', SUBMITTED: 'enviado', APPROVED: 'aprobado', REJECTED: 'rechazado', ORDERED: 'ordenado', CLOSED: 'cerrado', }; /** * Tipos de movimiento de inventario */ exports.STOCK_MOVE_TYPE = { INCOMING: 'entrada', OUTGOING: 'salida', TRANSFER: 'traspaso', ADJUSTMENT: 'ajuste', RETURN: 'devolucion', CONSUMPTION: 'consumo', }; // ============================================================================ // ESTIMACIONES // ============================================================================ /** * Estados de estimacion */ exports.ESTIMATION_STATUS = { DRAFT: 'borrador', IN_REVIEW: 'en_revision', SUBMITTED: 'enviado', CLIENT_REVIEW: 'revision_cliente', APPROVED: 'aprobado', REJECTED: 'rechazado', PAID: 'pagado', CANCELLED: 'cancelado', }; /** * Tipos de retencion */ exports.RETENTION_TYPE = { WARRANTY: 'garantia', ADVANCE_AMORTIZATION: 'amortizacion_anticipo', IMSS: 'imss', ISR: 'isr', OTHER: 'otro', }; // ============================================================================ // HSE (Health, Safety & Environment) // ============================================================================ /** * Severidad de incidente */ exports.INCIDENT_SEVERITY = { LOW: 'bajo', MEDIUM: 'medio', HIGH: 'alto', CRITICAL: 'critico', FATAL: 'fatal', }; /** * Tipos de incidente */ exports.INCIDENT_TYPE = { ACCIDENT: 'accidente', NEAR_MISS: 'casi_accidente', UNSAFE_CONDITION: 'condicion_insegura', UNSAFE_ACT: 'acto_inseguro', FIRST_AID: 'primeros_auxilios', ENVIRONMENTAL: 'ambiental', }; /** * Estados de incidente */ exports.INCIDENT_STATUS = { REPORTED: 'reportado', UNDER_INVESTIGATION: 'en_investigacion', PENDING_ACTIONS: 'pendiente_acciones', ACTIONS_IN_PROGRESS: 'acciones_en_progreso', CLOSED: 'cerrado', }; /** * Tipos de capacitacion */ exports.TRAINING_TYPE = { INDUCTION: 'induccion', SAFETY: 'seguridad', TECHNICAL: 'tecnico', REGULATORY: 'normativo', REFRESHER: 'actualizacion', CERTIFICATION: 'certificacion', }; /** * Tipos de permiso de trabajo */ exports.WORK_PERMIT_TYPE = { HOT_WORK: 'trabajo_caliente', CONFINED_SPACE: 'espacio_confinado', HEIGHT_WORK: 'trabajo_altura', ELECTRICAL: 'electrico', EXCAVATION: 'excavacion', LIFTING: 'izaje', }; // ============================================================================ // RRHH // ============================================================================ /** * Tipos de empleado */ exports.EMPLOYEE_TYPE = { PERMANENT: 'planta', TEMPORARY: 'temporal', CONTRACTOR: 'contratista', INTERN: 'practicante', }; /** * Tipos de asistencia */ exports.ATTENDANCE_TYPE = { CHECK_IN: 'entrada', CHECK_OUT: 'salida', BREAK_START: 'inicio_descanso', BREAK_END: 'fin_descanso', }; /** * Metodos de validacion de asistencia */ exports.ATTENDANCE_VALIDATION = { GPS: 'gps', BIOMETRIC: 'biometrico', QR: 'qr', MANUAL: 'manual', NFC: 'nfc', }; // ============================================================================ // INFONAVIT // ============================================================================ /** * Estados de asignacion INFONAVIT */ exports.INFONAVIT_ASSIGNMENT_STATUS = { AVAILABLE: 'disponible', IN_PROCESS: 'en_proceso', ASSIGNED: 'asignado', DOCUMENTED: 'documentado', REGISTERED: 'registrado', DELIVERED: 'entregado', }; /** * Programas INFONAVIT */ exports.INFONAVIT_PROGRAM = { TRADICIONAL: 'tradicional', COFINAVIT: 'cofinavit', APOYO_INFONAVIT: 'apoyo_infonavit', UNAMOS_CREDITOS: 'unamos_creditos', MEJORAVIT: 'mejoravit', }; // ============================================================================ // CALIDAD Y POSTVENTA // ============================================================================ /** * Estados de ticket postventa */ exports.TICKET_STATUS = { OPEN: 'abierto', IN_PROGRESS: 'en_proceso', PENDING_CUSTOMER: 'pendiente_cliente', PENDING_PARTS: 'pendiente_refacciones', RESOLVED: 'resuelto', CLOSED: 'cerrado', }; /** * Prioridad de ticket */ exports.TICKET_PRIORITY = { LOW: 'baja', MEDIUM: 'media', HIGH: 'alta', URGENT: 'urgente', }; // ============================================================================ // DOCUMENTOS // ============================================================================ /** * Estados de documento */ exports.DOCUMENT_STATUS = { DRAFT: 'borrador', PENDING_REVIEW: 'pendiente_revision', APPROVED: 'aprobado', REJECTED: 'rechazado', OBSOLETE: 'obsoleto', }; /** * Tipos de documento */ exports.DOCUMENT_TYPE = { PLAN: 'plano', CONTRACT: 'contrato', PERMIT: 'permiso', CERTIFICATE: 'certificado', REPORT: 'reporte', PHOTO: 'fotografia', OTHER: 'otro', }; // ============================================================================ // WORKFLOW // ============================================================================ /** * Acciones de workflow */ exports.WORKFLOW_ACTION = { SUBMIT: 'submit', APPROVE: 'approve', REJECT: 'reject', RETURN: 'return', CANCEL: 'cancel', REOPEN: 'reopen', }; // ============================================================================ // AUDIT // ============================================================================ /** * Tipos de accion de auditoria */ exports.AUDIT_ACTION = { CREATE: 'create', UPDATE: 'update', DELETE: 'delete', VIEW: 'view', EXPORT: 'export', LOGIN: 'login', LOGOUT: 'logout', }; //# sourceMappingURL=enums.constants.js.map