# DarTech Cloud — Protocole de test (premier client réel)

Suivre ces étapes DANS L'ORDRE. Ne pas passer à l'étape suivante tant que la précédente n'est pas validée.

## Étape 0 — Prérequis serveur

- [ ] PHP installé sur le VPS (vérifier : `php -v`)
- [ ] MySQL installé et accessible (vérifier : `mysql -u root -p`)
- [ ] Composer installé (vérifier : `composer --version`)

Si l'un de ces points manque, on s'arrête ici et on configure d'abord.

## Étape 1 — Base de données

```bash
mysql -u root -p -e "CREATE DATABASE dartech_cloud CHARACTER SET utf8mb4;"
mysql -u root -p dartech_cloud < schema.sql
```
- [ ] Vérifier que les 5 forfaits sont bien présents : `SELECT * FROM forfaits;`

## Étape 2 — Dépendances PHP

Dans le dossier du projet sur le VPS :
```bash
composer require aws/aws-sdk-php
```
- [ ] Vérifier que le dossier `vendor/` a bien été créé

## Étape 3 — Configuration

Éditer `config.php` :
- [ ] Identifiants MySQL réels
- [ ] Clés Wasabi réelles (celles déjà utilisées pour rclone)
- [ ] RIB réel pour les virements

## Étape 4 — Créer ton compte admin

```bash
php creer-admin.php "Ton Nom" "ton@email.com" "mot_de_passe_solide"
```
- [ ] Connexion réussie sur `admin-login.html` avec ces identifiants → redirection vers `admin-panel.html`

## Étape 5 — Préparer le dossier preuves de paiement

```bash
mkdir -p preuves-paiement
chmod 755 preuves-paiement
```
- [ ] Dossier créé avec les bons droits d'écriture pour PHP

## Étape 6 — Créer un client TEST (toi-même)

Dans `admin-panel.html`, onglet "Créer un client" :
- [ ] Nom : ton nom (ou un nom fictif "Test Client")
- [ ] Email : une adresse que tu contrôles
- [ ] Forfait : Mini (100 Mo) — le moins cher, pour tester sans gros enjeu
- [ ] Cliquer "Créer le client"
- [ ] Noter le mot de passe généré affiché à l'écran

**Vérification en base** : `SELECT * FROM clients;` → le client doit apparaître avec statut `en_attente_paiement`
**Vérification Wasabi** : le dossier `clients/client_0001/` doit être visible dans ton interface Wasabi (comme sur ta capture d'écran)

## Étape 7 — Tester le login client

- [ ] Ouvrir `portail-client.html`
- [ ] Se connecter avec l'email/mot de passe du client test créé
- [ ] Le portail doit afficher le statut "en attente de paiement" et bloquer l'accès aux fichiers (comportement attendu, pas un bug)

## Étape 8 — Tester le flux de paiement

- [ ] Sur le portail client, vérifier que le RIB et la référence de virement s'affichent correctement
- [ ] Uploader une fausse "preuve" (n'importe quelle image/PDF) pour tester le flux
- [ ] Vérifier dans `admin-panel.html` → onglet "Paiements en attente" que la preuve apparaît bien avec un lien cliquable

## Étape 9 — Valider le paiement côté admin

- [ ] Cliquer "Valider" sur le paiement test
- [ ] Vérifier en base que le client passe à statut `actif` et que `date_echeance` est à +365 jours

## Étape 10 — Tester upload/download réel

- [ ] Se reconnecter sur `portail-client.html` avec le client test (maintenant actif)
- [ ] Uploader un vrai petit fichier (ex: un PDF de 1-2 Mo)
- [ ] Vérifier qu'il apparaît dans la liste avec la bonne taille
- [ ] Cliquer "Télécharger" et vérifier que le fichier téléchargé est identique à l'original
- [ ] Vérifier sur l'interface Wasabi que le fichier est bien arrivé dans `clients/client_0001/`

## Étape 11 — Tester la limite de quota

Avec le forfait Mini (100 Mo) :
- [ ] Essayer d'uploader un fichier qui dépasserait les 100 Mo cumulés → doit être refusé avec le message "Quota dépassé"

## Étape 12 — Vérifier les backups

- [ ] Lancer manuellement `bash backup-db.sh`
- [ ] Vérifier dans `/var/log/dartech-backup.log` que ça s'est bien passé
- [ ] Vérifier sur Wasabi que le fichier `.sql.gz` est bien arrivé dans `system-backups/db/`

## Si tout est validé

Le tunnel complet fonctionne : création client → paiement → activation → upload/download. Tu peux supprimer ce client test (`DELETE FROM clients WHERE email = 'ton_email_test';` + supprimer le dossier Wasabi correspondant) et créer ton VRAI premier client payant, ou lancer les pubs Facebook en confiance sachant que le système répond.

## En cas de blocage à une étape

Note précisément : le numéro de l'étape, le message d'erreur exact (copier-coller), et ce que tu as essayé. On débogue ensemble étape par étape plutôt que de deviner.
