# 🚀 GUIDE D'INSTALLATION RAPIDE
## CDV Property Manager v1.0.0

---

## ⚡ INSTALLATION EN 3 ÉTAPES

### 1️⃣ INSTALLER LE PLUGIN
```
1. Télécharger cdv-property-manager.zip
2. WordPress Admin > Extensions > Ajouter
3. Téléverser le ZIP
4. Activer le plugin
```

### 2️⃣ CRÉER LA PAGE MISSION
```
1. Pages > Ajouter
2. Titre : "Mission Action"
3. Slug : mission-action
4. Contenu : [cdv_mission_action]
5. Publier
```

### 3️⃣ CONFIGURER
```
1. Property Manager > Agents > Créer vos agents
2. Property Manager > Équipes > Créer vos équipes
3. Éditer une propriété > Configurer calendrier + équipe
```

---

## 📁 ARBORESCENCE COMPLÈTE

```
cdv-property-manager/
│
├── cdv-property-manager.php          ← Fichier principal
├── README.md                          ← Documentation complète
│
├── includes/                          ← Classes principales
│   ├── class-calendar-renderer.php   (Votre code CDV original)
│   ├── class-ical-sync.php           (Votre code CDV original)
│   ├── class-storage.php             (Votre code CDV original)
│   ├── class-theme-integration.php   (Votre code CDV original)
│   ├── class-cleaning-teams.php      ← NOUVEAU (Gestion équipes)
│   ├── class-cleaning-agents.php     ← NOUVEAU (Gestion agents)
│   ├── class-cleaning-missions.php   ← NOUVEAU (Gestion missions)
│   └── class-notifications.php       ← NOUVEAU (Emails/SMS)
│
├── admin/                             ← Interface admin
│   ├── class-admin-menu.php          ← Menu principal
│   ├── class-metaboxes.php           ← Intégration Microvilla
│   ├── class-admin-columns.php       (Votre code CDV original)
│   └── class-dashboard-missions.php  ← NOUVEAU (Dashboard + Export)
│
├── assets/                            ← CSS et JS
│   ├── css/
│   │   ├── calendar.css              (Votre code CDV original)
│   │   ├── panier.css                (Votre code CDV original)
│   │   ├── missions.css              ← NOUVEAU (Style missions)
│   │   └── dashboard.css             ← NOUVEAU (Style dashboard)
│   └── js/
│       ├── calendar.js               (Votre code CDV original)
│       ├── missions.js               ← NOUVEAU (Interactions missions)
│       └── dashboard.js              ← NOUVEAU (Interactions dashboard)
│
└── templates/                         ← Templates frontend
    ├── email-mission-notification.php ← NOUVEAU (Email agent)
    └── mission-action-page.php        ← NOUVEAU (Page agent)
```

---

## 🔑 FONCTIONNALITÉS CLÉS

### ✅ Ce qui existe déjà (CDV Calendar)
- Calendriers de réservations
- Synchronisation iCal
- Blocage de dates
- Shortcodes

### ✨ Ce qui a été ajouté
- **Équipes de ménage** : Créez et gérez vos équipes
- **Agents de propreté** : Avec email et téléphone
- **Missions automatiques** : Créées lors de réservations/blocages
- **Notifications email** : Envoyées automatiquement aux agents
- **Workflow complet** : Pending → Accept → In Progress → Complete
- **Upload photos obligatoire** : Pour terminer une mission
- **Vérification boîte à clé** : Configurable par propriété
- **Dashboard avec stats** : Vue d'ensemble de toutes les missions
- **Export CSV** : Exportez les missions filtrées
- **Intégration Microvilla** : Configuration centralisée dans la fiche propriété

---

## 📊 WORKFLOW D'UNE MISSION

```
1. RÉSERVATION CRÉÉE ou DATES BLOQUÉES
   ↓
2. MISSION AUTOMATIQUEMENT CRÉÉE
   ↓
3. EMAIL ENVOYÉ À L'AGENT PRIVILÉGIÉ
   ↓
4. AGENT CLIQUE SUR LE LIEN UNIQUE
   ↓
5. AGENT ACCEPTE OU REFUSE
   ↓
6. SI ACCEPTÉ : AGENT CLIQUE "EN COURS"
   ↓
7. AGENT TERMINE LA MISSION :
   • Upload photos (obligatoire)
   • Vérifie boîte à clé si nécessaire
   • Ajoute une note (optionnel)
   ↓
8. MISSION ENREGISTRÉE DANS LE DASHBOARD
```

---

## 🎯 CONFIGURATION D'UNE PROPRIÉTÉ

Dans la metabox **"📅 Calendrier & Équipe de Ménage"** :

1. **Nom du calendrier** → Créé automatiquement si absent
2. **URL iCal** → Pour synchro Airbnb/Booking
3. **Équipe assignée** → Choisir l'équipe
4. **Agent privilégié** → Agent qui reçoit les notifications
5. **Note pour l'agent** → Instructions, codes, etc.
6. **Boîte à clé** → Cocher si la propriété en a une

---

## 📧 EMAIL DE NOTIFICATION

L'agent reçoit automatiquement un email contenant :
- Nom de la propriété
- Dates check-in / check-out
- Note du propriétaire
- Alerte si boîte à clé
- 2 boutons : **Accepter** / **Refuser**
- Lien vers la page de gestion

---

## 📈 DASHBOARD

**Fonctionnalités** :
- Vue d'ensemble de toutes les missions
- Statistiques : Total, En attente, Acceptées, En cours, Terminées
- Filtres : Agent, Statut, Période
- Recherche rapide dans le tableau
- Affichage des photos
- Export CSV avec toutes les données

**Accès** : Property Manager > 📊 Dashboard

---

## 🔐 SÉCURITÉ

- ✅ Tokens uniques (64 caractères) pour chaque mission
- ✅ Nonces WordPress pour toutes les requêtes AJAX
- ✅ Sanitization et validation de toutes les entrées
- ✅ Upload de fichiers sécurisé via WordPress
- ✅ Pas d'accès direct aux fichiers PHP
- ✅ Vérification des capacités utilisateur

---

## 🛠️ HOOKS DISPONIBLES

```php
// Intercepter la création d'une mission depuis une réservation
add_action('cdv_booking_created', 'ma_fonction', 10, 2);
function ma_fonction($booking_id, $property_id) {
    // Votre code
}

// Intercepter la création d'une mission depuis un blocage
add_action('cdv_dates_blocked', 'ma_fonction', 10, 2);
function ma_fonction($property_id, $dates) {
    // Votre code
}
```

---

## 📝 SHORTCODES

```php
// Afficher un calendrier (2 mois par défaut)
[cdv_calendar id="123"]
[cdv_calendar id="123" months="3"]
[cdv_calendar slug="villa-1"]

// Bouton export iCal
[cdv_ical_export id="123"]
[cdv_ical_export id="123" text="Mon texte"]

// Page d'action pour les agents
[cdv_mission_action]
```

---

## 📦 BASE DE DONNÉES

### Table : `wp_cdv_missions`
```sql
- id (bigint)
- property_id (bigint)
- calendar_id (bigint)
- agent_id (bigint)
- team_id (bigint)
- booking_id (bigint, nullable)
- checkin_date (date)
- checkout_date (date)
- status (varchar) → pending/accepted/refused/in_progress/completed
- owner_note (text)
- agent_note (text)
- photos (text JSON)
- keybox_checked (tinyint)
- token (varchar unique 64)
- created_at / updated_at (datetime)
```

### Table : `wp_cdv_calendar_logs` (existante)
```sql
- id (bigint)
- calendar_id (bigint)
- action (varchar)
- message (text)
- created_at (datetime)
```

---

## ✅ CHECKLIST POST-INSTALLATION

- [ ] Plugin activé
- [ ] Page "Mission Action" créée avec shortcode
- [ ] Au moins 1 agent créé avec email
- [ ] Au moins 1 équipe créée
- [ ] Agents ajoutés à l'équipe
- [ ] Une propriété configurée avec équipe + agent
- [ ] Test : créer une réservation
- [ ] Vérifier : l'agent a reçu l'email
- [ ] Test : accepter la mission
- [ ] Test : terminer la mission avec photos
- [ ] Vérifier : mission dans le dashboard

---

## 🐛 RÉSOLUTION DE PROBLÈMES

### L'agent ne reçoit pas d'email
1. Vérifier l'email de l'agent
2. Vérifier les logs email WordPress
3. Tester avec un plugin SMTP (WP Mail SMTP)

### Les photos ne s'uploadent pas
1. Vérifier les permissions du dossier wp-content/uploads
2. Vérifier la taille max d'upload PHP
3. Vérifier le format des images (JPG, PNG, GIF, WEBP)

### Le calendrier ne s'affiche pas
1. Vérifier que le calendrier est bien créé
2. Vérifier l'ID ou le slug dans le shortcode
3. Vérifier que les scripts sont bien chargés

---

## 📞 SUPPORT

Pour toute question : Créer une issue sur le repository

---

**Version** : 1.0.0  
**Auteur** : CDV Dev  
**Licence** : GPL v2 or later
