90 lines
3.4 KiB
Markdown
90 lines
3.4 KiB
Markdown
# Backend — Statut final
|
|
|
|
État de fermeture du backend métier Omika, prêt pour la future application mobile.
|
|
|
|
## Schéma Batik / Omika
|
|
|
|
- Détection de schéma réelle au démarrage (`DatabaseSchemaDetector`), basée sur la structure (colonnes canaris), jamais sur le nom de la base.
|
|
- Routage runtime : `ApplicationRuntimeContext.Current.DetectedVersion` → `AdaptiveRepository` → implémentation `Batik*` ou `Omika*`.
|
|
- Aucune logique basée sur le nom de la base.
|
|
|
|
## HFSQL
|
|
|
|
- Accès OLE DB : **VERIFIED** (provider `PCSOFT.HFSQL`).
|
|
- Source des mots de passe : **EXPLICIT_LOCAL_CONFIG** (`config/hfsql-test.local.json`).
|
|
- Dérivation de mot de passe utilisée : **NO** (mots de passe fournis explicitement).
|
|
- `ProtectionPlusSecret` utilisé pour la connexion : **NO**.
|
|
|
|
## Business aggregates (8 VERIFIED)
|
|
|
|
| Agrégat | Statut |
|
|
|---------|--------|
|
|
| Client | VERIFIED |
|
|
| Personne | VERIFIED |
|
|
| Lieu/Site | VERIFIED |
|
|
| Document | VERIFIED |
|
|
| Intervention | VERIFIED |
|
|
| Dossier | VERIFIED |
|
|
| PlanningRDV | VERIFIED |
|
|
| Collaborateur | VERIFIED |
|
|
|
|
0 PARTIAL, 0 NOT_STARTED.
|
|
|
|
## Reference data
|
|
|
|
- **PublicRead** : ParametreMetier (`GET /reference-data/{key}`, READ_ONLY_VERIFIED).
|
|
- **InternalOnly** : Societe, Equipe, ParametreMetierEntete, EtatIntervention.
|
|
- **SchemaSpecific** : Role, Etats (Omika uniquement).
|
|
- **NotRequired** : ModeleRapport.
|
|
|
|
## API
|
|
|
|
Groupes d'endpoints enregistrés dans `Program.cs` :
|
|
|
|
- Health
|
|
- Client
|
|
- Contact (Personne)
|
|
- ReferenceData
|
|
- Document
|
|
- Site (Lieu)
|
|
- Intervention
|
|
- Dossier
|
|
- RendezVous (PlanningRDV)
|
|
- Collaborateur
|
|
|
|
Aucun endpoint préventif supplémentaire. Conforme à la règle « ne crée pas automatiquement un endpoint pour chaque table ».
|
|
|
|
## Adaptive repositories
|
|
|
|
Tous les agrégats publics disposent d'un repository adaptatif (`Adaptive*Repository`) qui route selon `DetectedVersion` :
|
|
|
|
- Client, Contact, Site, Document, Intervention, Dossier, RendezVous, Collaborateur, ReferenceData.
|
|
|
|
## Tests
|
|
|
|
- **1144 PASS / 0 FAIL / 0 SKIP**.
|
|
- Intégrations réelles OLE DB (BATIK_TEST / OMIKA_TEST) pour les parcours principaux : Client (Create), Intervention (lifecycle), Dossier (lifecycle), PlanningRDV (lifecycle), Collaborateur (lifecycle) — avec rollback atomique.
|
|
- Les tests d'intégration s'ignorent proprement si le serveur HFSQL est injoignable (détection `E_FAIL`/`0x80004005`).
|
|
|
|
## Limitations connues
|
|
|
|
- **ElementSupprime** : absent physiquement de OMIKA_TEST actuel ; traité comme optionnel (VERSION_OPTIONAL).
|
|
- **Equipe → Collaborateur** : relation INTERNAL_ONLY, pas d'identité canonique publique (aucune table de correspondance).
|
|
- **Role** : Omika-specific, non exposé publiquement.
|
|
- **ModeleRapport** : NOT_REQUIRED.
|
|
- **Document.Update** : NOT_APPLICABLE (document immuable après création).
|
|
- **Intervention PartialFailureRollback** : non couvert spécifiquement, mais transaction/lifecycle validés (rollback externe prouvé).
|
|
|
|
## Éléments volontairement non exposés
|
|
|
|
- Tables de jointure (JOIN_TABLE) : pas de CRUD public.
|
|
- Configuration système (Utilisateur, ParametreSysteme) : pas d'endpoint public.
|
|
- Référentiels internes (Societe, Equipe, ParametreMetierEntete, EtatIntervention, Role, Etats, ModeleRapport) : pas d'endpoint public.
|
|
- IDs publics opaques (string) : aucun PK HFSQL brut exposé, aucun GUID fabriqué pour masquer l'absence d'identité canonique.
|
|
|
|
## Statut final
|
|
|
|
- **BackendBusinessLayer** : READY.
|
|
- **BackendForMobileDevelopment** : READY.
|
|
- **Blockers** : NONE.
|