# US-MGN-010-003-001: Registro Check-in/Check-out de Asistencias **RF Asociado:** [RF-MGN-010-004](../../02-modelado/requerimientos-funcionales/mgn-010/RF-MGN-010-004-asistencias-check-in-check-out.md) **Módulo:** MGN-010 - RRHH Básico **Epic:** Asistencias **Prioridad:** P0 **Story Points:** 5 **Sprint:** Sprint 23 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** empleado, **Quiero** registrar mi check-in y check-out diario, **Para** llevar control de horario de trabajo. ## Criterios de Aceptación ### Escenario 1: Check-in **Dado que** es inicio de jornada, **Cuando** hago check-in, **Entonces** sistema registra timestamp, ubicación (IP/GPS opcional). ### Escenario 2: Check-out **Dado que** hice check-in hoy, **Cuando** hago check-out, **Entonces** sistema registra timestamp salida, calcula horas trabajadas. ### Escenario 3: Check-in duplicado **Dado que** ya hice check-in hoy, **Cuando** intento otro check-in, **Entonces** error 400 "Ya registró check-in hoy". ### Escenario 4: Reporte de asistencias **Dado que** soy hr_manager, **Cuando** genero reporte mensual, **Entonces** veo tabla: empleado, días presentes, total horas. ## Reglas de Negocio - **RN-1:** Un check-in/check-out por día. - **RN-2:** Check-out calcula horas: check_out - check_in. - **RN-3:** Registro incluye IP/ubicación opcional. ## Tareas Técnicas ### Backend - [ ] Endpoint: POST `/api/v1/hr/attendances/check-in` - [ ] Endpoint: POST `/api/v1/hr/attendances/check-out` - [ ] Calcular horas trabajadas - [ ] Unit tests ### Frontend - [ ] Componente: `CheckInButton.tsx` - [ ] Componente: `CheckOutButton.tsx` - [ ] Página: `MyAttendancesPage.tsx` - [ ] Reporte para hr_manager ### Database - [ ] Tabla: `hr.attendances` (employee_id, date, check_in, check_out, worked_hours, ip_address) - [ ] Constraint: unique(employee_id, date) ## Estimación Detallada | Tarea | Horas | Backend | 2 | Frontend | 2 | Testing | 1.5 | **TOTAL** | **5.5 horas = 5 SP** | ## Definition of Done - [ ] Check-in/out funciona - [ ] Horas calculadas correctamente - [ ] Reporte funcional - [ ] QA/PO aprobado ## Referencias - [RF-MGN-010-004](../../02-modelado/requerimientos-funcionales/mgn-010/RF-MGN-010-004-asistencias-check-in-check-out.md)