Documentation — Gestion de parc
Module de gestion de parc : actifs, tickets et mise à disposition. Tableau de bord, équipements, tickets, mise à Disposition, contrats, connaissances et changements.
Interface et UX
L'interface s'appuie sur le design system BPM avec une hiérarchie visuelle inspirée de Linear : fond de page #F5F5F7, cartes à bordure légère (12px, pas d'ombre marquée). En haut de chaque page : breadcrumb (Modules › Gestion de parc › …), onglets horizontaux (bpm.tabs) pour naviguer entre Tableau de bord, Équipements, Tickets, Mise à disposition, Contrats, Connaissances, Changements. Le bouton d'action principal (« Nouvel actif », « Nouveau ticket », etc.) est aligné à droite du titre (hauteur 40px). Les filtres sont des chips sélectionnables (32px, border-radius 6px, état actif bleu clair) avec défilement horizontal sur mobile ; l'export CSV est en bouton icône à droite. Les tableaux ont des en-têtes en semi-bold (font-weight 500, pas de majuscules), un hover sur les lignes (#F8F9FA) et des badges colorés pour Statut et Priorité. L'état vide est centré avec icône, titre, description et CTA (sans bpm.panel info). Le tableau de bord affiche des cartes métriques compactes (bpm.metric) avec icône et couleur d'accent par domaine (bleu équipements, orange tickets, violet MAD, vert contrats, cyan base de connaissances, rose changements) et une micro-info sous chaque métrique.
Le module ne code pas en dur les types d'actifs. Il s'appuie sur un fichier de configuration JSON (lib/asset-manager/config/) qui décrit les types d'actifs, leurs champs, les statuts, les catégories de tickets, les priorités et les règles de numérotation.
Configuration de domaine
Les configs sont dans lib/asset-manager/config/ : domain.it.json, domain.maintenance.json. Le schéma décrit domain_id, asset_types (id, label, icon, fields avec key, type, options…), statuses, ticket_categories, priorities, numbering.
API
GET /api/asset-manager/config— Liste des domaines disponibles.GET /api/asset-manager/config/[domainId]— Configuration d'un domaine.GET /api/asset-manager/assets?domainId=it— Liste des actifs (filtres optionnels : assetTypeId, statusId, search).POST /api/asset-manager/assets— Création d'un actif (body : domainId, assetTypeId, label, statusId, attributs…).GET /api/asset-manager/assets/[id]— Détail d'un actif.PUT /api/asset-manager/assets/[id]— Mise à jour.DELETE /api/asset-manager/assets/[id]— Suppression.
Compléments ITSM (Phase 2 et 3)
Cycle de vie des actifs, contrats et garanties, mouvements physiques, escalade SLA, connaissances, gestion des changements (CAB), CMDB (graphe de dépendances), RBAC et audit trail sont décrits dans docs/ASSET_MANAGER_ITSM_COMPLEMENTS.md. Les modèles Prisma correspondants (AssetContract, AssetMovement, KnowledgeArticle, ChangeRequest, CIRelation, AuditLog, Permission) sont définis dans le schéma et une migration est fournie (20260227100000_asset_manager_phase2_phase3).
Base de données et prérequis production
Le module utilise les tables Asset, AssetAttribute, AssetMovement, Ticket, Assignment, AssetContract, KnowledgeArticle, ChangeRequest, CIRelation, AuditLog, Permission, plus la config lib/asset-manager/config/domain.*.json. Pour le détail des structures et variables d'environnement, voir docs/DATABASE.md dans le dépôt.
Créer un nouveau domaine
Dupliquez domain.it.json en domain.[votre_domaine].json, adaptez domain_id, labels, asset_types, statuses, ticket_categories, priorities et numbering. Enregistrez le nouvel id dans lib/asset-manager/get-domain-config.ts (KNOWN_DOMAINS).
// get-domain-config.ts
const KNOWN_DOMAINS = ["it", "maintenance", "votre_domaine"] as const;