# US-MGN-011-001-002: Configurar Proyecto (Fases, Presupuesto, Fechas)

**RF Asociado:** [RF-MGN-011-001](../../02-modelado/requerimientos-funcionales/mgn-011/RF-MGN-011-001-gestión-de-proyectos.md)
**Módulo:** MGN-011 - Proyectos Genéricos
**Epic:** Proyectos
**Prioridad:** P1
**Story Points:** 3
**Sprint:** Sprint 24
**Estado:** Ready for Development
**Fecha:** 2025-11-24

---

## User Story
**Como** gerente de proyectos, **Quiero** configurar fases y presupuestos del proyecto, **Para** planificar ejecución.

## Criterios de Aceptación

### Escenario 1: Crear fases de proyecto
**Dado que** proyecto existe,
**Cuando** creo fases: "Análisis" (budget 20K), "Desarrollo" (budget 60K), "Testing" (budget 20K),
**Entonces** sistema crea 3 fases, suma total = 100K (presupuesto proyecto).

### Escenario 2: Validar suma de fases
**Dado que** proyecto tiene budget=100K, fases suman 110K,
**Cuando** intento guardar,
**Entonces** warning "Suma de fases (110K) excede presupuesto (100K)".

### Escenario 3: Actualizar fase
**Dado que** fase "Desarrollo" existe,
**Cuando** actualizo budget=70K,
**Entonces** sistema actualiza y recalcula totales.

## Reglas de Negocio
- **RN-1:** Fases opcionales.
- **RN-2:** Suma de fases idealmente <= budget proyecto (warning, no error).
- **RN-3:** Cada fase tiene nombre, budget, fechas.

## Tareas Técnicas
### Backend
- [ ] Service: `ProjectPhaseService` (CRUD fases)
- [ ] Validar suma fases vs budget

### Frontend
- [ ] Componente: `ProjectPhasesConfig.tsx`
- [ ] Tabla editable de fases

### Database
- [ ] Tabla: `projects.phases` (project_id, name, budget, start_date, end_date)

## Estimación Detallada
| Tarea | Horas | Backend | 1.5 | Frontend | 1.5 | Testing | 1 |
**TOTAL** | **4 horas = 3 SP** |

## Definition of Done
- [ ] Fases gestionables
- [ ] Validaciones aplicadas
- [ ] QA/PO aprobado

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