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