# 📚 Scripts de Gestion des Abonnements

Ce dossier contient les scripts pour gérer le système d'abonnements de Corossol.

## 🚀 Scripts Disponibles

### 1. **init-abonnements.js**
**Objectif**: Initialise le système d'abonnements avec des offres et promotions par défaut.

**Utilisation**:
```bash
# Automatique au démarrage (via bootstrap.js)
# Ou manuellement
sails run init-abonnements
```

**Fonctionnalités**:
- ✅ Crée des offres globales (pas par école)
- ✅ Crée des promotions par défaut
- ✅ Export automatique des données
- ✅ Upsert intelligent (évite les doublons)

**Offres créées**:
- Essai Gratuit (0 XOF) - 7 jours
- Abonnement Mensuel (700 XOF) - 30 jours
- Abonnement Trimestriel (2000 XOF) - 90 jours
- Abonnement Semestriel (3500 XOF) - 180 jours
- Abonnement Annuel (6000 XOF) - 365 jours

### 2. **export-abonnements.js**
**Objectif**: Exporte les données d'abonnement pour sauvegarde.

**Utilisation**:
```bash
sails run export-abonnements
```

**Fonctionnalités**:
- 📁 Crée un fichier JSON dans `/exports/`
- 📊 Inclut offres et promotions actives
- 🕒 Timestamp automatique
- 📋 Aperçu des données exportées

**Fichier généré**: `exports/abonnements-export-YYYY-MM-DDTHH-MM-SS.json`

### 3. **import-abonnements.js**
**Objectif**: Importe les données d'abonnement depuis un fichier d'export.

**Utilisation**:
```bash
sails run import-abonnements
```

**Fonctionnalités**:
- 📥 Import automatique du fichier le plus récent
- 🔄 Mise à jour des offres existantes
- 🆕 Création des nouvelles offres
- ✅ Vérification et résumé

### 4. **check-abonnements.js**
**Objectif**: Diagnostique l'état du système d'abonnements.

**Utilisation**:
```bash
sails run check-abonnements
```

**Fonctionnalités**:
- 🔍 Vérification de la base de données
- 📊 Comptage des enregistrements
- 🏫 Vérification des écoles
- ⚙️ Vérification de la configuration
- 💡 Recommandations automatiques

## 🔄 Workflow Recommandé

### **En Local (Développement)**
```bash
# 1. Vérifier l'état
sails run check-abonnements

# 2. Initialiser si nécessaire
sails run init-abonnements

# 3. Exporter pour sauvegarde
sails run export-abonnements
```

### **En Production (Ligne)**
```bash
# 1. Vérifier l'état
sails run check-abonnements

# 2. Si problème, importer depuis l'export local
sails run import-abonnements

# 3. Vérifier que tout fonctionne
sails run check-abonnements
```

## 📁 Structure des Fichiers

```
scripts/
├── init-abonnements.js      # Initialisation
├── export-abonnements.js    # Export
├── import-abonnements.js    # Import
├── check-abonnements.js     # Diagnostic
└── README.md               # Cette documentation

exports/                     # Dossier des exports
└── abonnements-export-*.json
```

## 🚨 Résolution des Problèmes

### **Problème**: "Aucune offre trouvée"
**Solution**: 
```bash
sails run init-abonnements
```

### **Problème**: "Erreur de connexion à la base de données"
**Vérifiez**:
- Configuration de la base de données
- Variables d'environnement
- Connexion réseau

### **Problème**: "Configuration app-content non trouvée"
**Vérifiez**:
- Fichier `config/app-content.js`
- Syntaxe JavaScript
- Variables d'environnement

## 🔧 Personnalisation

### **Modifier les Offres**
Éditez le tableau `offres` dans `init-abonnements.js`:

```javascript
const offres = [
  {
    nom: 'Votre Offre',
    description: 'Description personnalisée',
    typeAbonnement: 'personnalise',
    dureeJours: 30,
    montant: 10000,
    devise: 'XOF',
    fonctionnalites: ['notes', 'emplois_temps'],
    icone: 'fa-star'
  }
];
```

### **Modifier les Promotions**
Éditez le tableau `promotions` dans `init-abonnements.js`:

```javascript
const promotions = [
  {
    nom: 'Votre Promotion',
    typeReduction: 'pourcentage',
    valeurReduction: 25,
    devise: 'XOF',
    nombreUtilisationsMax: 100
  }
];
```

## 📞 Support

En cas de problème :
1. Exécutez `sails run check-abonnements`
2. Vérifiez les logs de l'application
3. Consultez la documentation Sails.js
4. Contactez l'équipe de développement

---

**Version**: 1.0  
**Dernière mise à jour**: Décembre 2024  
**Auteur**: Équipe Corossol
