# Guide de démarrage rapide 🚀

## Installation en 3 étapes

### 1. Lancer le script de setup
```bash
./setup.sh
```

Ou avec Make:
```bash
make setup
```

### 2. Charger les données de test (optionnel)
```bash
make db-test
```

### 3. Tester l'API
```bash
curl "http://localhost:8080/guest?first_name=Jean&last_name=Dupont"
```

## Commandes utiles

| Commande | Description |
|----------|-------------|
| `make start` | Démarrer les services |
| `make stop` | Arrêter les services |
| `make restart` | Redémarrer les services |
| `make logs` | Voir les logs en temps réel |
| `make test` | Lancer les tests |
| `make db-test` | Charger les données de test |
| `make db-reset` | Réinitialiser la base de données |
| `make status` | Voir l'état des conteneurs |
| `make help` | Voir toutes les commandes disponibles |

## Endpoints disponibles

### 🔍 Rechercher un invité
```bash
GET /guest?first_name=Jean&last_name=Dupont
```

### ✍️ Soumettre une réponse
```bash
POST /invitation/{uuid}
Content-Type: application/json

{
  "is_attending_dinner": true,
  "is_attending_reception": true,
  "email": "guest@example.com",
  "phone": "+33612345678",
  "dietary_restrictions": "Végétarien",
  "notes": "Merci !"
}
```

### 🔄 Modifier une réponse
```bash
PUT /invitation/{uuid}
Content-Type: application/json

{
  "token": "edit_token",
  "is_attending_dinner": false,
  "is_attending_reception": true,
  "email": "guest@example.com"
}
```

### 📧 Renvoyer l'email
```bash
POST /invitation/{uuid}/resendMail
```

### 👥 Liste admin (tous les invités)
```bash
GET /admin/guests
```

## Données de test disponibles

Après avoir exécuté `make db-test`, ces invitations seront disponibles:

| UUID | Invités | Dîner | Réponse |
|------|---------|-------|---------|
| `550e8400-e29b-41d4-a716-446655440001` | Famille Dupont (Jean, Marie, Lucas) | ✅ | ❌ |
| `550e8400-e29b-41d4-a716-446655440002` | Sophie Martin | ✅ | ✅ |
| `550e8400-e29b-41d4-a716-446655440003` | Famille Bernard (Pierre, Claire) | ❌ | ✅ |
| `550e8400-e29b-41d4-a716-446655440004` | Thomas Dubois | ✅ | ❌ |
| `550e8400-e29b-41d4-a716-446655440005` | Famille Petit (Emma, Hugo) | ✅ | ✅ |

## Tester avec REST Client (VSCode)

1. Installer l'extension "REST Client" dans VSCode
2. Ouvrir le fichier `api-examples.http`
3. Cliquer sur "Send Request" au-dessus de chaque requête

## Accès à la base de données

```bash
# Shell MySQL
make db-shell

# Ou directement
docker-compose exec db mysql -u wedding_user -pwedding_pass wedding_rsvp
```

## Développement avec devcontainer

1. Ouvrir le projet dans VSCode
2. `Cmd+Shift+P` → "Reopen in Container"
3. Attendre la construction du conteneur
4. Commencer à développer ! 🎉

## Dépannage

### Les conteneurs ne démarrent pas
```bash
make clean
make setup
```

### La base de données semble vide
```bash
make db-reset
```

### Voir les erreurs
```bash
make logs
```

### Redémarrer complètement
```bash
make stop
make clean
make setup
```

## Structure du projet

```
.
├── public/             # Point d'entrée web
├── src/
│   ├── Controllers/    # Logique des endpoints
│   ├── Core/           # Classes de base
│   ├── Models/         # Accès aux données
│   └── Services/       # Services (email, etc.)
├── tests/              # Tests PHPUnit
├── specs/              # Spécifications et schéma SQL
├── docker/             # Configuration Docker
└── Makefile            # Commandes simplifiées
```

## Support

Pour plus de détails, consultez le [README.md](README.md) complet.
