Contract Service
El ContractService administra el ciclo de vida de contratos laborales, incluyendo creación transaccional con generación automática de PDF.
Ubicación
Section titled “Ubicación”Archivo: src/domain/contracts/ContractService.ts
Métodos Disponibles
Section titled “Métodos Disponibles”| Método | Descripción |
|---|---|
getContracts(tenantDb, filter) | Lista contratos con filtros |
createContract(tenantDb, userId, data) | Crea contrato con PDF |
updateContract(tenantDb, userId, id, data) | Actualiza contrato |
deleteContract(tenantDb, id) | Elimina contrato |
getDownloadPath(tenantDb, id, format) | Obtiene ruta del documento |
Flujo de Creación
Section titled “Flujo de Creación”- Validación de campos obligatorios (empleado, tipo, fecha, sueldo, jornada).
- Transacción: Recolecta contexto (empleado, cargo, jornada).
- Persistencia: Crea registro en
contratos. - Generación PDF: Llama a
ContractGeneratorsiGENERATOR_URLestá configurado.
Validaciones
Section titled “Validaciones”- Campos obligatorios:
empleado_id,tipo_contrato,fecha_inicio,sueldo_base,jornada_id. - Categoría válida:
DEPENDIENTE,MENOR_MAYOR,CASA_PARTICULAR.
Ejemplo de Uso
Section titled “Ejemplo de Uso”import { ContractService } from '@/domain/contracts/ContractService';
const contratoId = await ContractService.createContract('tenant_db', 'user-123', { empleado_id: 'emp-uuid', tipo_contrato: 'INDEFINIDO', fecha_inicio: '2025-01-01', sueldo_base: 800000, jornada_id: 'jornada-uuid'});Dependencias
Section titled “Dependencias”- ContractRepository: Acceso a datos de contratos.
- ContractGenerator: Generación de PDFs.