107 lines
2.7 KiB
Markdown
107 lines
2.7 KiB
Markdown
# 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.
|