# Migration du Backoffice vers l'API Laravel Ce document décrit les changements effectués pour migrer le backoffice de Supabase vers l'API Laravel. ## Changements effectués ### 1. Remplacement de Supabase par un client API personnalisé - **Supprimé** : `src/lib/supabaseClient.js` - **Créé** : `src/lib/apiClient.js` - Client API pour communiquer avec l'API Laravel ### 2. Adaptation de l'authentification - **Fichier modifié** : `src/contexts/AuthContext.jsx` - **Changement** : Remplacement de `supabase.functions.invoke('verify-admin-password')` par `api.auth.login()` ### 3. Adaptation du dashboard - **Fichier modifié** : `src/pages/DashboardPage.jsx` - **Changements** : - Remplacement de `supabase.from('orders').select()` par `api.orders.getOrders()` - Remplacement de `supabase.functions.invoke('update-order-status')` par `api.orders.updateStatus()` - Utilisation de `api.orders.getMetrics()` pour les métriques au lieu de récupérer toutes les commandes ### 4. Suppression des dépendances Supabase - **Supprimé** : `@supabase/supabase-js` du `package.json` ## Configuration ### Variables d'environnement Créez un fichier `.env` dans `backoffice/src/` avec : ```env # URL de l'API Laravel # En développement local : http://localhost:8000 # En production : https://api.ditesleenchanson.fr VITE_API_URL=http://localhost:8000 ``` ### Installation 1. Installer les dépendances (sans Supabase) : ```bash cd backoffice/src npm install ``` 2. Configurer le fichier `.env` avec l'URL de l'API 3. Démarrer le serveur de développement : ```bash npm run dev ``` ## API Endpoints utilisés - `POST /auth/admin/login` - Authentification admin - `GET /orders` - Liste des commandes avec pagination - `GET /orders/metrics` - Métriques des commandes - `POST /orders/{orderId}/status` - Mise à jour du statut d'une commande ## Authentification Le token d'authentification est stocké dans `localStorage` sous la clé `admin_auth_token` et est envoyé dans le header `Authorization: Bearer {token}` pour les requêtes protégées. ## Notes - Le format des réponses de l'API a été adapté pour correspondre au format Supabase utilisé précédemment - Les métriques incluent maintenant les revenus par statut (pendingRevenue, processingRevenue, completedRevenue) - La pagination fonctionne de la même manière qu'avec Supabase