chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Fase D5 — Cierre y firmas
|
||||
|
||||
Versión: `0.19.0`
|
||||
|
||||
## Objetivo
|
||||
|
||||
Cerrar la inspección conservando una constancia exacta e inmutable de lo
|
||||
observado. El cierre del acta no cierra los hallazgos: cada hallazgo continúa
|
||||
abierto hasta su verificación posterior.
|
||||
|
||||
## Flujo
|
||||
|
||||
1. El acta sigue en `DRAFT` durante la visita.
|
||||
2. Se identifica al responsable de la empresa o se documenta su ausencia.
|
||||
3. `Preparar para firmas` cambia el acta a `READY`, congela el contenido y
|
||||
genera una huella SHA-256 canónica.
|
||||
4. Firma al menos un inspector asignado.
|
||||
5. La empresa firma la recepción o se registra una negativa/ausencia motivada.
|
||||
6. `Cerrar y sellar` cierra atómicamente el acta y la visita.
|
||||
7. Los hallazgos permanecen `OPEN`, admitiendo respuestas, PDFs, comunicaciones
|
||||
y fecha del próximo control.
|
||||
|
||||
Antes de la primera firma, un acta `READY` puede volver a `DRAFT`. Después de
|
||||
registrar una firma o constancia ya no puede reabrirse ni modificarse.
|
||||
|
||||
## Constancia manuscrita
|
||||
|
||||
La captura en pantalla se denomina firma manuscrita o constancia de recepción.
|
||||
No se presenta como firma digital certificada. Cada registro conserva:
|
||||
|
||||
- identidad y rol del firmante;
|
||||
- declaración aceptada y su versión;
|
||||
- fecha del dispositivo y fecha del servidor;
|
||||
- origen web/Android, dispositivo y GPS opcional;
|
||||
- hash de la imagen y hash del payload de firma;
|
||||
- vínculo con la huella exacta del contenido preparado.
|
||||
|
||||
Las firmas sólo admiten `SELECT` e `INSERT` para el usuario runtime de la API.
|
||||
No pueden actualizarse ni borrarse.
|
||||
|
||||
## Congelado canónico
|
||||
|
||||
El snapshot preparado usa el esquema `DH-ACT-CLOSURE-V1` e incluye:
|
||||
|
||||
- acta y visita;
|
||||
- responsable empresarial y equipo inspector;
|
||||
- activos, atributos y geometrías vigentes;
|
||||
- hallazgos, texto constatado, catálogo y base legal copiada;
|
||||
- evidencias con metadatos y SHA-256;
|
||||
- comunicaciones existentes al momento de preparar.
|
||||
|
||||
Los objetos se serializan con claves ordenadas y fechas ISO-8601 antes de
|
||||
calcular SHA-256. El cierre final agrega las firmas y las fechas de cierre, y
|
||||
genera una segunda huella almacenada en el acta.
|
||||
|
||||
## Persistencia y permisos
|
||||
|
||||
La migración `PhaseD5ActClosingSignatures1787328000000` crea:
|
||||
|
||||
- `inspection_act_responsibles`;
|
||||
- `inspection_act_closures`;
|
||||
- `inspection_act_signatures`;
|
||||
- cuatro permisos `inspection_closure.*`;
|
||||
- restricciones, índices y triggers de inmutabilidad.
|
||||
|
||||
Las imágenes se guardan bajo
|
||||
`/app/storage/asset-media/inspection-signatures`, dentro del volumen existente
|
||||
`dhv2_asset_media`. No hay variables obligatorias nuevas.
|
||||
|
||||
## Fuera de alcance
|
||||
|
||||
El PDF oficial, QR/token de verificación y envío por correo corresponden a D6.
|
||||
El informe técnico y su aprobación corresponden a D7.
|
||||
Reference in New Issue
Block a user