docs(F6.1): add presentation acceptance and demo guide
This commit is contained in:
@@ -0,0 +1,115 @@
|
|||||||
|
# DH Inspección V2 · corte de presentación F6.1
|
||||||
|
|
||||||
|
Este documento define el alcance verificable del corte F6.1 y el recorrido recomendado para una presentación funcional. No reemplaza al Manual de Usuario ni al Manual del Programador.
|
||||||
|
|
||||||
|
## Versiones del corte
|
||||||
|
|
||||||
|
- API: `0.29.0-1`.
|
||||||
|
- WEB: `0.23.0-1`.
|
||||||
|
- Android: `0.15.0` (`versionCode 22`).
|
||||||
|
- Modelo funcional: **F6.1 · contexto operativo Área–Operadora consolidado**.
|
||||||
|
|
||||||
|
La versión visible en el footer WEB debe coincidir con `web-v2/package.json`; este contrato queda protegido por tests.
|
||||||
|
|
||||||
|
## Matriz de aceptación funcional
|
||||||
|
|
||||||
|
### Inventario
|
||||||
|
|
||||||
|
- Jerarquía física vigente: **Departamento → Área → Yacimiento → Instalación → Subinstalación**.
|
||||||
|
- Empresa permanece fuera del árbol físico.
|
||||||
|
- La Operadora se resuelve por relación temporal vigente con el Área.
|
||||||
|
- Instalación y Subinstalación admiten familia **Otro / no catalogado** cuando corresponda.
|
||||||
|
- Un alta de campo conserva inspección, actor, fecha, contexto, GPS y evidencia exigida por el flujo.
|
||||||
|
|
||||||
|
> El issue histórico F3.1 describía un árbol que comenzaba en Área. Esa definición fue supersedida por F5.1/F6, que incorporó Departamento como raíz territorial autorizada.
|
||||||
|
|
||||||
|
### Merge cronológico de Inventario
|
||||||
|
|
||||||
|
- Sólo se fusionan Instalaciones/Subinstalaciones compatibles.
|
||||||
|
- El registro duplicado no se elimina: queda fusionado/inactivo y conserva identidad histórica.
|
||||||
|
- Las referencias históricas emitidas no se reescriben.
|
||||||
|
- El dossier canónico agrega cronológicamente alias y eventos, mostrando el Inventario original cuando corresponde.
|
||||||
|
- WEB muestra el destino canónico.
|
||||||
|
- Android, al conciliar un alta nacida en campo, selecciona inmediatamente el canónico y confirma qué código se conserva.
|
||||||
|
|
||||||
|
### Hallazgos y catálogo
|
||||||
|
|
||||||
|
- `OTROS` permanece disponible en el resolver de Hallazgos.
|
||||||
|
- La fusión de catálogo mueve aplicabilidad futura al canónico sin reescribir Hallazgos ya emitidos.
|
||||||
|
- Las instancias históricas conservan el modelo append-only y la trazabilidad de auditoría.
|
||||||
|
|
||||||
|
### Inspecciones y Android
|
||||||
|
|
||||||
|
- Una inspección planificada puede iniciarse desde Android por un Inspector autorizado y asignado.
|
||||||
|
- El inicio registra `actualStartedAt`, actor y auditoría del servidor.
|
||||||
|
- El contexto operativo es Área + Operadora vigente.
|
||||||
|
- Una Inspección puede tener múltiples Actas, con un único borrador simultáneo.
|
||||||
|
- El cierre exige Actas selladas y verificaciones requeridas completas.
|
||||||
|
|
||||||
|
### Perfil del Inspector
|
||||||
|
|
||||||
|
- Nombre y apellido obligatorios.
|
||||||
|
- Datos administrativos disponibles: DNI, email, teléfono, cargo/función y legajo/matrícula.
|
||||||
|
- El email es obligatorio para rol Inspector.
|
||||||
|
|
||||||
|
### Entrega documental
|
||||||
|
|
||||||
|
- El Acta PDF se prepara para Empresa, Oficina e Inspector principal.
|
||||||
|
- El INF Word se prepara también para el Inspector principal cuando existe.
|
||||||
|
- El outbox conserva destinatario, estado, intentos, error y fecha de envío; los pendientes son reintentables.
|
||||||
|
- La entrega depende de SMTP y destinatarios configurados: si faltan, el registro queda en un estado de espera auditable en lugar de perderse.
|
||||||
|
|
||||||
|
### Relevamientos
|
||||||
|
|
||||||
|
- `Relevamientos` no existe como módulo/ruta/entrada de menú activa.
|
||||||
|
- La captura en campo vive dentro de Inspecciones + Inventario de campo.
|
||||||
|
|
||||||
|
## Barrera técnica obligatoria
|
||||||
|
|
||||||
|
Un SHA sólo es candidato de presentación cuando pasan:
|
||||||
|
|
||||||
|
1. API typecheck, tests y build.
|
||||||
|
2. WEB typecheck y build.
|
||||||
|
3. migraciones sobre PostGIS limpio.
|
||||||
|
4. arranque real de API.
|
||||||
|
5. preflight aislado equivalente al entorno Docker.
|
||||||
|
6. build de imágenes productivas.
|
||||||
|
7. Android lint.
|
||||||
|
8. Android unit tests reales.
|
||||||
|
9. Android `assembleDebug`.
|
||||||
|
10. Android `assembleRelease`.
|
||||||
|
11. APK debug con SHA-256 y metadata del SHA exacto.
|
||||||
|
|
||||||
|
## Recorrido sugerido de demo
|
||||||
|
|
||||||
|
1. **Login WEB** y Dashboard.
|
||||||
|
2. **Inventarios**: navegar Departamento → Área → Yacimiento → Instalación → Subinstalación y abrir un dossier.
|
||||||
|
3. Mostrar la **cronología/dossier**, documentos, fotos y Hallazgos.
|
||||||
|
4. Mostrar, si existe un caso preparado, una **fusión cronológica** y el aviso de registro canónico.
|
||||||
|
5. **Usuarios**: abrir un Inspector y mostrar perfil, email documental y roles.
|
||||||
|
6. **Inspecciones**: crear/abrir una planificación con Área + Operadora, Inspector y checklist.
|
||||||
|
7. **Android**: ingresar con Inspector, abrir o seleccionar la Inspección e iniciarla.
|
||||||
|
8. En Android, abrir **Inventario de campo**, seleccionar un registro o crear uno nuevo con GPS y foto. Para una familia no catalogada, usar **Otro / no catalogado**.
|
||||||
|
9. Crear un **Acta**, registrar un **Hallazgo** (incluyendo `OTROS` si se quiere demostrar el fallback), adjuntar evidencia y sellar el Acta.
|
||||||
|
10. Cerrar la Inspección cuando todas las Actas estén selladas.
|
||||||
|
11. En WEB, mostrar **Actas / Informes / Entrega documental** y el estado auditable de los envíos.
|
||||||
|
|
||||||
|
## Preparación del entorno de presentación
|
||||||
|
|
||||||
|
Antes de una demo con envío real de correo, verificar en Administración:
|
||||||
|
|
||||||
|
- email institucional de Oficina;
|
||||||
|
- email de la Empresa involucrada;
|
||||||
|
- email del Inspector principal;
|
||||||
|
- SMTP configurado y operativo.
|
||||||
|
|
||||||
|
Para una demo sin correo saliente, el resto del flujo puede demostrarse y la bandeja de entrega debe reflejar el estado de espera correspondiente; no se debe presentar un envío como exitoso si el transporte no está configurado.
|
||||||
|
|
||||||
|
## Evidencia del corte
|
||||||
|
|
||||||
|
El SHA presentado debe conservarse junto con:
|
||||||
|
|
||||||
|
- resultado verde de GitHub Actions;
|
||||||
|
- metadata de versiones;
|
||||||
|
- APK debug de la candidata y su SHA-256;
|
||||||
|
- si se distribuye APK productiva, firma histórica verificada y SHA-256 del artefacto firmado.
|
||||||
Reference in New Issue
Block a user