# Campos y plantillas de activos ## Uso El Catálogo de activos de la navegación principal contiene las definiciones globales. La ficha de cada compañía incorpora Catálogo de activos: combina las globales con sus adiciones propias. Las altas y ediciones se abren mediante el botón de cabecera o la acción del listado. Los formularios son modales, con ayuda inferior y Guardar / Cancelar. Ver consulta una definición sin modificarla. Crear copia inicia una nueva plantilla personalizable. Un campo representa una característica reutilizable: texto, texto largo, número, fecha, sí/no o lista de valores. Tiene nombre, descripción y unidad opcionales. Una lista necesita valores únicos; el tipo queda fijo tras el alta y sus valores existentes no pueden eliminarse. Se pueden añadir valores. Las credenciales no pertenecen a este catálogo. Una plantilla reúne campos para un tipo de activo. No representa un activo concreto ni un modelo comercial. Cada campo comienza como opcional; el técnico puede marcarlo obligatorio en plantillas propias. Se pueden añadir y retirar campos. Retirar una asociación no elimina la definición del campo. El orden de incorporación se conserva. El selector de campos reutiliza SelectWithAction: el botón «+» abre el alta de campo, conserva los datos de la plantilla y añade el nuevo campo como opcional. Cancelar el modal adicional conserva la plantilla. Un campo guardado permanece en el catálogo aunque se cancele después la plantilla. ## Datos de serie Se incluyen además cinco [tipos de relación](relaciones-entre-activos.md). Hay 55 campos y 12 plantillas: portátil, PC de sobremesa, monitor, impresora, router, firewall, switch, punto de acceso Wi-Fi, NAS, servidor, smartphone y SAI. Los campos describen identidad física y comercial, hardware, conectividad, batería, alimentación, software precargado, compra, garantía y soporte. IP, nombre de equipo, usuario asignado y mediciones operativas actuales no forman parte del catálogo de serie. Todas las características iniciales de las plantillas de serie son opcionales. Las plantillas globales, incluidas las de serie, permiten editar nombre, descripción, icono, grupos, campos incluidos y obligatoriedad. Los campos de serie admiten edición; su tipo permanece fijo y las opciones existentes no se pueden retirar. Los tipos de relación de serie mantienen su protección. Se pueden activar o desactivar. Para particularizar una plantilla para una compañía, crear una copia. No hay borrado de definiciones. El arranque incorpora únicamente definiciones ausentes mediante claves de serie estables; conserva las plantillas existentes y su personalización. Reiniciar no duplica registros, regenera UUID ni reactiva definiciones desactivadas. No crea compañías, personas ni activos ficticios. ## Ámbitos y disponibilidad Una definición global está disponible para todas las compañías. Una adición local solo está visible en su compañía. No se pueden editar definiciones globales desde una compañía; se puede crear una copia de una plantilla. La disponibilidad global es el valor predeterminado. Cada compañía puede establecer una activación o desactivación propia de una definición global, sin afectar a otras. Usar configuración global elimina el efecto del ajuste local, conservando su UUID. Las definiciones globales personalizadas se pueden eliminar tras confirmación si no están usadas por activos, historial, relaciones o plantillas; las definiciones de serie y las adiciones de compañía se conservan. No se aceptan nombres duplicados del mismo tipo en el catálogo visible, ignorando mayúsculas y espacios exteriores. Una nueva definición global tampoco puede colisionar con una adición local. Las plantillas globales solo usan campos globales. Las locales pueden usar campos globales o de su propia compañía. Solo se añaden campos activos. Desactivar un campo conserva las asociaciones existentes y muestra un aviso; no desactiva automáticamente plantillas ni borra información. ## Arquitectura El módulo assets sigue domain, application e infrastructure. AssetCatalog es la raíz de consistencia; AssetDefinition, TemplateField y CatalogAvailability son entidades. Todas tienen UniqueID; las nuevas identidades son UUID v7. AssetDefinitionValues reconstruye Name y referencias UniqueID y compara cambios semánticamente. Los cambios idempotentes conservan instancias e identificadores. Las tablas asset_catalogs, asset_definitions, asset_template_fields y asset_availability tienen claves primarias y foráneas explícitas. Las migraciones son idempotentes. Un bloqueo de catálogo serializa altas, cambios de nombres, campos asociados y disponibilidad para evitar colisiones concurrentes. El mapper reconstruye y comprueba definiciones y asociaciones persistidas. Las rutas GET /api/asset-catalog/:scope, POST /api/asset-catalog/:scope, POST /api/asset-catalog/:scope/:id/update, POST /api/asset-catalog/:scope/:id/status y POST /api/asset-catalog/:scope/:id/delete requieren sesión. Las escrituras usan la protección de origen y CSRF existente. scope es global o el UUID de una compañía existente. La respuesta solo expone el catálogo visible de ese ámbito. ## Inventario y relaciones El [inventario de activos](inventario-de-activos.md) utiliza estas plantillas. El mismo catálogo incorpora los [tipos de relación](relaciones-entre-activos.md). Los [puestos de trabajo](puestos-de-trabajo.md) agrupan los activos registrados. ## Organización de campos Las plantillas permiten organizar campos en secciones ordenadas, globales o propias de compañía. Consultar [Secciones de campos en plantillas](secciones-de-campos-en-plantillas.md) para las reglas, presentación y conservación de datos existentes. La [propuesta de evolución de plantillas de activos](evolucion-de-plantillas-de-activos.md) define cómo propagar cambios a los activos existentes de todas las compañías, conservando valores e historial. Está pendiente de implementación; no modifica el contrato actual de instantáneas. ## Iconos de plantilla Cada plantilla global o propia de compañía admite un icono opcional de la biblioteca Lucide existente. El formulario incluye un selector visual con nombres traducidos, selección marcada y opción «Sin icono». Las copias conservan el icono; las plantillas personalizadas permiten cambiarlo y retirarlo. Las doce plantillas de serie incluyen iconos adecuados a cada equipo. Editar o retirar un icono conserva identidades, campos y disponibilidad; el arranque no repone los iconos retirados por el usuario. El catálogo, su consulta de detalle, la columna Plantilla del inventario y la cabecera del panel del activo muestran el icono. Los activos toman el icono actual de su plantilla: es metadato de presentación y no modifica características ni historial técnico. Se persiste la clave validada del icono en la columna nullable `asset_definitions.icon`, sin JSON ni archivos de imagen. La migración añade la columna en instalaciones existentes. Los campos y las relaciones no admiten iconos en este contrato. ## Plantilla Portátil La plantilla incluye 25 campos opcionales en ocho grupos: - Identificación: marca, modelo, número de serie y código de producto / Service Tag. - Hardware: procesador, tarjeta gráfica, webcam, memoria RAM, almacenamiento, pantalla integrada, micrófono, idioma del teclado, teclado numérico y retroiluminación. - Conectividad: descripción de las interfaces y estándares disponibles. - Batería: referencia/modelo y capacidad de fábrica. - Alimentación: potencia, conector y referencia/modelo del cargador. - Software: sistema operativo precargado. - Compra y garantía: fecha de compra, fin de garantía y proveedor. - Soporte y reparación: enlace a la página de soporte. No incluye capacidad actual de la batería, ciclos, estado ni fecha de comprobación. Estas mediciones pertenecen a comprobaciones o intervenciones fechadas. ## Catálogo revisado del 10/10/2026 El catálogo de serie refleja el Excel aprobado por el usuario: 55 campos compartidos, 12 plantillas y 161 asociaciones de campos. Conserva los nombres, tipos, grupos y orden indicados. Todos los campos de características siguen siendo opcionales. Los ejemplos ilustrativos se utilizan como texto de ayuda; cuando varias plantillas comparten un campo, se reúnen sus ejemplos sin duplicados en la definición global. Los tipos son texto, texto largo, fecha y booleano. Texto largo se representa con un área de texto y se persiste en la columna relacional `textValue`, conservando los saltos de línea. La actualización explícita e idempotente de las restricciones CHECK admite `multiline` sin desactivar la integridad referencial ni guardar JSON. Las ediciones posteriores de las definiciones se conservan al reiniciar. Los activos describen identidad física/comercial y características de fábrica. El sistema operativo precargado no representa el sistema operativo actualmente instalado, que se registra como recurso. Las personas se relacionan mediante puestos de trabajo y perfiles de usuario. La plantilla Servidor conserva los dos campos de sistema operativo con nombres diferentes que aparecen en el Excel.