# US-MAI005-003: Capturar evidencias de carga **ID:** US-MAI005-003 **Módulo:** MAI-005 (Despacho) **Prioridad:** Alta **Story Points:** 5 --- ## Historia de Usuario **Como** operador de transporte **Quiero** capturar evidencias fotográficas del estado de la carga antes de salir **Para** tener respaldo del estado inicial y evitar disputas por daños --- ## Criterios de Aceptación ### CA-001: Capturar fotos de la carga **Dado** que la carga está lista en la unidad **Cuando** tomo fotos de evidencia **Entonces** puedo capturar múltiples fotos mostrando el estado de la mercancía ### CA-002: Mínimo de fotos requerido **Dado** que el cliente o tipo de carga requiere evidencias **Cuando** intento continuar sin fotos suficientes **Entonces** el sistema indica cuántas fotos mínimas se requieren (configurable) ### CA-003: Registrar peso en báscula **Dado** que la carga pasa por báscula **Cuando** registro el peso **Entonces** puedo ingresar el peso total (kg) manual o desde ticket de báscula ### CA-004: Capturar firma de almacén **Dado** que el almacén entrega la carga **Cuando** solicito la firma **Entonces** el responsable de almacén firma en pantalla confirmando la entrega ### CA-005: Funcionamiento offline **Dado** que estoy en área sin señal **Cuando** capturo fotos y firma **Entonces** se almacenan localmente y sincronizan al recuperar conexión ### CA-006: Metadata de fotos **Dado** que capturo una foto **Cuando** se guarda **Entonces** incluye timestamp, coordenadas GPS y dispositivo origen --- ## Mockup / UI ``` ┌─────────────────────────────────────────────────────────────────┐ │ EVIDENCIAS DE CARGA ✕ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Viaje: VJE-0123 | Carga: Electrodomésticos │ │ Requisito mínimo: 3 fotos │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ 📷 FOTOS DE CARGA (3/3 mínimo) │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 📷 1 │ │ 📷 2 │ │ 📷 3 │ │ + │ │ │ │ [Vista] │ │ [Vista] │ │ [Vista] │ │ Agregar │ │ │ │ 06:10am │ │ 06:11am │ │ 06:12am │ │ foto │ │ │ │ ✓ │ │ ✓ │ │ ✓ │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ ⚖ PESO EN BÁSCULA (Opcional) │ │ │ │ Peso bruto: [12,500] kg │ │ Peso neto: [10,200] kg │ │ Referencia ticket: [BSC-2026-0145] │ │ │ │ [📷 Foto de ticket báscula] ✓ Capturada │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ ✍ FIRMA DE ALMACÉN │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ [Área de firma - táctil] │ │ │ │ │ │ │ │ ~~~~~~~~~~~~~~~~~~~~~~ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ Nombre: [Carlos López Hernández] │ │ Puesto: [Jefe de Almacén] │ │ │ │ [Limpiar firma] │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ ✓ Fotos: 3/3 ✓ Peso: Registrado ✓ Firma: Capturada │ │ │ │ [Cancelar] [Continuar →] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Vista de Foto Individual ``` ┌─────────────────────────────────────────────────────────────────┐ │ DETALLE DE EVIDENCIA ✕ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ [Imagen de la carga] │ │ │ │ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ 📅 Fecha/Hora: 2026-01-28 06:10:32 │ │ 📍 Ubicación: 19.4326, -99.1332 (Bodega CDMX) │ │ 📱 Dispositivo: iPhone 14 Pro │ │ │ │ Nota: [Vista frontal de la estiba completa] │ │ │ │ [🗑 Eliminar] [✓ Confirmar] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Configuración por Cliente | Cliente | Fotos mínimas | Peso requerido | Firma requerida | |---------|---------------|----------------|-----------------| | Default | 3 | No | Sí | | Cliente A | 5 | Sí | Sí | | Cliente B | 3 | Sí (neto y bruto) | Sí | | Cliente C | 2 | No | No | --- ## Notas Técnicas - Tabla: `evidencias_carga` - Fotos se comprimen a max 1MB antes de subir - Firma se guarda como SVG o PNG base64 - Metadata EXIF se extrae automáticamente - Cola de sincronización con reintentos exponenciales - Configuración de requisitos en `requisitos_cliente` --- ## Definición de Done - [ ] Captura de múltiples fotos con cámara - [ ] Validación de fotos mínimas por configuración - [ ] Registro de peso con campos bruto/neto - [ ] Captura de firma táctil - [ ] Almacenamiento con metadata (GPS, timestamp) - [ ] Funcionamiento offline completo - [ ] Sincronización con cola de reintentos - [ ] Tests de sincronización y validación