# Catalogue des WebServices EDNOTIF Inventaire des opérations exposées par les WSDL embarqués dans `resources/ednotif-ws/`, avec le statut d'implémentation et une recommandation de priorisation. ## Légende statut - **Implémenté** — opération couverte par le bundle - **À faire** — opération pertinente non encore implémentée - **Optionnel** — opération hors périmètre probable, à confirmer selon le consommateur --- ## 1. wsIpBNotif — Notifications IPG Bovin WS métier principal : déclarations réglementaires d'un cheptel bovin auprès de l'IPG. ### Lecture | Opération | Statut | Description probable | |---|---|---| | `IpBGetDossierAnimal` | Implémenté | Dossier complet d'un bovin (identifications, mouvements, parents…) | | `IpBGetInventaire` | À faire | Inventaire des animaux présents sur l'exploitation | | `IpBGetRetourDossiers` | À faire | Retours de traitement des notifications envoyées | | `IpBGetSortiesPresumees` | À faire | Animaux sortis selon l'IPG mais non déclarés par l'éleveur | ### Écriture | Opération | Statut | Description probable | |---|---|---| | `IpBCreateEntree` | À faire | Déclaration d'entrée d'un bovin sur l'exploitation | | `IpBCreateSortie` | À faire | Déclaration de sortie (vente, mort, abattage…) | | `IpBCreateNaissance` | À faire | Déclaration de naissance | | `IpBCreateMortNe` | À faire | Déclaration de mort-né | | `IpBCreateAnimalEchange` | À faire | Échange intra-UE | | `IpBCreateAnimalImporte` | À faire | Import pays tiers | | `IpBCreateAvisAnimalImporte` | À faire | Avis d'import | | `IpBCreateRebouclage` | À faire | Rebouclage / remplacement de boucle | | `IpBCreateCommandeBoucles` | À faire | Commande de boucles | | `IpBCreateInsemination` | À faire | Déclaration d'insémination | --- ## 2. wsDmB\* — Déclarations de Mouvement Bovin Famille orientée gestion des mouvements / transporteurs. ### wsDmBConsultation - `DmBConsultationGetListeDonneesIT` — consultation de données (IT = identifiants traces ?) - `DmBConsultationGetListeStatutDeplacement` — statuts de déplacement ### wsDmBGestion - `DmBGestionCreateDroitAccesListeAnimalActeur` — gestion droits d'accès - `DmBGestionCreateListeICA` — création listes ICA (information chaîne alimentaire) ### wsDmBListe - `DmBListeCreateListeBovins` / `DmBListeGetListeBovins` — listes de bovins (lots) ### wsDmBTransport - `DmBTransportCreateChargement` — chargement camion - `DmBTransportCreateDechargement` — déchargement camion --- ## 3. wsMdBEdel — Maîtrise des Données Bovin (Edel) Consultation en lecture seule : génétique, lactation, IA, races. | Opération | Rôle | |---|---| | `MdBGetDonneesGenetiquesAnimales` | Données génétiques d'animaux | | `MdBGetDonneesMalesPublics` | Catalogue mâles reproducteurs publics | | `MdBGetDonneesOrganismeHabilite` | Référentiel organismes habilités | | `MdBGetDonneesOrganismeTiers` | Référentiel organismes tiers | | `ClBGetDonneesCL` | Contrôle laitier | | `CpBGetDonneesCPB` | Contrôle de performances bouchères | | `IaBGetDonneesIA` | Données d'insémination | | `OsBGetDonneesRAC` | Données race (RAC = race certifiée ?) | | `TkBGetDonneesTE` | Transfert embryonnaire | | `VaBGetDonneesCPV` | Contrôle performances veaux (?) | --- ## 4. wsMdCEdel — Maîtrise des Données Caprin Équivalent caprin : CRUD + reproduction + lactation. 15 opérations (`MdCCreate*` pour l'écriture, `MdCGet*` avec variantes `MAJ` pour les deltas). | Groupe | Opérations | |---|---| | Caprin | `MdCCreateCaprin`, `MdCGetDonneesCaprin`, `MdCGetDonneesCaprinMAJ` | | Reproduction | `MdCCreateSaillie`, `MdCCreateFinGestation`, `MdCGetFinGestation[/MAJ]`, `MdCGetEvenementReproduction[/MAJ]` | | Mouvement | `MdCCreateMouvement` | | Contrôle laitier | `MdCGetCLDonneesBrutes[/MAJ]`, `MdCGetCLDonneesElaborees[/MAJ]` | | Contrats | `MdCGetContratsExploitation` | --- ## 5. wsIpEdel — Identification Pérenne Edel - `IpGetDonneesExploitation` — données descriptives de l'exploitation --- ## 6. wsMrAde — Échanges ICAR Conforme aux standards ICAR (flux laitiers internationaux). - `GetHerdList` - `UpdateAnimal` - `UpdateDevice` - `UpdateLivestockLocation` - `UpdateMilkingResults` --- ## 7. WsAnnuaire — Annuaire Guichet Métadonnées techniques du guichet (pas du métier). - `tkGetServices` — liste des WS disponibles - `tkGetVersionsService` — versions d'un WS - `tkGetOperationsServiceVersion` — opérations d'une version - `tkGetUrl` — URL d'un service --- ## Recommandation de priorisation Proposition d'ordre, à valider selon le périmètre réel du consommateur. ### Phase 1 — Compléter le bovin (priorité haute) Continuer sur **wsIpBNotif**, en commençant par la **lecture** : 1. `IpBGetInventaire` — donne immédiatement la liste du cheptel, utile pour toute UI 2. `IpBGetRetourDossiers` — indispensable pour savoir si les notifs passent côté IPG 3. `IpBGetSortiesPresumees` — flux de rapprochement éleveur ↔ IPG **Raison** : le dossier animal seul est peu utile sans l'inventaire qui permet de savoir *pour quels animaux* appeler `getAnimalFile`. Et sans `RetourDossiers`, toute écriture future est aveugle. ### Phase 2 — Écriture bovin (notifications obligatoires) Implémenter les déclarations **dans l'ordre des cycles de vie d'un animal** : 4. `IpBCreateNaissance` 5. `IpBCreateEntree` / `IpBCreateSortie` 6. `IpBCreateMortNe` 7. `IpBCreateRebouclage` / `IpBCreateCommandeBoucles` 8. `IpBCreateAnimalEchange` / `IpBCreateAnimalImporte` / `IpBCreateAvisAnimalImporte` (si imports/échanges dans le périmètre) 9. `IpBCreateInsemination` (si non couvert par un autre outil) ### Phase 3 — Mouvements / transport Si le consommateur gère du transport ou des lots : 10. `wsDmBListe` (lots bovins) 11. `wsDmBTransport` (chargement/déchargement) 12. `wsDmBConsultation` et `wsDmBGestion` selon besoin ### Phase 4 — Référentiels génétiques (optionnel) Si le consommateur fait de la sélection / génétique : 13. `wsMdBEdel` — lectures ponctuelles, ne justifient une implémentation que s'il y a un usage métier concret ### Phase 5 — Caprin / ICAR (optionnel) À activer uniquement si multi-espèces ou conformité ICAR requise. ### Hors priorité - **wsIpEdel** : 1 op, à implémenter *en passant* si besoin ponctuel - **WsAnnuaire** : utile pour du diagnostic / supervision, pas pour le métier --- ## Découpage structurel proposé Pour garder un code cohérent, reproduire le pattern existant (`src/Bovin/`) par domaine : ``` src/ ├── Auth/ (existant) ├── Bovin/ (IpBNotif + IpEdel exploitation) ├── Mouvement/ (DmB*) ├── Genetique/ (MdBEdel, optionnel) ├── Caprin/ (MdCEdel, optionnel) ├── Icar/ (MrAde, optionnel) ├── Annuaire/ (WsAnnuaire, optionnel) └── Shared/ (existant) ``` Chaque domaine expose une `*ApiInterface` publique + une implémentation `readonly`, avec ses DTOs et mappers dédiés. Le `TokenProvider` et `SoapClientFactory` restent partagés via `Shared/`.