# US-MGN-002-004-001: Jerarquías de Empresas (Holdings y Subsidiarias)

**RF Asociado:** [RF-MGN-002-004](../../02-modelado/requerimientos-funcionales/mgn-002/RF-MGN-002-004-jerarquias-empresas.md)
**Módulo:** MGN-002 - Empresas y Organizaciones
**Epic:** Jerarquías Corporativas
**Prioridad:** P1 (Post-MVP)
**Story Points:** 5
**Sprint:** Sprint 6
**Fecha:** 2025-11-24

---

## User Story

**Como** administrador de grupo empresarial,
**Quiero** definir jerarquías entre empresas (holding → subsidiarias),
**Para** consolidar reportes financieros y gestionar grupo corporativo.

---

## Criterios de Aceptación

### Escenario 1: Crear estructura jerárquica
**Cuando** creo empresa "Holding XYZ" como parent y "Subsidiaria A" con parent_company_id=Holding,
**Entonces** se establece relación jerárquica.

### Escenario 2: Reportes consolidados
**Cuando** genero reporte financiero de holding,
**Entonces** incluye datos de todas las subsidiarias.

### Escenario 3: Transacciones inter-compañía
**Cuando** subsidiaria A vende a subsidiaria B,
**Entonces** sistema registra transacción inter-compañía, se elimina en consolidación.

---

## Reglas de Negocio

- **RN-1:** Empresa puede tener parent_company_id (subsidiaria) o null (holding)
- **RN-2:** Máximo 3 niveles de jerarquía (holding → sub1 → sub2)
- **RN-3:** Consolidación elimina transacciones inter-compañía
- **RN-4:** Moneda de consolidación: moneda del holding

---

## Tareas Técnicas

- [ ] Validar parent_company_id (foreign key)
- [ ] Recursive query para obtener árbol de empresas
- [ ] Endpoint: GET /api/v1/companies/tree - Árbol jerárquico
- [ ] Lógica de consolidación en reportes
- [ ] Tests

---

## Estimación: 5 SP

---

## Referencias

- [RF-MGN-002-004](../../02-modelado/requerimientos-funcionales/mgn-002/RF-MGN-002-004-jerarquias-empresas.md)
