# US-MGN-010-004-001: Gestionar Jerarquía de Departamentos **RF Asociado:** [RF-MGN-010-002](../../02-modelado/requerimientos-funcionales/mgn-010/RF-MGN-010-002-departamentos-y-puestos.md) **Módulo:** MGN-010 - RRHH Básico **Epic:** Estructura Organizacional **Prioridad:** P1 **Story Points:** 3 **Sprint:** Sprint 23 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** gerente de RRHH, **Quiero** gestionar jerarquía de departamentos, **Para** reflejar estructura organizacional. ## Criterios de Aceptación ### Escenario 1: Crear departamento **Dado que** soy hr_manager, **Cuando** creo departamento: name="IT", manager_id=5, **Entonces** sistema crea departamento. ### Escenario 2: Departamento con padre **Dado que** departamento "IT" existe, **Cuando** creo sub-departamento "Desarrollo" con parent_id=IT, **Entonces** sistema crea jerarquía padre-hijo. ### Escenario 3: Organigrama visual **Dado que** hay 10 departamentos con jerarquía, **Cuando** accedo a /hr/org-chart, **Entonces** veo árbol visual de departamentos. ## Reglas de Negocio - **RN-1:** parent_id opcional (puede ser raíz). - **RN-2:** manager_id debe ser empleado activo. - **RN-3:** No ciclos en jerarquía. ## Tareas Técnicas ### Backend - [ ] Endpoint: POST/GET/PUT/DELETE `/api/v1/hr/departments` - [ ] Validar no ciclos ### Frontend - [ ] Página: `DepartmentsPage.tsx` - [ ] Componente: `OrgChartTree.tsx` (árbol visual) ### Database - [ ] Tabla: `hr.departments` (name, parent_id, manager_id) - [ ] Self-FK: parent_id ## Estimación Detallada | Tarea | Horas | Backend | 1 | Frontend | 1.5 | Testing | 1 | **TOTAL** | **3.5 horas = 3 SP** | ## Definition of Done - [ ] Jerarquía funciona - [ ] Organigrama visual - [ ] QA/PO aprobado ## Referencias - [RF-MGN-010-002](../../02-modelado/requerimientos-funcionales/mgn-010/RF-MGN-010-002-departamentos-y-puestos.md)