erp-construccion-backend/dist/shared/constants/enums.constants.js

388 lines
10 KiB
JavaScript

"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