Files

70 lines
2.6 KiB
Markdown

# Fase D1 — Planificación y apertura de visitas
Versión: `0.15.0`
## Objetivo
Iniciar el dominio de inspecciones con la regla funcional acordada: una
inspección representa una visita. D1 planifica y abre esa visita; no incorpora
todavía actas, hallazgos ni el informe consolidado.
## Modelo
`inspection_visits` conserva identidad, título, objetivo, estado, fechas,
ubicación o alcance principal, responsable, instrucciones y trazabilidad.
La visita utiliza el Maestro de Activos de dos maneras:
- `scope_asset_id` referencia cualquier activo que represente su ubicación o
alcance principal;
- `inspection_visit_assets` vincula los activos concretos a inspeccionar.
No se copian nombres, ubicaciones ni atributos. Todos los vínculos apuntan a los
activos originales y respetan la jerarquía dinámica: si se define un alcance,
los activos seleccionados deben pertenecer a esa rama.
`inspection_visit_members` vincula usuarios activos con permiso de ejecución.
Un integrante se designa como inspector responsable y debe pertenecer al equipo.
## Flujo controlado
- `DRAFT`: admite cambios generales, activos y equipo;
- `PLANNED`: el plan está confirmado, pero aún puede volver a borrador;
- `IN_PROGRESS`: la visita fue iniciada y su planificación queda congelada;
- `CANCELLED`: estado terminal con motivo obligatorio;
- `CLOSED`: reservado para la futura operación de cierre e informe consolidado.
Antes de confirmar o iniciar se exige ubicación, fecha de inicio, al menos un
activo, un equipo válido y un responsable incluido. Sólo un integrante asignado
o un usuario con gestión puede iniciar la visita.
## Permisos
- `inspections.read`: admin, director, supervisor, inspector y auditor;
- `inspections.manage`: admin y supervisor;
- `inspections.assign`: admin y supervisor;
- `inspections.execute`: admin, supervisor e inspector.
Las tres tablas conceden al usuario runtime lectura, inserción y actualización,
pero revocan borrado físico.
## API e interfaz
Rutas principales:
- `GET|POST /api/v3/inspection-visits`;
- `GET|PATCH /api/v3/inspection-visits/:id`;
- `PUT /api/v3/inspection-visits/:id/assets`;
- `PUT /api/v3/inspection-visits/:id/team`;
- `PUT /api/v3/inspection-visits/:id/status`;
- `POST /api/v3/inspection-visits/:id/start`.
La sección **Inspecciones** reemplaza el placeholder por un listado y un editor
completo de visita.
## Continuidad
La próxima subfase agregará el acta única de cada visita. Después se
incorporarán hallazgos y evidencias, y finalmente firmas, rectificativas y el
informe técnico que incorporará el acta y sus hallazgos.