Files
2026-10-23 18:46:50 +02:00

7.1 KiB

Matrice de couverture CRUD

État de la couverture CRUD pour les agrégats métier Batik et Omika.

Résumé

Catégorie Nombre Statut
BUSINESS_AGGREGATE 8 8 VERIFIED, 0 PARTIAL, 0 NOT_STARTED

| BUSINESS_CHILD | 1 | NOT_STARTED | | REFERENCE_DATA | 8 | 1 READ_ONLY_VERIFIED, 4 INTERNAL_ONLY, 2 SCHEMA_SPECIFIC, 1 NOT_REQUIRED | | JOIN_TABLE | 6 | NOT_STARTED | | SYSTEM_CONFIGURATION | 2 | NOT_STARTED | | VERSION_OPTIONAL | 1 | NOT_STARTED |

Agrégats métier (BUSINESS_AGGREGATE)

Entité Batik Omika Create ReadOne ReadList Update Delete Statut
Client Client Client ✅ ✅ ✅ ✅ ✅ VERIFIED
Personne Personne Personne ✅ ✅ ✅ ✅ ✅ VERIFIED

| Lieu | Lieu | Lieu | ✅ | ✅ | ✅ | ✅ | 🗄️ | VERIFIED | | Document | Document | Document | ✅ | ✅ | ✅ | N/A | 🗄️ | VERIFIED |

| Intervention | Intervention | Intervention | ✅ | ✅ | ✅ | ✅ | 🗄️ | VERIFIED |

| Dossier | Dossier | Dossier | ✅ | ✅ | ✅ | ✅ | 🗄️ | VERIFIED | | PlanningRDV | Planning_RDV | RDVPlanning | ✅ | ✅ | ✅ | ✅ | 🗄️ | VERIFIED |

| Collaborateur | Collaborateur | Collaborateur | ✅ | ✅ | ✅ | ✅ | 🗄️ | VERIFIED |

Référentiels (REFERENCE_DATA)

Lecture seule uniquement. Pas de CRUD administratif générique (C/U/D volontairement absents).

Entité Batik Omika Lecture Classification Statut
Societe Societe Societe ❌ INTERNAL_REFERENCE_ONLY INTERNAL_ONLY
Equipe Equipe Equipe ❌ INTERNAL_REFERENCE_ONLY INTERNAL_ONLY
ParametreMetier ParametreMetier ParametreMetier ✅ PUBLIC_READ_REFERENCE READ_ONLY_VERIFIED
ParametreMetierEntete ParametreMetierEntete ParametreMetierEntete ❌ INTERNAL_REFERENCE_ONLY INTERNAL_ONLY
EtatIntervention EtatIntervention EtatIntervention ❌ INTERNAL_REFERENCE_ONLY INTERNAL_ONLY
Role — Role ❌ SCHEMA_SPECIFIC SCHEMA_SPECIFIC
Etats — Etats ❌ SCHEMA_SPECIFIC SCHEMA_SPECIFIC
ModeleRapport — ModeleRapport ❌ NOT_REQUIRED NOT_REQUIRED

Détail des classifications

  • ParametreMetier (PUBLIC_READ_REFERENCE) : lecture publique via GET /reference-data/{key}. Câblé : IReferenceDataRepository → AdaptiveReferenceDataRepository, IReferenceDataService → ReferenceDataService, BatikReferenceDataRepository (filtre PA_Code) / OmikaReferenceDataRepository (filtre PA_Categorie). Retourne ReferenceValueDto (Key/LegacyId/Code/Label).
  • Societe (INTERNAL_REFERENCE_ONLY) : aucun besoin public démontré (pas de sélecteur de société requis par l'application).
  • Equipe (INTERNAL_REFERENCE_ONLY) : pas d'identité publique canonique exploitable indépendamment ; aucun GUID fabriqué.
  • ParametreMetierEntete (INTERNAL_REFERENCE_ONLY) : référentiel historique/protégé, pas de CRUD public.
  • EtatIntervention (INTERNAL_REFERENCE_ONLY) : table d'historique des états d'une intervention (chargée en interne par Intervention) ; les valeurs d'état proviennent de ParametreMetier. Pas de liste publique autonome.
  • Role (SCHEMA_SPECIFIC) : Omika uniquement ; absent sous Batik (indiqué par SchemaCapabilities.SupportsRoles). Lecture interne.
  • Etats (SCHEMA_SPECIFIC) : Omika uniquement ; absent sous Batik. Lecture interne.
  • ModeleRapport (NOT_REQUIRED) : Omika uniquement ; aucun besoin public démontré.

Tables de jointure (JOIN_TABLE)

Aucun CRUD public exposé. Gérées via les agrégats.

Table Batik Omika
ClientAdresse ✅ ✅
ClientLieu ✅ ✅
ClientBddExterne ✅ ✅
InterventionCollaborateur ✅ ✅
InterventionPersonne ✅ ✅
LieuPersonne ✅ ✅

Configuration système (SYSTEM_CONFIGURATION)

Table Batik Omika
Utilisateur ✅ ✅
ParametreSysteme ✅ ✅

Version optionnelle (VERSION_OPTIONAL)

Table Batik Omika Statut
ElementSupprime — ✅ NOT_STARTED

Notes

  • Client et Personne sont entièrement implémentés (VERIFIED).

  • Lieu/Site est VERIFIED : CRUD complet implémenté et testé unitairement (Create/ReadOne/ReadList/Update + Archive) via SiteService/AdaptiveSiteRepository/BatikSiteRepository/OmikaSiteRepository. BATIK : table Lieu, création Adresse transactionnelle, type résolu via ParametreMetier. OMIKA : table Lieu, LI_CleType, GUID, Adresse Omika. API /sites. DI : ISiteRepository → AdaptiveSiteRepository, ISiteService → SiteService.

  • Document est VERIFIED : Create/Read/List + Archive (suppression sémantique). Update = NOT_APPLICABLE (document immuable après création).

  • Intervention est VERIFIED : CRUD complet implémenté et testé unitairement (Create/ReadOne/ReadList/Update + Archive), intégration réelle CREATE→UPDATE→ARCHIVE→ROLLBACK PASS contre BATIK_TEST/OMIKA_TEST, relations Collaborateur/Personne câblées (UPDATE), IDs relation invalides → DomainValidationException sans écriture partielle.

  • Dossier est VERIFIED : CRUD complet implémenté et testé unitairement (Create/ReadOne/ReadList/Update + Archive), intégration réelle CREATE→UPDATE→ARCHIVE→ROLLBACK PASS contre BATIK_TEST/OMIKA_TEST. NB : dans la base Omika, DO_NumDossier est une rubrique CALCULÉE (erreur HFSQL 28000002) — elle est exclue des INSERT/UPDATE, générée par la base.

  • RendezVous (PlanningRDV) est VERIFIED : CRUD complet implémenté et testé unitairement (Create/ReadOne/ReadList/Update + Cancel + Archive), intégration réelle CREATE→UPDATE→CANCEL→ARCHIVE→ROLLBACK PASS contre BATIK_TEST/OMIKA_TEST. NB : le provider OLE DB ne sait pas marshaler DateOnly vers un Variant — la couche de connexion normalise désormais DateOnly en DateTime avant transmission.

  • Collaborateur est VERIFIED : CRUD complet implémenté et testé unitairement (Create/ReadOne/ReadList/Update + Archive), intégration réelle CREATE→UPDATE→ARCHIVE→ROLLBACK PASS contre BATIK_TEST/OMIKA_TEST. NB : l'archivage logique est réalisé par désactivation (CO_Actif = false), aucun DELETE physique. Les associations d'équipe (Equipe_Collaborateur) sont lues mais non converties en GUID canoniques (aucune table de correspondance) ; Role est NOT_APPLICABLE (géré via les agrégats).

  • Les contrats de service existent pour Document, Intervention, RendezVous, Collaborateur et ReferenceData.

  • REFERENCE_DATA : seul ParametreMetier est exposé en lecture publique (READ_ONLY_VERIFIED). Les autres référentiels sont internes (INTERNAL_ONLY), spécifiques à un schéma (SCHEMA_SPECIFIC) ou non requis (NOT_REQUIRED). Aucun endpoint supplémentaire n'a été créé : conforme à la règle « ne crée pas automatiquement un endpoint pour chaque table ».

  • Les tables de jointure ne doivent pas être exposées en CRUD public.

  • ElementSupprime est absent de OMIKA_TEST actuel : à traiter comme optionnel.