# 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.