# Active Context Dernière mise à jour : 2026-02-20 ## Travail en cours Aucun travail en cours. ## Décisions récentes - **Convention d'écriture avec accents** (2026-02-20) : Tous les contenus rédigés en français (documentation, memory bank, règles Cursor) doivent utiliser les accents appropriés. La documentation API et le memory bank ont été entièrement réécrits avec les accents. - **Page Documentation ajoutée** (2026-02-20) : Nouvelle page Filament `Documentation` qui affiche le fichier markdown `documentation/documentation_api_logistics.md` converti en HTML via `Str::markdown()`. Actions d'en-tête : télécharger en PDF et ouvrir dans un nouvel onglet. - **Styles prose personnalisés** (2026-02-20) : Le thème CSS Filament (`theme.css`) a été enrichi avec des styles `.documentation-prose` dédiés au rendu du markdown en dark mode : hiérarchie de titres avec bordures, tableaux avec bordures et en-têtes stylisés, blocs de code avec fond sombre, code inline coloré, liens bleus, listes à marqueurs, séparateurs visibles. - **Plugin @tailwindcss/typography** (2026-02-20) : Ajout du plugin via `@plugin "@tailwindcss/typography"` dans le thème Filament pour activer les classes `prose`. - **Export PDF de la documentation** (2026-02-20) : Route `documentation.download-pdf` dans `routes/web.php` utilisant `barryvdh/laravel-dompdf` pour générer un PDF téléchargeable de la documentation. - **Règle update-documentation** (2026-02-20) : Nouvelle règle Cursor `.cursor/rules/update-documentation.mdc` définissant la procédure de mise à jour de la documentation quand l'utilisateur dit "update documentation". - **Filament v5 sans authentification** : Le `AdminPanelProvider` a été configuré sans `->login()` et sans `authMiddleware` pour permettre un accès libre au dashboard. - **Pages personnalisées plutôt que Resources** : L'application interroge une API externe, il n'y a pas de modèles Eloquent à gérer en CRUD. - **MySQL au lieu de SQLite** : Choix de l'utilisateur pour la base de données. - **LogisticsService** : Toutes les interactions avec l'API sont centralisées dans un seul service. - **Heroicon enum** : Filament v5 impose l'utilisation de `BackedEnum` pour `$navigationIcon` au lieu de strings. - **$view non-static** : Filament v5 a changé `$view` de static à instance property. - **Timeout et retry configurables** : Les paramètres sont dans `config/logistics.php` et pilotés par `.env`. - **LogisticsApiException** : Exception dédiée créée pour distinguer les erreurs de connexion des erreurs de requête génériques. - **Logging des échecs** : Les requêtes échouées sont aussi enregistrées dans `api_request_logs` avec `response_status = 0`. - **Système de design unifié** (2026-02-20) : Création de 10 composants Blade réutilisables dans `resources/views/components/logistics/` et d'une convention documentée dans `.cursor/rules/design-system.mdc`. - **Thème Filament personnalisé** (2026-02-20) : Création de `resources/css/filament/admin/theme.css` enregistré dans `AdminPanelProvider` via `->viteTheme()`. - **TablesExplorer amélioré** (2026-02-20) : Remplacement de `wire:then` (invalide) par une méthode `selectTable()`. Ajout de la déduplication des colonnes, d'un filtre de tables, de la propriété computed `filteredTables`, des labels de type (`getDataTypeLabel`), et du stockage des métadonnées. - **Connectivité API résolue** (2026-02-20) : Le serveur API est accessible via `http://tse-10-test.esi.local` (réseau interne). Le timeout a été augmenté à 300s dans `.env`. ## Changements récents (2026-02-20, session documentation) - Page Filament `Documentation` créée (`app/Filament/Pages/Documentation.php`). - Vue Blade `resources/views/filament/pages/documentation.blade.php` créée. - Documentation markdown réécrite intégralement avec accents français. - Styles CSS `.documentation-prose` ajoutés dans `theme.css` (titres, tableaux, code, liens, listes). - Plugin `@tailwindcss/typography` activé dans le thème Filament. - Route PDF (`documentation.download-pdf`) ajoutée dans `routes/web.php`. - Template PDF (`resources/views/pdf/documentation.blade.php`) créé. - 5 tests Pest créés pour la page Documentation (`tests/Feature/DocumentationTest.php`). - Règle Cursor `update-documentation.mdc` créée. - Memory bank entièrement réécrit avec accents français. - Total : 61 tests passent (165 assertions). ## Historique ### 2026-02-20 (session design) - 10 composants Blade créés dans `resources/views/components/logistics/`. - Convention de design documentée dans `.cursor/rules/design-system.mdc`. - 5 pages Filament refactorisées pour utiliser les composants du système de design. - `TablesExplorer.php` amélioré : `selectTable()`, déduplication, filtre, computed property, métadonnées, labels de types. - Thème Filament personnalisé créé (`resources/css/filament/admin/theme.css`). - `AdminPanelProvider.php` mis à jour avec `->viteTheme()`. - 6 tests Pest créés pour `TablesExplorer` (Livewire). ### 2026-02-20 (session robustesse) - `LogisticsService` mis à jour : timeout, connectTimeout, retry, gestion d'erreur avec `LogisticsApiException`. - `LogisticsApiException` créée dans `app/Exceptions/`. - `config/logistics.php` étendu avec timeout et retry. - `.env` et `.env.example` complétés avec les nouvelles variables. - Les 5 pages Filament mises à jour pour attraper `LogisticsApiException`. - Tests passés de 8 à 12. ### 2026-02-19 - Installation de Filament v5.0.0 (31 packages ajoutés). - 5 pages Filament créées : TablesExplorer, Articles, Documents, Journaux, Tiers. - `LogisticsService` créé avec 17 endpoints. - Migration `api_request_logs` créée. - 8 tests Pest écrits et validés. ## Prochaines étapes - Tester toutes les pages avec de vraies données API et vérifier le rendu visuel. - Éventuellement : ajouter des pages pour les endpoints d'écriture (document_add, document_mod). - Éventuellement : ajouter de la pagination ou du tri côté client pour les grands tableaux. - Éventuellement : ajouter une page de consultation des logs API.