Skip to content
GitHub

Permission Service

El PermissionService administra solicitudes de permisos, licencias médicas y ausencias justificadas con validación de reglas de negocio.

Archivo: src/domain/permissions/PermissionService.ts

MétodoDescripción
getById(tenantDb, id)Obtiene permiso por ID
list(tenantDb, filter)Lista permisos con filtros
create(tenantDb, userId, data)Crea nueva solicitud
update(tenantDb, userId, id, data)Actualiza solicitud
delete(tenantDb, id)Elimina solicitud
  • Campos obligatorios: empleado_id, fecha_desde, fecha_hasta, tipo_permiso, motivo.
  • Estados válidos: SOLICITADO, APROBADO, RECHAZADO, CANCELADO, USADO.
  • fecha_hasta >= fecha_desde.
  • Permisos parciales requieren hora_desde y hora_hasta.
  • Fecha de recuperación > fecha hasta (si es recuperable).
FlagTipoDescripción
es_parcialbooleanPermiso de horas (no días)
requiere_documentobooleanNecesita adjunto de respaldo
es_con_goce_sueldobooleanCon remuneración (default: true)
descuenta_vacacionesbooleanSe descuenta del saldo
es_recuperablebooleanLas horas se recuperan
import { PermissionService } from '@/domain/permissions/PermissionService';
await PermissionService.create('tenant_db', 'user-123', {
empleado_id: 'emp-uuid',
fecha_desde: '2025-01-15',
fecha_hasta: '2025-01-15',
tipo_permiso: 'MEDICO',
motivo: 'Examen preventivo',
es_parcial: true,
hora_desde: '09:00',
hora_hasta: '12:00'
});
  • PermissionRepository: Acceso a datos de permisos en PostgreSQL.