erp-construccion-backend/dist/shared/constants/api.constants.d.ts

210 lines
7.6 KiB
TypeScript

/**
* 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
*/
/**
* API Version
*/
export declare const API_VERSION = "v1";
export declare const API_PREFIX = "/api/v1";
/**
* API Routes organized by Module
*/
export declare const API_ROUTES: {
readonly ROOT: "/";
readonly HEALTH: "/health";
readonly DOCS: "/api/v1/docs";
readonly AUTH: {
readonly BASE: "/api/v1/auth";
readonly LOGIN: "/api/v1/auth/login";
readonly LOGOUT: "/api/v1/auth/logout";
readonly REFRESH: "/api/v1/auth/refresh";
readonly REGISTER: "/api/v1/auth/register";
readonly FORGOT_PASSWORD: "/api/v1/auth/forgot-password";
readonly RESET_PASSWORD: "/api/v1/auth/reset-password";
readonly ME: "/api/v1/auth/me";
readonly CHANGE_PASSWORD: "/api/v1/auth/change-password";
};
readonly USERS: {
readonly BASE: "/api/v1/users";
readonly BY_ID: (id: string) => string;
readonly ROLES: (id: string) => string;
};
readonly TENANTS: {
readonly BASE: "/api/v1/tenants";
readonly BY_ID: (id: string) => string;
readonly CURRENT: "/api/v1/tenants/current";
};
readonly PROYECTOS: {
readonly BASE: "/api/v1/proyectos";
readonly BY_ID: (id: string) => string;
readonly FRACCIONAMIENTOS: (id: string) => string;
readonly DASHBOARD: (id: string) => string;
readonly PROGRESS: (id: string) => string;
};
readonly FRACCIONAMIENTOS: {
readonly BASE: "/api/v1/fraccionamientos";
readonly BY_ID: (id: string) => string;
readonly ETAPAS: (id: string) => string;
readonly MANZANAS: (id: string) => string;
readonly LOTES: (id: string) => string;
};
readonly PRESUPUESTOS: {
readonly BASE: "/api/v1/presupuestos";
readonly BY_ID: (id: string) => string;
readonly PARTIDAS: (id: string) => string;
readonly COMPARE: (id: string) => string;
readonly VERSIONS: (id: string) => string;
};
readonly AVANCES: {
readonly BASE: "/api/v1/avances";
readonly BY_ID: (id: string) => string;
readonly BY_PROYECTO: (proyectoId: string) => string;
readonly CURVA_S: (proyectoId: string) => string;
readonly FOTOS: (id: string) => string;
};
readonly EMPLOYEES: {
readonly BASE: "/api/v1/employees";
readonly BY_ID: (id: string) => string;
readonly ASISTENCIAS: (id: string) => string;
readonly CAPACITACIONES: (id: string) => string;
};
readonly ASISTENCIAS: {
readonly BASE: "/api/v1/asistencias";
readonly BY_ID: (id: string) => string;
readonly CHECK_IN: "/api/v1/asistencias/check-in";
readonly CHECK_OUT: "/api/v1/asistencias/check-out";
readonly BY_PROYECTO: (proyectoId: string) => string;
};
readonly CUADRILLAS: {
readonly BASE: "/api/v1/cuadrillas";
readonly BY_ID: (id: string) => string;
readonly MIEMBROS: (id: string) => string;
};
readonly INCIDENTES: {
readonly BASE: "/api/v1/incidentes";
readonly BY_ID: (id: string) => string;
readonly INVOLUCRADOS: (id: string) => string;
readonly ACCIONES: (id: string) => string;
readonly BY_PROYECTO: (proyectoId: string) => string;
};
readonly CAPACITACIONES: {
readonly BASE: "/api/v1/capacitaciones";
readonly BY_ID: (id: string) => string;
readonly PARTICIPANTES: (id: string) => string;
readonly CERTIFICADOS: (id: string) => string;
};
readonly INSPECCIONES: {
readonly BASE: "/api/v1/inspecciones";
readonly BY_ID: (id: string) => string;
readonly HALLAZGOS: (id: string) => string;
};
readonly EPP: {
readonly BASE: "/api/v1/epp";
readonly BY_ID: (id: string) => string;
readonly ASIGNACIONES: "/api/v1/epp/asignaciones";
readonly ENTREGAS: "/api/v1/epp/entregas";
readonly STOCK: "/api/v1/epp/stock";
};
readonly ESTIMACIONES: {
readonly BASE: "/api/v1/estimaciones";
readonly BY_ID: (id: string) => string;
readonly CONCEPTOS: (id: string) => string;
readonly GENERADORES: (id: string) => string;
readonly WORKFLOW: (id: string) => string;
readonly SUBMIT: (id: string) => string;
readonly APPROVE: (id: string) => string;
readonly REJECT: (id: string) => string;
};
readonly INFONAVIT: {
readonly BASE: "/api/v1/infonavit";
readonly REGISTRO: "/api/v1/infonavit/registro";
readonly OFERTA: "/api/v1/infonavit/oferta";
readonly DERECHOHABIENTES: "/api/v1/infonavit/derechohabientes";
readonly ASIGNACIONES: "/api/v1/infonavit/asignaciones";
readonly ACTAS: "/api/v1/infonavit/actas";
readonly REPORTES: "/api/v1/infonavit/reportes";
};
readonly ALMACENES: {
readonly BASE: "/api/v1/almacenes";
readonly BY_ID: (id: string) => string;
readonly BY_PROYECTO: (proyectoId: string) => string;
readonly STOCK: (id: string) => string;
};
readonly REQUISICIONES: {
readonly BASE: "/api/v1/requisiciones";
readonly BY_ID: (id: string) => string;
readonly LINEAS: (id: string) => string;
readonly SUBMIT: (id: string) => string;
readonly APPROVE: (id: string) => string;
};
readonly COMPRAS: {
readonly BASE: "/api/v1/compras";
readonly BY_ID: (id: string) => string;
readonly LINEAS: (id: string) => string;
readonly COMPARATIVO: "/api/v1/compras/comparativo";
readonly RECEPCIONES: (id: string) => string;
};
readonly PROVEEDORES: {
readonly BASE: "/api/v1/proveedores";
readonly BY_ID: (id: string) => string;
readonly COTIZACIONES: (id: string) => string;
};
readonly CONTRATOS: {
readonly BASE: "/api/v1/contratos";
readonly BY_ID: (id: string) => string;
readonly PARTIDAS: (id: string) => string;
readonly ESTIMACIONES: (id: string) => string;
};
readonly REPORTS: {
readonly BASE: "/api/v1/reports";
readonly DASHBOARD: "/api/v1/reports/dashboard";
readonly AVANCE_FISICO: "/api/v1/reports/avance-fisico";
readonly AVANCE_FINANCIERO: "/api/v1/reports/avance-financiero";
readonly CURVA_S: "/api/v1/reports/curva-s";
readonly PRESUPUESTO_VS_REAL: "/api/v1/reports/presupuesto-vs-real";
readonly KPI_HSE: "/api/v1/reports/kpi-hse";
readonly EXPORT: "/api/v1/reports/export";
};
};
/**
* HTTP Methods
*/
export declare const HTTP_METHODS: {
readonly GET: "GET";
readonly POST: "POST";
readonly PUT: "PUT";
readonly PATCH: "PATCH";
readonly DELETE: "DELETE";
};
/**
* HTTP Status Codes
*/
export declare const HTTP_STATUS: {
readonly OK: 200;
readonly CREATED: 201;
readonly NO_CONTENT: 204;
readonly BAD_REQUEST: 400;
readonly UNAUTHORIZED: 401;
readonly FORBIDDEN: 403;
readonly NOT_FOUND: 404;
readonly CONFLICT: 409;
readonly UNPROCESSABLE_ENTITY: 422;
readonly INTERNAL_SERVER_ERROR: 500;
readonly SERVICE_UNAVAILABLE: 503;
};
/**
* Content Types
*/
export declare const CONTENT_TYPES: {
readonly JSON: "application/json";
readonly FORM_URLENCODED: "application/x-www-form-urlencoded";
readonly MULTIPART: "multipart/form-data";
readonly PDF: "application/pdf";
readonly EXCEL: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
};
//# sourceMappingURL=api.constants.d.ts.map