# Dépannage de la Synchronisation

## Problème : Le bouton de synchronisation reste désactivé après le rétablissement de la connexion

### Solutions apportées

1. **Amélioration de la détection de connexion** :
   - Ajout d'un endpoint dédié `/sync/check-connection` plus rapide
   - Vérification automatique toutes les 5 secondes
   - Rechargement automatique de la page quand la connexion change
   - Purge de la connexion PDO pour éviter les connexions en cache

2. **Logs de diagnostic** :
   - Ouvrez la console du navigateur (F12) pour voir les logs en temps réel
   - Chaque vérification est enregistrée avec un timestamp
   - Les changements d'état sont clairement indiqués

3. **Configuration optimisée** :
   - Timeout de connexion réduit à 5 secondes (au lieu de 30)
   - Désactivation des connexions persistantes
   - Reconnexion forcée à chaque vérification

### Comment tester

1. **Vérifier que votre fichier .env contient** :
```env
REMOTE_DB_DRIVER=mysql
REMOTE_DB_HOST=yehiya.net
REMOTE_DB_PORT=3306
REMOTE_DB_DATABASE=yehiyac1_app_pressing
REMOTE_DB_USERNAME=yehiyac1_app_pressing
REMOTE_DB_PASSWORD="NPx6g2{euoZA;z$0"
```

2. **Ouvrir la page de synchronisation** :
   - Allez sur `/sync/status`
   - Ouvrez la console (F12)
   - Observez les logs de vérification

3. **Tester manuellement** :
   - Cliquez sur le bouton "Tester la connexion maintenant"
   - Vérifiez les logs dans la console

4. **Simuler une perte de connexion** :
   - Désactivez votre connexion Internet
   - Attendez 5 secondes maximum
   - La page devrait se recharger et afficher "Hors Ligne"

5. **Simuler un rétablissement** :
   - Réactivez votre connexion Internet
   - Attendez 5 secondes maximum
   - La page devrait se recharger et afficher "En Ligne"
   - Les boutons de synchronisation devraient être activés

### Diagnostics supplémentaires

#### Vérifier la connexion au serveur distant manuellement

```bash
# Test de connexion au port MySQL
php artisan tinker

# Dans tinker, exécutez :
DB::connection('remote')->select('SELECT 1');
```

#### Vérifier les logs Laravel

```bash
tail -f storage/logs/laravel.log
```

#### Nettoyer le cache si nécessaire

```bash
php artisan config:clear
php artisan cache:clear
php artisan view:clear
```

### Que faire si le problème persiste ?

1. **Vérifiez que le serveur distant est accessible** :
   ```bash
   ping yehiya.net
   telnet yehiya.net 3306
   ```

2. **Vérifiez les permissions de la base de données distante** :
   - Assurez-vous que l'utilisateur a accès depuis votre IP
   - Vérifiez que le firewall du serveur autorise la connexion

3. **Vérifiez les logs du navigateur** :
   - Recherchez les erreurs JavaScript dans la console
   - Vérifiez que les requêtes AJAX aboutissent (onglet Network)

4. **Vérifiez la configuration PHP** :
   - Assurez-vous que l'extension PDO MySQL est activée
   - Vérifiez les paramètres de timeout PHP

### Notes importantes

- La vérification se fait toutes les 5 secondes
- La page se recharge automatiquement toutes les 30 secondes
- En cas de changement d'état, la page se recharge immédiatement
- Les logs dans la console commencent par un emoji pour faciliter la lecture :
  - 🔍 : Test manuel
  - ✅ : Connexion rétablie
  - ❌ : Connexion perdue
  - ⚠️ : Erreur ou avertissement
