Skip to content
GitHub

Contract Service

El ContractService administra el ciclo de vida de contratos laborales, incluyendo creación transaccional con generación automática de PDF.

Archivo: src/domain/contracts/ContractService.ts

MétodoDescripció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
  1. Validación de campos obligatorios (empleado, tipo, fecha, sueldo, jornada).
  2. Transacción: Recolecta contexto (empleado, cargo, jornada).
  3. Persistencia: Crea registro en contratos.
  4. Generación PDF: Llama a ContractGenerator si GENERATOR_URL está configurado.
  • Campos obligatorios: empleado_id, tipo_contrato, fecha_inicio, sueldo_base, jornada_id.
  • Categoría válida: DEPENDIENTE, MENOR_MAYOR, CASA_PARTICULAR.
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'
});
  • ContractRepository: Acceso a datos de contratos.
  • ContractGenerator: Generación de PDFs.