chore: import DH V2 D5.6.4 production baseline

This commit is contained in:
DH V2
2026-09-05 10:12:35 -03:00
commit 82213e72f5
757 changed files with 84218 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
# Fase B1 — Base del Maestro de Activos
Versión: `0.8.0`
## Objetivo
Reemplazar el placeholder de Activos por el primer núcleo funcional del Maestro
de Activos, sin fijar niveles como Empresa, Área, Yacimiento o Pozo.
## Modelo incorporado
- `asset_types`: tipos configurables y activables/desactivables;
- `asset_type_parent_rules`: múltiples tipos padre permitidos por tipo hijo;
- `asset_attribute_definitions`: atributos configurables por tipo;
- `assets`: entidades administrables con identidad y padre opcional;
- `asset_attribute_values`: valores tipados de cada activo.
La jerarquía se controla con dos reglas:
1. un tipo puede o no permitir activos raíz;
2. un tipo puede aceptar cero, uno o varios tipos padre.
La API también evita ciclos en la jerarquía real de activos.
## Atributos dinámicos
Tipos iniciales de dato:
- texto;
- número;
- verdadero/falso;
- fecha;
- fecha y hora;
- selección con opciones configurables.
Los atributos pueden ser obligatorios, tener unidad, orden e inactivarse sin
borrar valores existentes.
## Estados de información
- `DRAFT`;
- `PENDING_SURVEY`;
- `SURVEYED`;
- `VALIDATED`;
- `OBSERVED`;
- `OUTDATED`;
- `INACTIVE`.
Estos estados describen la calidad o vigencia de la información. No representan
el estado operativo o mecánico del activo.
## API
Tipos y atributos:
- `GET /api/v3/asset-types`;
- `GET /api/v3/asset-types/:id`;
- `POST /api/v3/asset-types`;
- `PATCH /api/v3/asset-types/:id`;
- `POST /api/v3/asset-types/:id/attributes`;
- `PATCH /api/v3/asset-types/:id/attributes/:attributeId`.
Activos:
- `GET /api/v3/assets`;
- `GET /api/v3/assets/parent-options`;
- `GET /api/v3/assets/:id`;
- `POST /api/v3/assets`;
- `PATCH /api/v3/assets/:id`;
- `PATCH /api/v3/assets/:id/information-status`.
No se implementa borrado físico.
## Permisos
- `asset_types.read`;
- `asset_types.manage`;
- `assets.read`;
- `assets.create`;
- `assets.update`;
- `assets.change_status`.
La migración los asigna a los roles de sistema según su alcance y entrega todos
al rol `admin`.
## Interfaz web
- `/activos`: búsqueda, filtros, tabla y jerarquía visible;
- `/activos/nuevo`: alta con atributos dinámicos;
- `/activos/:id`: consulta/edición y cambio de estado según permiso;
- `/admin/asset-types`: configuración de tipos, padres y atributos.
## Trazabilidad
Se auditan altas y cambios de tipos, atributos, activos y estado de información.
Los valores dinámicos quedan incluidos en el antes/después sanitizado.
## Fuera de B1
Quedan para próximas subfases:
- geometrías PostGIS y edición en mapa;
- fotografías y media versionada;
- versiones históricas y consulta temporal;
- importaciones/procedencia avanzada;
- relevamiento de campo.