Corrections apportées:
1. **Utilisation correcte des services exportés**
- Remplacement de apiService.X par les services nommés (chantierService, clientService, etc.)
- Alignement avec l'architecture d'export du fichier services/api.ts
2. **Correction des types d'interface**
- Utilisation des types officiels depuis @/types/btp
- Chantier: suppression des propriétés custom, utilisation du type standard
- Client: ajout des imports Chantier et Facture
- Materiel: adaptation aux propriétés réelles (numeroSerie au lieu de reference)
- PlanningEvent: remplacement de TacheChantier par PlanningEvent
3. **Correction des propriétés obsolètes**
- Chantier: dateFin → dateFinPrevue, budget → montantPrevu, responsable → typeChantier
- Client: typeClient → entreprise, suppression de chantiers/factures inexistants
- Materiel: reference → numeroSerie, prixAchat → valeurAchat
- PlanningEvent: nom → titre, suppression de progression
4. **Correction des enums**
- StatutFacture: EN_ATTENTE → ENVOYEE/BROUILLON/PARTIELLEMENT_PAYEE
- PrioritePlanningEvent: MOYENNE → CRITIQUE/HAUTE/NORMALE/BASSE
5. **Fix async/await pour cookies()**
- Ajout de await pour cookies() dans les routes API (Next.js 15 requirement)
- app/api/auth/logout/route.ts
- app/api/auth/token/route.ts
- app/api/auth/userinfo/route.ts
6. **Fix useSearchParams() Suspense**
- Enveloppement de useSearchParams() dans un Suspense boundary
- Création d'un composant LoginContent séparé
- Ajout d'un fallback avec spinner
Résultat:
✅ Build production réussi: 126 pages générées
✅ Compilation TypeScript sans erreurs
✅ Linting validé
✅ Middleware 34.4 kB
✅ First Load JS shared: 651 kB
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Mise à jour de services/api.ts pour supporter l'authentification par cookies HttpOnly
* Ajout de withCredentials: true dans l'intercepteur de requêtes
* Modification de l'intercepteur de réponse pour gérer les 401 sans localStorage
* Utilisation de sessionStorage pour returnUrl au lieu de localStorage
* Suppression des tentatives de nettoyage de tokens localStorage (gérés par cookies)
- Connexion des pages de détails à apiService au lieu de fetch direct:
* app/(main)/chantiers/[id]/page.tsx → apiService.chantiers.getById()
* app/(main)/chantiers/[id]/budget/page.tsx → apiService.budgets.getByChantier()
* app/(main)/clients/[id]/page.tsx → apiService.clients.getById()
* app/(main)/materiels/[id]/page.tsx → apiService.materiels.getById()
Avantages:
- Gestion automatique de l'authentification via cookies HttpOnly (plus sécurisé)
- Redirection automatique vers /api/auth/login en cas de 401
- Code plus propre et maintenable
- Gestion d'erreurs cohérente dans toute l'application
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Correction des erreurs TypeScript dans userService.ts et workflowTester.ts
- Ajout des propriétés manquantes aux objets User mockés
- Conversion des dates de string vers objets Date
- Correction des appels asynchrones et des types incompatibles
- Ajout de dynamic rendering pour résoudre les erreurs useSearchParams
- Enveloppement de useSearchParams dans Suspense boundary
- Configuration de force-dynamic au niveau du layout principal
Build réussi: 126 pages générées avec succès
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>