Briefing Session S40 - Anim'Gest
PetSuite Documentation
 Briefing Session S40 - Anim'Gest
Briefing S40 (dernier)
🔑 Chemins essentiels
App localehttp://localhost/app/
GitHub docshttps://nicolashermilly.github.io/Anim'Gest-docs/
Deploy…\anim_gest_frontend_nextjs\deploy
$apiFile…\api\src\custom-routes.ts
BDD MariaDB192.168.1.62:3307 / @lgorithme / anim_gest
Backup S39C:\Backup\anim_gest\20260322_fin_s39.sql ✅
Docs repo localC:\Users\AdminPC\AppData\Local\Temp\Anim'Gest-docs-s33
⚙️ Règles critiques (rappel)
cd "D:\...\anim_gest_frontend_nextjs"
.\COPIER_TOUTES_PAGES_v2.ps1
cd deploy
docker compose build api --no-cache && docker compose up -d api
# Rebuild tout
docker compose build api frontend --no-cache && docker compose up -d api frontend && docker compose restart nginx
# Sauvegarde début S40
& "C:\ProgramData\OptimBTP\MariaDB\bin\mysqldump.exe" -h 192.168.1.62 -P 3307 -u "@lgorithme" --password="@lgoritHme+2025+977_73300" --single-transaction --skip-lock-tables anim_gest > C:\Backup\anim_gest\20260322_debut_s40.sql
  • Toujours cd deploy avant docker compose
  • TOUTES les éditions PDF = Modal/Popup - jamais de navigation vers nouvelle page
  • Commentaires BDD FK : COMMENT 'Relation NomTable - description'
  • EC (Étude Comportementale) - plus jamais EDC
🏆 État fin S39
70
Pages UI
110k
Chars API
50
Docs GitHub
10
Chiots démo
51
Factures RFE
6
Réservations

✅ Livraisons S39

  • Seeds élevage complets : 10 chiots, 68 poids, 14 vaccins, 2 gestations, 6 réservations, 2 saillies
  • Vues SQL corrigées : v_portees_suivi, v_gestations_en_cours
  • Seeds RFE : 51 factures avec cycle complet (ACCEPTEE/TRANSMISE/DEPOSEE/EN_LITIGE/REFUSEE)
  • Config Pennylane (param_pdp actif, SIREN, URL API)
  • Commentaires BDD : ALTER TABLE sur 10 tables (animal, tiers, contact, facture, seance, elevage_*, signature_demande)
  • Page Interfaces API avec section URLs paramétrables (LOF, LOOF, I-CAD, SCC, Google Maps...)
  • Remplacement EDC → EC global (9 fichiers, 0 résiduel)
  • Documentation GitHub Pages : 50 docs, changelogs S30/S34/S35/S37/S38, briefings S37/S38/S39
  • Index docs mis à jour : 50 docs, Sprint S39

⚠️ Non terminé en S39

  • Événements RFE (facture_rfe_evenement) - colonnes à confirmer
  • Litiges (facture_litige) - colonnes à confirmer
  • Page /app/parametres/api-keys - version S39 avec URLs paramétrables non déployée
  • Route GET/POST /param-urls - à créer dans custom-routes.ts
  • Fixes body parsing : POST /reglements, POST /achats toujours cassés
🚨 Priorité 1 - Corrections API body parsing
RouteErreurFix
POST /reglements400 - body non luRemplacer req.body par req.on('data')
POST /achats500 - undefined bindNull-safety sur champs optionnels
POST /seances500 - NestJS conflitPointer frontend sur /seances/custom
POST /communaute/moderer/:id500 - undefined bindNull-safety + body parsing

Toutes les routes POST élevage ont le même bug body parsing - les corriger en même temps.

🚨 Priorité 2 - Finaliser seeds RFE

Exécuter DESCRIBE facture_rfe_evenement; DESCRIBE facture_litige; dans HeidiSQL puis insérer :

  • Événements RFE sur factures 1-5 : cycle complet DEPOSEE → TRANSMISE → ACCEPTEE
  • Événements litiges sur 3 factures EN_LITIGE
  • 3 litiges (MONTANT, DOUBLON, MONTANT)
🚨 Priorité 3 - Déployer page Interfaces API S39
$root = "D:\...\anim_gest_frontend_nextjs"
Copy-Item "C:\Users\AdminPC\Downloads\api-keys-page-s39.tsx" "$root\src\app\app\parametres\api-keys\page.tsx" -Force

Puis créer la route GET/POST /param-urls dans custom-routes.ts - table param_url à créer (PRM_KEY, PRM_VALUE).

🚨 Priorité 4 - DocumentActions sur tous les écrans

Intégrer <DocumentActions /> dans les PageHeader de :

  • /app/factures/[id] + onglets RFE + litige
  • /app/achats/[id] + onglets Règlements / Avoirs / Retours / SEPA
  • /app/devis/[id] - bouton signature déjà présent, uniformiser
🚨 Priorité 5 - Refactoring custom-routes.ts

Le fichier fait ~110 000 chars. Découper en modules :

FichierContenu
routes-elevage.tsPortées, naissances, saillies, gestations, carnets
routes-signatures.tsYousign, webhook HMAC
routes-commercial.tsDevis, factures, avoirs, règlements, achats
routes-parametres.tsparam_yousign, param_pdp, param_smtp, param_urls
🚨 Priorité 6 - Composants S40
  • StatusBadge - badge statut coloré (BROUILLON, ENVOYE, SIGNE, ACCEPTEE…)
  • TabBar - barre d'onglets uniforme (remplacer les implémentations ad-hoc)
  • ContactSelector - extraire de EmailModal + SignatureModal
📊 État routes API (fin S39)
RouteMéthodeStatut
/elevage/porteesGET✅ 200 - 2 portées
/elevage/gestationsGET✅ 200 - 2 gestations
/elevage/reservationsGET✅ 200 - 6 réservations
/elevage/carnet/:nai_idGET✅ 200 - HTML imprimable
/signaturesGET✅ 200 S38
/devis/:id/signatureGET/POST✅ 200 S38
/factures/:id/rfeGET/POST✅ 200
/param-pdpGET/POST✅ 200 - Pennylane actif
/reglementsPOST❌ 400 body parsing
/achatsPOST❌ 500 undefined params
/seancesPOST⚠️ 500 NestJS conflit
/communaute/moderer/:idPOST⚠️ 500 undefined
/param-urlsGET/POST❌ À créer S40
/vocal/**❌ Non implémenté
🗺️ Roadmap S40 → S42
SprintObjectif
S40Corrections POST body parsing, page api-keys + /param-urls, seeds RFE complets, DocumentActions tous écrans, composants StatusBadge/TabBar
S41Split custom-routes.ts, assistant vocal MCP, adaptation écrans par métier
S42Vidéos démo par métier, préparation commerciale NoSage's Editor, onboarding guidé