"use strict"; /** * API Constants - SSOT (Single Source of Truth) * * Todas las rutas de API, versiones y endpoints. * NO hardcodear rutas en controllers o frontend. * * @module @shared/constants/api */ Object.defineProperty(exports, "__esModule", { value: true }); exports.CONTENT_TYPES = exports.HTTP_STATUS = exports.HTTP_METHODS = exports.API_ROUTES = exports.API_PREFIX = exports.API_VERSION = void 0; /** * API Version */ exports.API_VERSION = 'v1'; exports.API_PREFIX = `/api/${exports.API_VERSION}`; /** * API Routes organized by Module */ exports.API_ROUTES = { // Base ROOT: '/', HEALTH: '/health', DOCS: `${exports.API_PREFIX}/docs`, // Auth Module AUTH: { BASE: `${exports.API_PREFIX}/auth`, LOGIN: `${exports.API_PREFIX}/auth/login`, LOGOUT: `${exports.API_PREFIX}/auth/logout`, REFRESH: `${exports.API_PREFIX}/auth/refresh`, REGISTER: `${exports.API_PREFIX}/auth/register`, FORGOT_PASSWORD: `${exports.API_PREFIX}/auth/forgot-password`, RESET_PASSWORD: `${exports.API_PREFIX}/auth/reset-password`, ME: `${exports.API_PREFIX}/auth/me`, CHANGE_PASSWORD: `${exports.API_PREFIX}/auth/change-password`, }, // Users Module USERS: { BASE: `${exports.API_PREFIX}/users`, BY_ID: (id) => `${exports.API_PREFIX}/users/${id}`, ROLES: (id) => `${exports.API_PREFIX}/users/${id}/roles`, }, // Tenants Module TENANTS: { BASE: `${exports.API_PREFIX}/tenants`, BY_ID: (id) => `${exports.API_PREFIX}/tenants/${id}`, CURRENT: `${exports.API_PREFIX}/tenants/current`, }, // Construction Module PROYECTOS: { BASE: `${exports.API_PREFIX}/proyectos`, BY_ID: (id) => `${exports.API_PREFIX}/proyectos/${id}`, FRACCIONAMIENTOS: (id) => `${exports.API_PREFIX}/proyectos/${id}/fraccionamientos`, DASHBOARD: (id) => `${exports.API_PREFIX}/proyectos/${id}/dashboard`, PROGRESS: (id) => `${exports.API_PREFIX}/proyectos/${id}/progress`, }, FRACCIONAMIENTOS: { BASE: `${exports.API_PREFIX}/fraccionamientos`, BY_ID: (id) => `${exports.API_PREFIX}/fraccionamientos/${id}`, ETAPAS: (id) => `${exports.API_PREFIX}/fraccionamientos/${id}/etapas`, MANZANAS: (id) => `${exports.API_PREFIX}/fraccionamientos/${id}/manzanas`, LOTES: (id) => `${exports.API_PREFIX}/fraccionamientos/${id}/lotes`, }, PRESUPUESTOS: { BASE: `${exports.API_PREFIX}/presupuestos`, BY_ID: (id) => `${exports.API_PREFIX}/presupuestos/${id}`, PARTIDAS: (id) => `${exports.API_PREFIX}/presupuestos/${id}/partidas`, COMPARE: (id) => `${exports.API_PREFIX}/presupuestos/${id}/compare`, VERSIONS: (id) => `${exports.API_PREFIX}/presupuestos/${id}/versions`, }, AVANCES: { BASE: `${exports.API_PREFIX}/avances`, BY_ID: (id) => `${exports.API_PREFIX}/avances/${id}`, BY_PROYECTO: (proyectoId) => `${exports.API_PREFIX}/proyectos/${proyectoId}/avances`, CURVA_S: (proyectoId) => `${exports.API_PREFIX}/proyectos/${proyectoId}/curva-s`, FOTOS: (id) => `${exports.API_PREFIX}/avances/${id}/fotos`, }, // HR Module EMPLOYEES: { BASE: `${exports.API_PREFIX}/employees`, BY_ID: (id) => `${exports.API_PREFIX}/employees/${id}`, ASISTENCIAS: (id) => `${exports.API_PREFIX}/employees/${id}/asistencias`, CAPACITACIONES: (id) => `${exports.API_PREFIX}/employees/${id}/capacitaciones`, }, ASISTENCIAS: { BASE: `${exports.API_PREFIX}/asistencias`, BY_ID: (id) => `${exports.API_PREFIX}/asistencias/${id}`, CHECK_IN: `${exports.API_PREFIX}/asistencias/check-in`, CHECK_OUT: `${exports.API_PREFIX}/asistencias/check-out`, BY_PROYECTO: (proyectoId) => `${exports.API_PREFIX}/proyectos/${proyectoId}/asistencias`, }, CUADRILLAS: { BASE: `${exports.API_PREFIX}/cuadrillas`, BY_ID: (id) => `${exports.API_PREFIX}/cuadrillas/${id}`, MIEMBROS: (id) => `${exports.API_PREFIX}/cuadrillas/${id}/miembros`, }, // HSE Module INCIDENTES: { BASE: `${exports.API_PREFIX}/incidentes`, BY_ID: (id) => `${exports.API_PREFIX}/incidentes/${id}`, INVOLUCRADOS: (id) => `${exports.API_PREFIX}/incidentes/${id}/involucrados`, ACCIONES: (id) => `${exports.API_PREFIX}/incidentes/${id}/acciones`, BY_PROYECTO: (proyectoId) => `${exports.API_PREFIX}/proyectos/${proyectoId}/incidentes`, }, CAPACITACIONES: { BASE: `${exports.API_PREFIX}/capacitaciones`, BY_ID: (id) => `${exports.API_PREFIX}/capacitaciones/${id}`, PARTICIPANTES: (id) => `${exports.API_PREFIX}/capacitaciones/${id}/participantes`, CERTIFICADOS: (id) => `${exports.API_PREFIX}/capacitaciones/${id}/certificados`, }, INSPECCIONES: { BASE: `${exports.API_PREFIX}/inspecciones`, BY_ID: (id) => `${exports.API_PREFIX}/inspecciones/${id}`, HALLAZGOS: (id) => `${exports.API_PREFIX}/inspecciones/${id}/hallazgos`, }, EPP: { BASE: `${exports.API_PREFIX}/epp`, BY_ID: (id) => `${exports.API_PREFIX}/epp/${id}`, ASIGNACIONES: `${exports.API_PREFIX}/epp/asignaciones`, ENTREGAS: `${exports.API_PREFIX}/epp/entregas`, STOCK: `${exports.API_PREFIX}/epp/stock`, }, // Estimates Module ESTIMACIONES: { BASE: `${exports.API_PREFIX}/estimaciones`, BY_ID: (id) => `${exports.API_PREFIX}/estimaciones/${id}`, CONCEPTOS: (id) => `${exports.API_PREFIX}/estimaciones/${id}/conceptos`, GENERADORES: (id) => `${exports.API_PREFIX}/estimaciones/${id}/generadores`, WORKFLOW: (id) => `${exports.API_PREFIX}/estimaciones/${id}/workflow`, SUBMIT: (id) => `${exports.API_PREFIX}/estimaciones/${id}/submit`, APPROVE: (id) => `${exports.API_PREFIX}/estimaciones/${id}/approve`, REJECT: (id) => `${exports.API_PREFIX}/estimaciones/${id}/reject`, }, // INFONAVIT Module INFONAVIT: { BASE: `${exports.API_PREFIX}/infonavit`, REGISTRO: `${exports.API_PREFIX}/infonavit/registro`, OFERTA: `${exports.API_PREFIX}/infonavit/oferta`, DERECHOHABIENTES: `${exports.API_PREFIX}/infonavit/derechohabientes`, ASIGNACIONES: `${exports.API_PREFIX}/infonavit/asignaciones`, ACTAS: `${exports.API_PREFIX}/infonavit/actas`, REPORTES: `${exports.API_PREFIX}/infonavit/reportes`, }, // Inventory Module ALMACENES: { BASE: `${exports.API_PREFIX}/almacenes`, BY_ID: (id) => `${exports.API_PREFIX}/almacenes/${id}`, BY_PROYECTO: (proyectoId) => `${exports.API_PREFIX}/proyectos/${proyectoId}/almacenes`, STOCK: (id) => `${exports.API_PREFIX}/almacenes/${id}/stock`, }, REQUISICIONES: { BASE: `${exports.API_PREFIX}/requisiciones`, BY_ID: (id) => `${exports.API_PREFIX}/requisiciones/${id}`, LINEAS: (id) => `${exports.API_PREFIX}/requisiciones/${id}/lineas`, SUBMIT: (id) => `${exports.API_PREFIX}/requisiciones/${id}/submit`, APPROVE: (id) => `${exports.API_PREFIX}/requisiciones/${id}/approve`, }, // Purchase Module COMPRAS: { BASE: `${exports.API_PREFIX}/compras`, BY_ID: (id) => `${exports.API_PREFIX}/compras/${id}`, LINEAS: (id) => `${exports.API_PREFIX}/compras/${id}/lineas`, COMPARATIVO: `${exports.API_PREFIX}/compras/comparativo`, RECEPCIONES: (id) => `${exports.API_PREFIX}/compras/${id}/recepciones`, }, PROVEEDORES: { BASE: `${exports.API_PREFIX}/proveedores`, BY_ID: (id) => `${exports.API_PREFIX}/proveedores/${id}`, COTIZACIONES: (id) => `${exports.API_PREFIX}/proveedores/${id}/cotizaciones`, }, // Contracts Module CONTRATOS: { BASE: `${exports.API_PREFIX}/contratos`, BY_ID: (id) => `${exports.API_PREFIX}/contratos/${id}`, PARTIDAS: (id) => `${exports.API_PREFIX}/contratos/${id}/partidas`, ESTIMACIONES: (id) => `${exports.API_PREFIX}/contratos/${id}/estimaciones`, }, // Reports Module REPORTS: { BASE: `${exports.API_PREFIX}/reports`, DASHBOARD: `${exports.API_PREFIX}/reports/dashboard`, AVANCE_FISICO: `${exports.API_PREFIX}/reports/avance-fisico`, AVANCE_FINANCIERO: `${exports.API_PREFIX}/reports/avance-financiero`, CURVA_S: `${exports.API_PREFIX}/reports/curva-s`, PRESUPUESTO_VS_REAL: `${exports.API_PREFIX}/reports/presupuesto-vs-real`, KPI_HSE: `${exports.API_PREFIX}/reports/kpi-hse`, EXPORT: `${exports.API_PREFIX}/reports/export`, }, }; /** * HTTP Methods */ exports.HTTP_METHODS = { GET: 'GET', POST: 'POST', PUT: 'PUT', PATCH: 'PATCH', DELETE: 'DELETE', }; /** * HTTP Status Codes */ exports.HTTP_STATUS = { OK: 200, CREATED: 201, NO_CONTENT: 204, BAD_REQUEST: 400, UNAUTHORIZED: 401, FORBIDDEN: 403, NOT_FOUND: 404, CONFLICT: 409, UNPROCESSABLE_ENTITY: 422, INTERNAL_SERVER_ERROR: 500, SERVICE_UNAVAILABLE: 503, }; /** * Content Types */ exports.CONTENT_TYPES = { JSON: 'application/json', FORM_URLENCODED: 'application/x-www-form-urlencoded', MULTIPART: 'multipart/form-data', PDF: 'application/pdf', EXCEL: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', }; //# sourceMappingURL=api.constants.js.map