# US-MMD003-005: Adjuntar Fotos de Evidencia

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | US-MMD003-005 |
| **Epica** | EPIC-MMD-003 - Diagnosticos |
| **Modulo** | diagnosticos |
| **Prioridad** | P1 |
| **Story Points** | 5 |
| **Sprint** | Sprint 3 |
| **Estado** | Backlog |

---

## Historia de Usuario

**Como** mecanico,
**quiero** adjuntar fotos de partes danadas o hallazgos,
**para** documentar visualmente el estado del componente y justificar la reparacion.

## Descripcion Detallada

Las fotos son evidencia importante para mostrar al cliente el estado de las piezas, documentar el trabajo realizado, y respaldo en caso de garantias.

---

## Criterios de Aceptacion

**Escenario 1: Tomar foto desde celular**
```gherkin
DADO que estoy en el diagnostico
CUANDO hago clic en "Agregar foto"
ENTONCES puedo tomar foto con la camara del dispositivo
O seleccionar de galeria
```

**Escenario 2: Agregar descripcion a foto**
```gherkin
DADO que subo una foto
CUANDO agrego descripcion: "Tobera de inyector danada"
ENTONCES la foto se guarda con la descripcion
Y aparece en la galeria del diagnostico
```

**Escenario 3: Categorizar fotos**
```gherkin
DADO que subo varias fotos
CUANDO las categorizo:
  | Foto | Categoria |
  | foto1.jpg | Antes |
  | foto2.jpg | Dano encontrado |
  | foto3.jpg | Despues |
ENTONCES se agrupan por categoria
```

**Escenario 4: Compresion automatica**
```gherkin
DADO que subo foto de 8MB
CUANDO el sistema procesa
ENTONCES comprime a ~500KB
Y mantiene calidad suficiente
```

**Escenario 5: Ver galeria de fotos**
```gherkin
DADO que el diagnostico tiene 5 fotos
CUANDO veo la galeria
ENTONCES puedo:
  - Ver miniaturas
  - Ampliar cada foto
  - Navegar entre fotos
  - Descargar originales
```

---

## Categorias de Fotos

| Categoria | Uso |
|-----------|-----|
| Antes | Estado al recibir |
| Dano | Problemas encontrados |
| Proceso | Durante reparacion |
| Despues | Trabajo terminado |
| Otro | General |

---

## Tareas Tecnicas

**Database:**
- [ ] DB-069: Crear tabla `diagnostic_photos`
- [ ] DB-070: Campos: url, description, category, order

**Backend:**
- [ ] BE-136: Endpoint POST /api/diagnostics/:id/photos
- [ ] BE-137: Servicio de compresion de imagenes
- [ ] BE-138: Almacenamiento (S3 o local)
- [ ] BE-139: Generacion de thumbnails

**Frontend:**
- [ ] FE-137: Crear PhotoUpload component
- [ ] FE-138: Crear PhotoGallery component
- [ ] FE-139: Lightbox para ver ampliado
- [ ] FE-140: Captura desde camara

---

## Especificaciones Tecnicas

| Parametro | Valor |
|-----------|-------|
| Formatos | JPG, PNG |
| Tamanio max upload | 10MB |
| Tamanio comprimido | ~500KB |
| Thumbnail | 200x200px |
| Almacenamiento | S3 o disco local |

---

## Definition of Done (DoD)

- [ ] Subir fotos desde galeria
- [ ] Tomar foto con camara
- [ ] Descripcion y categoria
- [ ] Compresion automatica
- [ ] Galeria con lightbox
- [ ] Tests pasando

---

**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06
