# Update Documentation

Quand l'utilisateur dit **"update documentation"**, tu DOIS mettre a jour le fichier `documentation/documentation_api_logistics.md` en suivant cette procedure.

## Procedure de mise a jour

1. **Lire les sources suivantes** (dans cet ordre) :
   - `app/Services/LogisticsService.php` : toutes les methodes publiques = endpoints disponibles. Les PHPDoc `@param` contiennent les parametres attendus.
   - `config/logistics.php` : configuration de connexion (variables d'environnement, valeurs par defaut).
   - `.env` : valeurs actuelles des variables de configuration.
   - `documentation/documentation_api_logistics.md` : documentation existante a mettre a jour.
   - `memory-bank/techContext.md` : contexte technique (tables, types de colonnes, endpoints connus).

2. **Identifier les changements** :
   - Nouvelles methodes dans `LogisticsService` = nouveaux endpoints a documenter.
   - Methodes supprimees = endpoints a retirer.
   - Parametres modifies (PHPDoc `@param`) = mise a jour des tableaux de parametres.
   - Nouvelles variables d'environnement dans `config/logistics.php` = mise a jour de la section pre-requis.

3. **Mettre a jour le fichier** en preservant strictement cette structure :

```
# Documentation API Logistics (Flex/ESI Gescom)
Derniere mise a jour : <date du jour>

## Table des matieres
## 1. Pre-requis
## 2. Comment effectuer des requetes
## 3. Structure de reponse
## 4. Tables et colonnes disponibles
## 5. Recuperation de donnees
   ### 5.1 Structure de la base de donnees (tables_list, column_list)
   ### 5.2 Articles (art_list, art_getstk)
   ### 5.3 Journaux (jnl_list)
   ### 5.4 Documents (document_list, document_detail, Document_GetStatusList, Document_GetUnitPriceAndVat, Document_GetDueDate, Document_GetAttachListThumbnail)
   ### 5.5 Tiers (third_list, third_GetArtHistory)
   ### 5.6 Divers (getserialnumber, codes_list)
## 6. Envoi de donnees
   ### 6.1 Ajout d'un document (document_add)
   ### 6.2 Modification d'un document (document_mod)
## 7. Endpoints non fonctionnels
## 8. Relations entre entites
## 9. Remarques et points d'attention
## 10. Ressources externes
```

4. **Pour chaque endpoint, documenter** :
   - Description fonctionnelle (a quoi il sert).
   - URL au format `POST /{dossier}/{endpoint}`.
   - Methode service correspondante (`LogisticsService::methode()`).
   - Tableau des parametres : nom, type, obligatoire (Oui/Non), description detaillee.
   - Exemple de requete (body JSON).
   - Exemple de reponse si disponible.

5. **Classer les endpoints** :
   - Section 5 (Recuperation) : endpoints qui lisent des donnees (toutes les methodes sauf `documentAdd` et `documentMod`).
   - Section 6 (Envoi) : endpoints qui creent ou modifient des donnees (`documentAdd`, `documentMod`).
   - Section 7 : endpoints identifies mais non fonctionnels.

6. **Mettre a jour la date** en haut du fichier (`Derniere mise a jour : <date du jour>`).

## Regles

- Ne jamais supprimer d'information existante sans raison (endpoint supprime du service).
- Ne jamais divulguer ou ecrire des informations sensibles (cles d'API, mots de passe, identifiants de connexion, tokens, secrets ou toute autre donnee confidentielle). Utiliser des valeurs fictives ou des placeholders (ex. `votre-cle-api`, `********`, `{API_KEY}`) dans les exemples.
- Ton factuel et concis, sans emojis.
- Toujours inclure les chemins de fichiers exacts dans les references.
- Les exemples de requete doivent utiliser des valeurs realistes mais ne contenant aucune donnee sensible.
- La table des matieres doit refleter les sections du document.
- Les endpoints non fonctionnels restent documentes avec le statut "Non fonctionnel" et la description du probleme.