# Tech Context Derniere mise a jour : 2026-02-20 ## Stack technique | Composant | Version | Role | |-----------|---------|------| | PHP | 8.4 | Langage serveur | | Laravel | 12 | Framework applicatif | | Filament | 5.0 | Panel admin / dashboard | | Livewire | 4 | Composants reactifs | | Flux UI Free | 2.9+ | Composants UI Livewire | | Fortify | 1.30+ | Authentification (existant, non utilise par Filament) | | Pest | 4.4+ | Framework de tests | | MySQL | - | Base de donnees | | Vite | - | Bundler frontend | | Tailwind CSS | 4 | Framework CSS | ## Dependances principales (composer.json) - `filament/filament: ^5.0` - `laravel/framework: ^12.0` - `livewire/livewire: ^4.0` - `livewire/flux: ^2.9.0` - `laravel/fortify: ^1.30` ## Configuration ### Variables d'environnement specifiques ``` LOGISTICS_API_BASE_URL=http://tse-10-test.esiweb.pro LOGISTICS_API_KEY= LOGISTICS_API_FOLDER=esigescom LOGISTICS_API_TIMEOUT=30 LOGISTICS_API_CONNECT_TIMEOUT=10 LOGISTICS_API_RETRY_TIMES=3 LOGISTICS_API_RETRY_SLEEP_MS=500 ``` Fichier de config : `config/logistics.php` | Cle de config | Variable .env | Defaut | Description | |---------------|---------------|--------|-------------| | `logistics.base_url` | `LOGISTICS_API_BASE_URL` | - | URL de base de l'API | | `logistics.api_key` | `LOGISTICS_API_KEY` | - | Cle d'authentification | | `logistics.folder` | `LOGISTICS_API_FOLDER` | - | Dossier dans l'URL | | `logistics.timeout` | `LOGISTICS_API_TIMEOUT` | 30 | Timeout total de la requete (secondes) | | `logistics.connect_timeout` | `LOGISTICS_API_CONNECT_TIMEOUT` | 10 | Timeout de connexion (secondes) | | `logistics.retry.times` | `LOGISTICS_API_RETRY_TIMES` | 3 | Nombre de tentatives en cas d'echec de connexion | | `logistics.retry.sleep_ms` | `LOGISTICS_API_RETRY_SLEEP_MS` | 500 | Delai entre les tentatives (ms) | ### Base de donnees - Connexion : MySQL - Base : `logistics` - Configuration dans `.env` : `DB_CONNECTION=mysql` ## API Logistics ### Connexion - Serveur : TSE-10-TEST (reseau prive, accessible uniquement via Bureau a distance / RDP) - Base URL : `http://tse-10-test.esiweb.pro` - Dossier : `esigescom` (minuscules obligatoires) - Authentification : Header `X-API-KEY` - Methode : POST pour tous les endpoints - Port HTTP : 5186 / Port HTTPS : 7126 ### Structure de reponse ```json { "data": "", "metadata": { "rowcount": 0, "issuccess": true }, "error": "" } ``` ### Endpoints | Endpoint | Description | Parametres principaux | |----------|-------------|-----------------------| | `tables_list` | Liste des tables | - | | `column_list/{table}` | Colonnes d'une table | table (URL) | | `art_list` | Liste d'articles | select, results, search, barcode | | `art_getstk` | Stock d'un article | ARTID | | `jnl_list` | Liste des journaux | select, results, TYPE | | `document_list` | Liste des documents | select, thirdid | | `document_detail` | Detail d'un document | jnl, number | | `document_add` | Ajout d'un document | ThirdId, Date, Artid[], Qty[], Saleprice[], JNL, ... | | `document_mod` | Modification d'un document | number, Thirdid, Artid[], Qty[], Saleprice[], JNL, ... | | `Document_GetStatusList` | Statuts d'un journal | jnl | | `Document_GetUnitPriceAndVat` | Prix et TVA | ARTID, QTY, JNL, THIRDID, DATE | | `Document_GetDueDate` | Echeance | paydelay, date | | `Document_GetAttachListThumbnail` | Miniatures annexes | JNL, NUMBER | | `third_list` | Liste des tiers | select, results, search | | `third_GetArtHistory` | Historique articles tiers | thirdid | | `getserialnumber` | Numero de serie | - | | `codes_list` | Donnees par code | code | ### Tables accessibles art, attach, barcode, category, codes, cust, docdet, dochead, docpay, file, hist, incodes, jnl, pers, price, stk