# EPICA: EPIC-VT-005 - Corte (Nesting)

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | EPIC-VT-005 |
| **Nombre** | Corte (Nesting) |
| **Modulo** | corte |
| **Fase** | Fase 1 - MVP |
| **Prioridad** | P0 (Critico) |
| **Estado** | Backlog |
| **Story Points** | 45 |
| **Sprint(s)** | Sprint 5-6 |

---

## Descripcion

Módulo 100% nuevo especializado en optimización de corte de vidrio. Implementa algoritmos de nesting para maximizar aprovechamiento de láminas, minimizando desperdicio. Incluye visualización gráfica del plan de corte y gestión de retazos aprovechables.

---

## Objetivo de Negocio

- Reducir desperdicio de material en 20-30%
- Optimizar uso de láminas completas
- Aprovechar retazos para piezas pequeñas
- Reducir tiempo de planificación de corte
- Trazabilidad de material por pieza

---

## Historias de Usuario

| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-VT005-001 | Como planificador, quiero generar plan de corte automático que minimice desperdicio | P0 | 13 | Backlog |
| US-VT005-002 | Como planificador, quiero visualizar gráficamente el plan de corte para validarlo | P0 | 8 | Backlog |
| US-VT005-003 | Como planificador, quiero ajustar manualmente posición de piezas en lámina para optimizar | P1 | 5 | Backlog |
| US-VT005-004 | Como operador de corte, quiero ver plan de corte en pantalla junto a mesa para ejecutar | P0 | 3 | Backlog |
| US-VT005-005 | Como operador de corte, quiero marcar piezas cortadas para registrar avance | P0 | 3 | Backlog |
| US-VT005-006 | Como almacenista, quiero registrar retazos aprovechables para reutilizar | P0 | 3 | Backlog |
| US-VT005-007 | Como planificador, quiero incluir retazos disponibles en plan de corte para aprovecharlos | P1 | 5 | Backlog |
| US-VT005-008 | Como jefe de producción, quiero ver métricas de desperdicio por lámina para medir eficiencia | P1 | 3 | Backlog |
| US-VT005-009 | Como admin, quiero configurar margen de corte (kerf) por tipo de máquina | P2 | 2 | Backlog |

**Total Story Points:** 45 SP

---

## Algoritmo de Nesting

```
┌─────────────────────────────────────────────────┐
│                   LÁMINA 2440 x 1830 mm         │
│  ┌──────────────┐ ┌──────────────┐ ┌────────┐  │
│  │              │ │              │ │        │  │
│  │   Pieza 1    │ │   Pieza 2    │ │ P3     │  │
│  │   800x600    │ │   700x500    │ │ 400x   │  │
│  │              │ │              │ │ 500    │  │
│  └──────────────┘ └──────────────┘ └────────┘  │
│  ┌──────────────┐ ┌─────────┐ ┌──────────────┐ │
│  │              │ │         │ │              │ │
│  │   Pieza 4    │ │  P5     │ │   RETAZO     │ │
│  │   600x400    │ │  300x   │ │   Aprovechable│ │
│  │              │ │  400    │ │              │ │
│  └──────────────┘ └─────────┘ └──────────────┘ │
│  ┌────────────────────────────────────────────┐ │
│  │           DESPERDICIO (no aprovechable)    │ │
│  └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘

Aprovechamiento: 87%
Retazo: 8%
Desperdicio: 5%
```

---

## Criterios de Aceptacion de la Epica

**Funcionales:**
- [ ] Generar plan de corte automático (algoritmo bin packing)
- [ ] Visualización gráfica del plan de corte
- [ ] Edición manual de posiciones
- [ ] Considerar margen de corte (kerf)
- [ ] Registro de retazos aprovechables
- [ ] Inclusión de retazos en planes
- [ ] Métricas de aprovechamiento

**No Funcionales:**
- [ ] Generación de plan < 10 segundos para 50 piezas
- [ ] Aprovechamiento mínimo 80%
- [ ] Visualización responsive para pantallas de planta

**Tecnicos:**
- [ ] Algoritmo de nesting (bin packing 2D)
- [ ] Integración con inventario
- [ ] Integración con producción
- [ ] Canvas/SVG para visualización

---

## Dependencias

**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| EPIC-VT-001 Fundamentos | Backlog | Si |
| EPIC-VT-003 Produccion | Backlog | Si |
| EPIC-VT-004 Inventario | Backlog | Si |

**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| EPIC-VT-006 Templado | Requiere piezas cortadas |

---

## Desglose Tecnico

**Database:**
- [ ] Schema: `cutting`
- [ ] Tablas: 5 (cutting_plans, plan_pieces, remnants, machines, cut_logs)
- [ ] Funciones: 2 (calculate_waste, register_remnant)
- [ ] Indices: Por lámina, orden, estado

**Backend:**
- [ ] Modulo: `cutting`
- [ ] Entities: 4 (CuttingPlan, PlanPiece, Remnant, CutLog)
- [ ] Services: NestingService (algoritmo)
- [ ] Endpoints: 12
- [ ] Tests: 25

**Frontend:**
- [ ] Paginas: 3 (CuttingPlans, PlanViewer, Remnants)
- [ ] Componentes: 10 (CuttingCanvas, PieceEditor, WasteMetrics, etc.)
- [ ] Stores: 1 (cuttingStore)

---

## Endpoints API

| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| POST | /api/cutting/plans | Crear plan de corte |
| GET | /api/cutting/plans/:id | Ver plan de corte |
| POST | /api/cutting/plans/:id/optimize | Ejecutar nesting |
| PATCH | /api/cutting/plans/:id/pieces | Ajustar posiciones |
| POST | /api/cutting/plans/:id/execute | Ejecutar corte |
| POST | /api/cutting/plans/:id/pieces/:pieceId/cut | Marcar pieza cortada |
| GET | /api/cutting/remnants | Listar retazos |
| POST | /api/cutting/remnants | Registrar retazo |
| GET | /api/cutting/metrics | Métricas de desperdicio |

---

## Riesgos

| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Algoritmo no óptimo | Media | Alto | Benchmarks vs soluciones comerciales |
| Rotación incorrecta de piezas | Media | Medio | Considerar dirección del vidrio |
| Retazos no aprovechados | Alta | Medio | Alertas de retazos disponibles |

---

## Nota Técnica

Este módulo es **100% nuevo** y no tiene equivalente en el ERP-Core. El algoritmo de nesting es específico para la industria del vidrio y debe considerar:

- Dirección del vidrio (no todas las piezas pueden rotar)
- Margen de corte (kerf) variable por máquina
- Dimensiones máximas de láminas estándar
- Retazos mínimos aprovechables

---

## Definition of Ready (DoR)

- [x] Historias de usuario definidas
- [x] Criterios de aceptacion claros
- [x] Dependencias identificadas
- [x] Estimacion completada
- [ ] Investigación de algoritmos de nesting
- [ ] Definición de tamaño mínimo de retazo

## Definition of Done (DoD)

- [ ] Algoritmo de nesting funcionando
- [ ] Visualización gráfica de planes
- [ ] Registro de retazos operativo
- [ ] Métricas de aprovechamiento
- [ ] Tests de algoritmo
- [ ] Documentación de API

---

## Historial

| Fecha | Cambio | Autor |
|-------|--------|-------|
| 2025-12-08 | Creacion de epica | Claude-Agent |

---

**Creada por:** Claude-Agent
**Fecha:** 2025-12-08
**Ultima actualizacion:** 2025-12-08
