gmao/docs/development/DECISIONS_020_DEV3.md

2.7 KiB

Décisions architecturales 0.2.0-dev.3

Les décisions sont ajoutées au fil des checkpoints. Les modèles existants sont privilégiés avant toute nouvelle table.

D-000 — Checkpoints indépendants

CONTEXTE : le chantier couvre plusieurs domaines avec migrations et risques différents.

OPTIONS ÉTUDIÉES : un gros développement continu ; checkpoints commitables.

CHOIX : checkpoints A à E, chacun documenté, testé et versionné.

JUSTIFICATION : reprise fiable, absence de régression masquée, dépôt source de vérité.

CONSÉQUENCES : aucun checkpoint suivant ne démarre avant validation du précédent.

DATE/COMMIT : 2026-08-23 / initialisation.

D-001 — Service de création Equipment

CONTEXTE : les routes fiche avancée et wizard construisaient des objets différents et le wizard retrouvait ensuite des équipements par nom.

OPTIONS ÉTUDIÉES : conserver les routes indépendantes ; centraliser la construction dans un service.

CHOIX : core.services.equipment_creation.create_equipment, lot et catégorie facultatifs, retour de l'instance persistée.

JUSTIFICATION : évite les collisions de noms et garantit la même gestion de quantité, parent, localisation et génération préventive.

CONSÉQUENCES : les anciens parcours sont progressivement migrés ; les relations techniques restent hors parent_id.

DATE/COMMIT : 2026-08-23 / checkpoint A en cours.

D-003 — Catégorie et lot facultatifs

CONTEXTE : un inventaire peut être saisi avant que le référentiel de maintenance soit complet.

OPTIONS ÉTUDIÉES : bloquer toute création sans lot ; accepter un équipement incomplet et le compléter plus tard.

CHOIX : la création reste valide sans lot (et sans catégorie dans les parcours wizard) ; un lot fourni est validé et peut déclencher la génération préventive.

JUSTIFICATION : respecter le principe de configuration progressive sans fabriquer de maintenance implicite.

CONSÉQUENCES : l'interface doit pouvoir signaler ultérieurement « Lot non renseigné » ; les relations techniques restent indépendantes.

DATE/COMMIT : 2026-08-23 / checkpoint A.

D-002 — Durée d'intervention inconnue

CONTEXTE : Intervention.effective_estimated_duration retournait silencieusement 60 minutes.

CHOIX : retourner 0 si aucune estimation ou moyenne historique n'existe ; DayPlanner affiche alors une tâche sans durée à renseigner.

JUSTIFICATION : ne pas présenter une estimation arbitraire comme une contrainte métier.

CONSÉQUENCES : les statistiques historiques restent inchangées ; les workflows doivent renseigner les interventions planifiables.

DATE/COMMIT : 2026-08-23 / checkpoint A en cours.