# CDV Property Manager

Plugin WordPress complet de gestion locative avec calendrier de réservations et système d'équipes de ménage.

## 🎯 Fonctionnalités

### Calendrier de Réservations
- ✅ Gestion de calendriers de disponibilités
- ✅ Synchronisation iCal (Airbnb, Booking.com, etc.)
- ✅ Blocage de dates par le propriétaire
- ✅ Interface intuitive avec navigation mensuelle
- ✅ Shortcodes pour afficher les calendriers

### Système de Ménage
- ✅ Création d'équipes de ménage
- ✅ Gestion d'agents de propreté
- ✅ Attribution d'équipes et d'agents privilégiés par propriété
- ✅ Création automatique de missions lors de réservations/blocages
- ✅ Notifications par email aux agents
- ✅ Workflow complet : Accepter → En cours → Terminer
- ✅ Upload de photos obligatoire
- ✅ Vérification obligatoire de boîte à clé (configurable)
- ✅ Dashboard avec statistiques et filtres
- ✅ Export CSV des missions

### Intégration Microvilla
- ✅ Création centralisée du calendrier dans la fiche propriété
- ✅ Configuration de l'équipe de ménage directement dans la propriété
- ✅ Notes personnalisées pour les agents

## 📦 Installation

1. **Télécharger le plugin** : Placez le dossier `cdv-property-manager` dans `/wp-content/plugins/`

2. **Activer le plugin** : Dans WordPress Admin > Extensions > Activer "CDV Property Manager"

3. **Créer une page pour les missions** (optionnel) :
   - Créez une nouvelle page nommée "Mission Action"
   - Slug : `mission-action`
   - Contenu : `[cdv_mission_action]`
   - Cette page permettra aux agents de gérer leurs missions

## 🚀 Utilisation

### Étape 1 : Créer des agents de propreté
1. Aller dans **Property Manager > 🧹 Agents**
2. Cliquer sur **Ajouter agent**
3. Remplir :
   - Nom de l'agent
   - Email (obligatoire pour les notifications)
   - Téléphone (optionnel)

### Étape 2 : Créer des équipes
1. Aller dans **Property Manager > 👥 Équipes**
2. Cliquer sur **Ajouter équipe**
3. Donner un nom à l'équipe
4. Cocher les agents membres de cette équipe

### Étape 3 : Configurer une propriété
1. Éditer une propriété Microvilla
2. Dans la metabox **📅 Calendrier & Équipe de Ménage** :
   - **Nom du calendrier** : sera créé automatiquement
   - **URL iCal** : pour synchroniser avec d'autres plateformes
   - **Équipe assignée** : choisir l'équipe
   - **Agent privilégié** : l'agent qui recevra les notifications
   - **Note pour l'agent** : instructions, codes d'accès, etc.
   - **Boîte à clé** : cocher si la propriété a une boîte à clé

### Étape 4 : Fonctionnement automatique
Lorsqu'une réservation est créée ou que des dates sont bloquées :
1. ✅ Une mission est automatiquement créée
2. ✅ L'agent privilégié reçoit un email avec toutes les infos
3. ✅ L'agent peut accepter ou refuser via un lien unique
4. ✅ Une fois acceptée, il peut marquer "En cours"
5. ✅ Pour terminer, il doit obligatoirement :
   - Uploader des photos
   - Vérifier la boîte à clé (si configurée)
6. ✅ La mission est enregistrée dans le dashboard

### Étape 5 : Suivre les missions
1. Aller dans **Property Manager > 📊 Dashboard**
2. Filtrer par :
   - Agent
   - Statut
   - Période
3. Exporter en CSV si besoin

## 📋 Shortcodes

```php
// Afficher un calendrier
[cdv_calendar id="123" months="2"]
[cdv_calendar slug="calendrier-villa-1" months="3"]

// Bouton d'export iCal
[cdv_ical_export id="123" text="Télécharger le calendrier"]

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

## 🎨 Personnalisation

### Hook pour intercepter la création de mission
```php
add_action('cdv_booking_created', 'ma_fonction_personnalisee', 10, 2);
function ma_fonction_personnalisee($booking_id, $property_id) {
    // Votre code personnalisé
}
```

### Hook pour les blocages de dates
```php
add_action('cdv_dates_blocked', 'ma_fonction_blocage', 10, 2);
function ma_fonction_blocage($property_id, $dates) {
    // Votre code personnalisé
}
```

## 🗂️ Structure de la base de données

### Table `wp_cdv_missions`
- `id` : ID de la mission
- `property_id` : ID de la propriété
- `calendar_id` : ID du calendrier
- `agent_id` : ID de l'agent assigné
- `team_id` : ID de l'équipe
- `booking_id` : ID de la réservation (null si blocage)
- `checkin_date` : Date d'arrivée
- `checkout_date` : Date de départ
- `status` : pending, accepted, refused, in_progress, completed
- `owner_note` : Note du propriétaire
- `agent_note` : Note de l'agent
- `photos` : JSON des URLs des photos
- `keybox_checked` : Booléen de vérification
- `token` : Token unique pour l'accès sécurisé
- `created_at` / `updated_at` : Timestamps

## 🔐 Sécurité

- ✅ Tokens uniques pour chaque mission
- ✅ Nonces WordPress pour AJAX
- ✅ Sanitization de toutes les entrées
- ✅ Validation des uploads de fichiers
- ✅ Vérification des capacités utilisateur

## 📞 Support

Pour toute question ou problème, créer une issue sur le repository.

## 📝 Changelog

### Version 1.0.0
- Version initiale
- Calendrier de réservations avec iCal
- Système complet d'équipes de ménage
- Dashboard avec export CSV
- Intégration Microvilla

## 📄 Licence

GPL v2 or later

## 👨‍💻 Auteur

CDV Dev
