# US-MGN-010-005-001: Dashboard RRHH

**RF Asociado:** [RF-MGN-010-001](../../02-modelado/requerimientos-funcionales/mgn-010/RF-MGN-010-001-gestión-de-empleados.md)
**Módulo:** MGN-010 - RRHH Básico
**Epic:** Dashboard
**Prioridad:** P1
**Story Points:** 5
**Sprint:** Sprint 23
**Estado:** Ready for Development
**Fecha:** 2025-11-24

---

## User Story
**Como** gerente de RRHH, **Quiero** dashboard con KPIs de RRHH, **Para** monitorear métricas clave del personal.

## Descripción Detallada
Dashboard muestra:
- **KPIs:**
  - Headcount total
  - Nuevas contrataciones (mes)
  - Terminaciones (mes)
  - Contratos por vencer (próximos 60 días)
  - Ausencias (mes)
- **Gráficos:**
  - Headcount por departamento
  - Antigüedad promedio
  - Distribución por tipo de contrato

## Criterios de Aceptación

### Escenario 1: Ver KPIs
**Dado que** hay 100 empleados activos, 5 nuevos este mes,
**Cuando** accedo a dashboard,
**Entonces** veo "Headcount: 100", "Nuevas contrataciones: 5".

### Escenario 2: Contratos por vencer
**Dado que** 3 contratos vencen en próximos 60 días,
**Cuando** veo widget,
**Entonces** muestra "3 contratos por vencer" con lista.

### Escenario 3: Gráfico por departamento
**Dado que** IT tiene 30 empleados, Ventas 20,
**Cuando** veo gráfico,
**Entonces** barra IT > barra Ventas.

## Reglas de Negocio
- **RN-1:** Datos en tiempo real (no cache).
- **RN-2:** RLS filtra por empresa.
- **RN-3:** Solo hr_user y superiores.

## Tareas Técnicas
### Backend
- [ ] Endpoint: GET `/api/v1/hr/dashboard/kpis`
- [ ] Queries optimizadas

### Frontend
- [ ] Página: `HRDashboardPage.tsx`
- [ ] Componentes: `KPICard.tsx`, `HeadcountChart.tsx`

## Estimación Detallada
| Tarea | Horas | Backend | 2 | Frontend | 2.5 | Testing | 1 |
**TOTAL** | **5.5 horas = 5 SP** |

## Definition of Done
- [ ] KPIs calculados correctamente
- [ ] Gráficos muestran datos
- [ ] Tests >80%
- [ ] QA/PO aprobado

## Referencias
- [RF-MGN-010-001](../../02-modelado/requerimientos-funcionales/mgn-010/RF-MGN-010-001-gestión-de-empleados.md)
