Plataforma técnica · Orchestrator
Maestro Laboral (services)
Orchestrator Remuneraciones Maestro
El subdominio Maestro Laboral mantiene las entidades base sobre las que opera todo el ciclo de remuneraciones: identidad del trabajador, posición funcional y vínculo contractual. Los services no calculan haberes ni resuelven asistencia; su responsabilidad es asegurar que existan empleados, cargos y contratos consistentes antes de que cualquier proceso downstream pueda correr.
La separación contable equivalente vive en accounting/remuneraciones/maestro-laboral, donde se explica por qué cada pieza importa para el devengo (NIC 19), la imputación por centro de costo y los controles de auditoría.
Servicios
Section titled “Servicios”| Servicio | Responsabilidad | Doc |
|---|---|---|
EmployeeService | CRUD del maestro de empleados. Validaciones de RUT, sexo, estado civil y sanitización antes de persistir. | → |
CargoService | CRUD del catálogo de cargos. Normalización del código a mayúsculas. | → |
ContractService | Ciclo contractual: creación, anexos, vigencia, generación de PDF y validación de compliance laboral. | → |
El catálogo de departamentos se administra a través de company/administracion; el contrato lo referencia vía departamento_id para determinar el centro de costo del trabajador.
Mapa de dependencias
Section titled “Mapa de dependencias”flowchart LR
subgraph SVC["domain/"]
EMP["EmployeeService<br/>(employees/)"]
CRG["CargoService<br/>(cargos/)"]
CON["ContractService<br/>(contracts/)"]
end
subgraph TBL["Tablas tenant"]
EMP_T[("empleados")]
CRG_T[("cargos")]
CON_T[("contratos")]
DEP_T[("departamentos")]
end
EMP --> EMP_T
CRG --> CRG_T
CON --> CON_T
CON --> EMP_T
CON --> CRG_T
CON --> DEP_T
CON -. consume .-> EMP
CON -. consume .-> CRG ContractService es el punto donde convergen las tres entidades: cada contrato referencia un empleado_id, un cargo_id, una jornada_id y, opcionalmente, un departamento_id. Sin esos foreign keys vigentes, no se puede emitir contrato y, por extensión, no se puede liquidar al trabajador.
Patrones aplicados
Section titled “Patrones aplicados”| Patrón | Dónde |
|---|---|
| Repository | Cada service delega persistencia en su *Repository.ts correspondiente. |
| Template Method (BaseService) | Validaciones, logging y manejo de pool heredados de BaseService. |
| Builder | ContractGenerator y ContractHtmlGenerator arman el PDF/HTML del contrato a partir del input estructurado. |
| Validator | ContractComplianceValidator aplica las reglas legales (Código del Trabajo arts. 7-12) antes de persistir. |
Consumidores downstream
Section titled “Consumidores downstream”| Service | Qué consume del maestro |
|---|---|
AttendanceService | Vincula marcas y novedades al empleado_id y al contrato_id vigente. |
VacationService | Calcula saldo de feriado a partir de la fecha de ingreso y la jornada del contrato. |
PayrollService | Hidrata el contexto de cálculo con empleado, contrato, jornada, AFP, salud y APV. |
FiniquitoService | Toma el contrato vigente o recientemente terminado para liquidar el cierre del vínculo. |