PROMPT MANUEL — MyKollector® v5
=================================
Architecture : Backend PHP/Slim + Frontend statique sur OVH mutualisé Pro
Agent local .exe sur PC fabricant — Coût supplémentaire : 0€

Le document en annexe (07-MyKollectOr-FAB-COMPLETV05.docx) est la documentation
technique complète de la plateforme MyKollector®.

---

MISSION
-------
Génère le manuel complet d'installation et d'utilisation de MyKollector®.
Deux profils :
- L'ADMINISTRATEUR TECHNIQUE : installation et configuration (sections 1 à 5)
- L'UTILISATEUR FINAL : utilisation au quotidien (sections 6 à 14)

Rédigé en français, clair, sans jargon inutile.

---

FORMAT DE LIVRAISON
-------------------
Fichier HTML autonome : manuel.html
- Design sobre, imprimable (CSS print inclus)
- Table des matières cliquable
- Mode sombre optionnel (toggle)
- Couleurs : --gold #c8a84b, --bg #070f18, --text #f0ead8
- Police Montserrat (Google Fonts CDN)
- Commandes dans blocs <code> avec bouton "Copier"
- Captures remplacées par descriptions encadrées en or

---

STRUCTURE DU MANUEL
--------------------

PARTIE 1 — INSTALLATION BACKEND PHP SUR OVH MUTUALISÉ
-------------------------------------------------------

1. PRÉREQUIS
   1.1 Ce que tu as déjà
       - Hébergement OVH Pro mutualisé (Apache + PHP 8.1 + MySQL)
       - Accès FTP/SFTP et espace client OVH
       - Nom de domaine avec zone DNS OVH
   1.2 Architecture en termes simples
       Expliquer sans jargon :
       - Le backend (cerveau de l'appli) → OVH Pro mutualisé, en PHP
       - Le frontend (les pages web) → OVH Pro mutualisé, en HTML/JS
       - La boutique PrestaShop → OVH Pro mutualisé
       - L'agent local (génère les fichiers DXF et PDF) → PC de chaque fabricant
       - Tout est sur le même hébergement OVH déjà payé — coût supplémentaire : 0€
   1.3 Sous-domaines à configurer dans la zone DNS OVH
       - chrono.mykollector.com → OVH mutualisé (frontend chrono)
       - fab.mykollector.com    → OVH mutualisé (frontend fabricant)
       - api.mykollector.com    → OVH mutualisé (backend PHP)
       - shop.mykollector.com   → OVH mutualisé (PrestaShop)
       Tous les sous-domaines pointent vers le même hébergement OVH.
       Les configurer depuis : Espace client OVH → Hébergements → Multisite

2. INSTALLATION DU BACKEND PHP
   2.1 Télécharger Composer (gestionnaire de dépendances PHP)
       - Depuis getcomposer.org
       - Ou utiliser le Composer disponible via SSH OVH
   2.2 Déposer les fichiers backend via FTP
       - Se connecter avec FileZilla (paramètres FTP OVH)
       - Déposer le dossier backend/ dans www/api/ (ou sous-dossier dédié)
       - Structure : www/api/public/index.php est le point d'entrée
   2.3 Installer les dépendances via SSH OVH
       Se connecter en SSH :
         ssh login@ssh.cluster0XX.hosting.ovh.net -p 22
       Puis :
         cd www/api
         composer install --no-dev --optimize-autoloader
   2.4 Configurer le fichier .env
       Copier .env.example en .env et remplir :
       - DB_HOST (ex: sql_serveur_ovh)
       - DB_NAME, DB_USER, DB_PASSWORD (depuis espace client OVH → Bases de données)
       - JWT_SECRET (générer une chaîne aléatoire de 64 caractères)
       - ENCRYPTION_KEY (32 caractères pour AES-256 Strava)
       - PRESTASHOP_URL + PRESTASHOP_API_KEY
       - PRESTASHOP_STATUT_GRAVAGE_ID (ID du statut "En cours de gravage" dans PrestaShop)
       - SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_FROM
       - BASE_URL=https://api.mykollector.com
       - CORS_ORIGINS=https://chrono.mykollector.com,https://fab.mykollector.com
   2.5 Initialiser la base de données
       Via SSH :
         php install.php
       Ce script crée toutes les tables (28 au total) et vérifie l'environnement.
   2.6 Vérifier le déploiement
       Ouvrir : https://api.mykollector.com/api/health
       Réponse attendue : { "status": "ok" }

3. INSTALLATION DU FRONTEND SUR OVH MUTUALISÉ
   3.1 Déposer les fichiers via FTP (FileZilla)
       - www/chrono/ → fichiers frontend/chrono/
       - www/fab/    → fichiers frontend/fab/
       - www/assets/ → polices et images
       - www/.htaccess
   3.2 Configurer les sous-domaines dans l'espace client OVH
       Hébergements → Multisite :
       - chrono.mykollector.com → dossier www/chrono/
       - fab.mykollector.com    → dossier www/fab/
   3.3 Activer HTTPS (SSL Let's Encrypt gratuit OVH)
       Espace client OVH → Hébergement → Certificats SSL → Commander
       Sélectionner tous les sous-domaines.
   3.4 Vérifier l'accès depuis un navigateur

4. INSTALLATION DE PRESTASHOP
   4.1 Installer PrestaShop via le 1-clic OVH sur shop.mykollector.com
   4.2 Créer le statut de commande custom "En cours de gravage"
       Administration PrestaShop → Commandes → Statuts → Ajouter
       Nommer exactement : "En cours de gravage"
       Conserver l'identifiant (ID) de ce statut → le renseigner dans .env :
       PRESTASHOP_STATUT_GRAVAGE_ID=XX
   4.3 Générer une clé API WebService PrestaShop
       Administration PrestaShop → Paramètres avancés → Webservice
       Permissions requises : customers (lecture), orders (lecture + écriture)
   4.4 Configurer les groupes clients pour le B2B (NOUVEAU)
       Créer un groupe client "Professionnels" dans PrestaShop (Clients → Groupes)
       Les mairies, boutiques et associations doivent appartenir à ce groupe.
       MyKollector identifie les commandes B2B à l'import via ce groupe client
       (ou via un champ "b2b_client_type" renseigné sur la fiche client PrestaShop).
       Ces commandes arrivent directement dans l'espace fabricant concerné,
       sans validation sportif requise.
   4.5 Renseigner la clé dans .env (PRESTASHOP_API_KEY)
   4.6 Tester la connexion depuis la console admin MyKollector

PARTIE 2 — PREMIER DÉMARRAGE
------------------------------

5. SETUP INITIAL (UNE SEULE FOIS)
   5.1 Accéder à fab.mykollector.com/admin
   5.2 L'écran de setup s'affiche automatiquement
   5.3 Créer le compte super_admin
       ⚠️ IRRÉVERSIBLE — une fois créé, l'écran de setup est bloqué définitivement
   5.4 Se connecter et configurer les modules
   5.5 Checklist post-installation :
       □ /api/health répond "ok"
       □ Login super_admin fonctionne
       □ Connexion PrestaShop testée
       □ SMTP testé (envoyer un email de test)
       □ Sous-domaines HTTPS actifs
       □ Premier parcours créé avec coordonnées GPS et distance d'approche

PARTIE 3 — INSTALLATION DE L'AGENT LOCAL
------------------------------------------

6. QU'EST-CE QUE L'AGENT LOCAL ?
   En termes simples :
   "L'agent est un petit programme installé sur le PC du fabricant.
   Il tourne discrètement en arrière-plan (comme une imprimante réseau).
   Dès qu'un lot de gravure est prêt, il génère automatiquement le fichier DXF
   dans un dossier sur votre PC. Vous n'avez rien à faire : le fichier apparaît,
   vous l'envoyez à votre machine de gravure."

7. INSTALLATION DE L'AGENT (guide non-technicien)
   7.1 Prérequis
       - Windows 10 ou 11
       - Connexion internet
       - Droits administrateur
   7.2 Installer le runtime GTK pour Windows (requis pour les étiquettes PDF)
       Fournir le lien exact et les étapes d'installation
   7.3 Télécharger MyKollectorAgent.exe
       Depuis fab.mykollector.com/admin → section "Agent local"
   7.4 Double-cliquer sur MyKollectorAgent.exe pour installer
   7.5 Configurer au premier démarrage
       - Email et mot de passe de l'opérateur
       - Dossier DXF : C:\MyKollector\DXF (ou choisir un autre)
       - Dossier Étiquettes : C:\MyKollector\Etiquettes
   7.6 Vérifier : icône verte dans la barre des tâches = connecté ✅
   7.7 L'agent démarre automatiquement avec Windows

8. UTILISATION DE L'AGENT AU QUOTIDIEN
   8.1 L'agent tourne en silence — rien à faire
   8.2 Les fichiers DXF apparaissent dans C:\MyKollector\DXF\
   8.3 Les étiquettes PDF dans C:\MyKollector\Etiquettes\
   8.4 Menu icône barre des tâches :
       - "Synchroniser maintenant" → vérification immédiate
       - "Ouvrir le dossier DXF"
       - "Voir les logs" → en cas de problème
   8.5 ⚠️ Responsabilité des fichiers
       Les fichiers DXF et PDF sont uniquement sur ce PC.
       Sauvegardez régulièrement C:\MyKollector\.
       En cas de perte, les fichiers peuvent être régénérés depuis l'interface.

PARTIE 4 — GUIDE D'UTILISATION
--------------------------------

9. RÔLES ET QUI FAIT QUOI
   Tableau des 5 rôles :
   - Super admin : accès total, configuration système, parcours, destinations d'export
   - Admin_fab : gestion de son atelier et opérateurs
   - Opérateur_fab : gravure, expédition, SAV
   - Sportif : dashboard, chrono, commandes, validation gravure
   - Admin_chrono : gestion des chronos officiels

10. GUIDE SUPER ADMIN — GESTION DES PARCOURS (NOUVEAU)
    10.1 Créer un parcours
         Aller dans Console admin → Parcours → Nouveau parcours
         Remplir les informations générales, les coordonnées GPS et notamment :
         - Latitude/longitude du sommet (détection Strava)
         - Latitude/longitude du point de départ (= début de segment, = zone d'approche QR)
         - Rayon de détection Strava (km) : zone autour du sommet pour la détection automatique
         - Distance d'approche QR (mètres) :
           "Distance en mètres à partir de laquelle le bouton PARTIR s'active
           sur la page QR. Quand le sportif est plus loin que cette distance
           du point de départ, le bouton est grisé avec indication 'À Xm du départ'.
           Dès qu'il entre dans la zone, le bouton devient actif.
           Valeur par défaut : 500m. Adapter selon la configuration du terrain :
           - Col avec départ précis (panneau) → 100 à 200m
           - Zone de départ large (village, parking) → 500 à 1000m
           - Mettre 0 pour désactiver la vérification (bouton toujours actif)"
    10.2 Synchroniser avec PrestaShop
         Bouton "Créer/mettre à jour dans PrestaShop" → crée la fiche produit sur shop.mykollector.com
    10.3 Exporter vers d'autres plateformes (NOUVEAU)
         Bouton "Exporter vers..." → sélectionner les destinations
         Les destinations sont configurées dans Console admin → Destinations d'export
         Exemples d'usage :
         - Envoyer les infos du parcours vers un site événementiel partenaire
         - Déclencher un webhook pour créer l'événement sur une autre plateforme
         - Synchroniser avec un système de billetterie externe

11. GUIDE SUPER ADMIN — DESTINATIONS D'EXPORT (NOUVEAU)
    11.1 Qu'est-ce qu'une destination d'export ?
         "Une destination d'export est une adresse web (URL) vers laquelle MyKollector
         envoie automatiquement les données d'un parcours quand vous cliquez 'Exporter'.
         Cela permet de synchroniser vos parcours avec d'autres plateformes :
         site de club, application événementielle, système de billetterie, etc."
    11.2 Créer une destination
         Console admin → Destinations d'export → Nouvelle destination
         - Nom : ex "Site Trail du Vercors", "Genspark Events"
         - Type : webhook (pour sites externes), interne (log seulement), prestashop, autre
         - URL : adresse web de destination
         - Headers (optionnel) : si la plateforme cible demande un token d'authentification,
           le renseigner ici au format JSON :
           { "Authorization": "Bearer votre-token", "X-API-Key": "votre-cle" }
         - Description : note pour vous rappeler à quoi sert cette destination
    11.3 Tester une destination
         Bouton "Tester" → envoie une requête test avec des données fictives
    11.4 Activer/désactiver une destination
         Bascule "Actif" sur la liste des destinations

12. GUIDE OPÉRATEUR FABRICANT (fab.mykollector.com)
    12.1 Flux de gravure complet — étape par étape
         1. Les commandes apparaissent dans l'onglet Gravure
            Les commandes B2B (mairies, boutiques) sont identifiées par un badge "B2B" doré.
            Ces commandes n'ont pas de chrono associé — elles sont prêtes à graver directement.
         2. Sélectionner les commandes → "Créer un lot"
         3. Deux options d'export disponibles immédiatement :
            - 📄 "Exporter CSV" → télécharge un fichier CSV dans le navigateur
              (numero_commande, nom, prenom, chrono, date, parcours)
              Aucune installation requise — envoyer ce CSV à votre graveur
            - ⚙️ "Générer DXF" → l'agent local génère le fichier DXF (sous 30 secondes)
              Nécessite l'agent local installé sur ce PC
              Le fichier apparaît dans C:\MyKollector\DXF\
         4. Cliquer "Prendre en charge" → popup de confirmation
         5. Confirmer → statut "En cours de gravage" (badge orange)
            PrestaShop est mis à jour automatiquement
         6. Graver, puis "Marquer comme gravé" (badge vert)
    12.2 Onglet Expédition
         - Commandes "Gravé" apparaissent ici (y compris B2B)
         - Générer l'étiquette (agent local)
         - Saisir le numéro de suivi → "Marquer comme expédié"
    12.3 SAV Express, Défauts, Chat interne

13. GUIDE SPORTIF (chrono.mykollector.com)
    13.1 Créer son compte (via PrestaShop)
    13.2 Scanner le QR code et démarrer le chrono
         La page QR utilise votre GPS pour guider vers le point de départ.
         - Si votre téléphone peut localiser votre position → un indicateur montre
           la distance restante jusqu'au point de départ
         - Le bouton PARTIR s'active automatiquement quand vous approchez
           (la distance d'activation est configurée par le gestionnaire du col)
         - Si votre GPS n'est pas disponible → le bouton PARTIR est actif immédiatement
         Le chrono ne démarre qu'à votre clic sur PARTIR.
    13.3 Saisie manuelle d'un chrono
    13.4 Connecter Strava
    13.5 Valider les informations de gravure
         IMPORTANT : le nom gravé vient du profil → Mon Profil → Nom/Prénom → Sauvegarder
    13.6 Suivre le statut de sa commande

PARTIE 5 — MAINTENANCE
------------------------

14. MISES À JOUR
    14.1 Backend : déposer les nouveaux fichiers PHP par FTP + relancer composer install
    14.2 Frontend : déposer les nouveaux fichiers HTML/JS par FTP
    14.3 Agent : télécharger le nouveau .exe depuis fab.mykollector.com/admin
    14.4 Vérification : /api/health

15. SAUVEGARDES
    15.1 Base MySQL : sauvegarde automatique OVH (J-1 à J-14) + manuelle depuis phpMyAdmin
    15.2 Fichiers fabricant : responsabilité du fabricant (C:\MyKollector\)
    15.3 Procédure de restauration MySQL via phpMyAdmin OVH

16. RÉSOLUTION DES PROBLÈMES COURANTS
    Tableau de diagnostic :
    - /api/health ne répond pas → vérifier .htaccess, composer install, .env
    - Erreur connexion MySQL → vérifier DB_HOST/DB_NAME/DB_USER/DB_PASSWORD dans .env
    - Les emails ne partent pas → vérifier SMTP dans console admin
    - L'agent ne génère pas de DXF → vérifier icône barre des tâches, logs agent
    - PrestaShop ne se connecte pas → vérifier clé API WebService et permissions
    - HTTPS ne fonctionne pas → vérifier certificat SSL dans espace client OVH
    - Statut "En cours de gravage" non reçu → vérifier PRESTASHOP_STATUT_GRAVAGE_ID
    - Le bouton PARTIR reste grisé → vérifier que le sportif est bien au point de départ
      (ou ajuster la distance d'approche depuis Console admin → Parcours)
    - Export vers destination échoue → vérifier l'URL et les headers dans Destinations d'export
    - Commandes B2B n'apparaissent pas → vérifier que le client PrestaShop est bien dans le groupe "Professionnels"

---

RÈGLES DE RÉDACTION
--------------------
- Tutoyer l'administrateur technique, vouvoyer les utilisateurs finaux
- Commandes dans blocs <code> avec bouton "Copier"
- Avertissements dans encadrés colorés (orange = attention, rouge = critique)
- Durée estimée pour chaque grande étape
- Checklist à la fin de chaque section installation
- CSS @media print inclus
