Turnos
Shift Templates
Sección titulada «Shift Templates»Las plantillas de turno definen un patron de horarios reutilizable.
interface ShiftTemplate { id: string; name: string; // "Manana 8h", "Tarde 6h", "Intensiva" code: string; daily_hours: number; // Horas por dia weekly_hours: number; // Horas por semana color: string; // Color en el calendario (hex) active: boolean;}Endpoints
Sección titulada «Endpoints»GET /api/hr/shift-templatesPOST /api/hr/shift-templatesPATCH /api/hr/shift-templates/:idDELETE /api/hr/shift-templates/:idEjemplos
Sección titulada «Ejemplos»[ { "name": "Manana", "daily_hours": 8, "weekly_hours": 40, "color": "#10B981" }, { "name": "Tarde", "daily_hours": 6, "weekly_hours": 30, "color": "#F59E0B" }, { "name": "Noche", "daily_hours": 8, "weekly_hours": 40, "color": "#6366F1" }]Shift Patterns
Sección titulada «Shift Patterns»Los patrones de turno definen que horario se trabaja cada día de la semana.
interface ShiftPattern { id: string; template_id: string; name: string; week_schedule: { monday: { start: string; end: string; break_minutes: number }[]; tuesday: { start: string; end: string; break_minutes: number }[]; wednesday: { start: string; end: string; break_minutes: number }[]; thursday: { start: string; end: string; break_minutes: number }[]; friday: { start: string; end: string; break_minutes: number }[]; saturday: { start?: string; end?: string }[]; sunday: { start?: string; end?: string }[]; }; valid_from?: string; valid_until?: string;}Ejemplo de pattern
Sección titulada «Ejemplo de pattern»{ "name": "Manana 09:00-18:00 + 30min descanso", "week_schedule": { "monday": [{ "start": "09:00", "end": "18:00", "break_minutes": 30 }], "tuesday": [{ "start": "09:00", "end": "18:00", "break_minutes": 30 }], "wednesday": [{ "start": "09:00", "end": "18:00", "break_minutes": 30 }], "thursday": [{ "start": "09:00", "end": "18:00", "break_minutes": 30 }], "friday": [{ "start": "09:00", "end": "18:00", "break_minutes": 30 }], "saturday": [], "sunday": [] }}Endpoints
Sección titulada «Endpoints»GET /api/hr/shift-patternsPOST /api/hr/shift-patternsGET /api/hr/shift-patterns/:idPATCH /api/hr/shift-patterns/:idDELETE /api/hr/shift-patterns/:idAsignación de turnos
Sección titulada «Asignación de turnos»Asignar un turno a un empleado
Sección titulada «Asignar un turno a un empleado»POST /api/hr/shift-assignmentsAuthorization: Bearer <token>Content-Type: application/json
{ "employee_id": "emp_001", "pattern_id": "sp_manana", "start_date": "2026-05-01", "end_date": "2026-05-31"}Listar asignaciones
Sección titulada «Listar asignaciones»GET /api/hr/shift-assignments?employee_id=emp_001&from=2026-05-01&to=2026-05-31Resumen de endpoints
Sección titulada «Resumen de endpoints»| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/hr/shift-templates |
Listar plantillas de turno |
| POST | /api/hr/shift-templates |
Crear plantilla |
| PATCH | /api/hr/shift-templates/:id |
Editar plantilla |
| DELETE | /api/hr/shift-templates/:id |
Eliminar plantilla |
| GET | /api/hr/shift-patterns |
Listar patrones de turno |
| POST | /api/hr/shift-patterns |
Crear patron |
| PATCH | /api/hr/shift-patterns/:id |
Editar patron |
| DELETE | /api/hr/shift-patterns/:id |
Eliminar patron |
| GET | /api/hr/shift-assignments |
Listar asignaciones |
| POST | /api/hr/shift-assignments |
Asignar turno a empleado |
| DELETE | /api/hr/shift-assignments/:id |
Eliminar asignación |