# 🗄️ Base de Données - Système d'Authentification EC Pays de la Loire

## 📋 Configuration

### 1. Configuration de la base de données

Copiez le fichier `.env.example` vers `.env` et configurez les paramètres de base de données :

```bash
cp .env.example .env
```

Dans le fichier `.env`, configurez :

```ini
# Base de données
database.default.hostname = localhost
database.default.database = auth_ec_paysdelaloire
database.default.username = your_username
database.default.password = your_password
database.default.DBDriver = MySQLi
database.default.charset = utf8mb4
database.default.DBCollat = utf8mb4_unicode_ci
```

### 2. Création de la base de données

Créez la base de données MySQL :

```sql
CREATE DATABASE auth_ec_paysdelaloire 
DEFAULT CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;
```

### 3. Exécution des migrations

Les migrations ont déjà été exécutées avec succès. Pour les ré-exécuter si nécessaire :

```bash
php spark migrate
```

## 🔑 Super Utilisateur par Défaut

Un super utilisateur a été créé automatiquement :

- **Email** : `it@ec44.fr`
- **Mot de passe** : `NNpmiYenLaoKoTqEAoZB`
- **Type** : Administrateur système
- **Statut** : Actif

## 🏗️ Structure Créée

### 📊 Tables principales

1. **`departements`** - Départements Pays de la Loire (44, 49, 53, 72, 85)
2. **`ogec`** - Organismes de gestion (OGEC, AFG, AEP)
3. **`etablissements`** - Établissements scolaires
4. **`etablissement_sites`** - Sites géographiques des établissements
5. **`uai`** - Unités Administratives d'Immatriculation
6. **`users`** - Utilisateurs du système
7. **`user_profiles`** - Profils détaillés des utilisateurs
8. **`applications`** - Applications/outils disponibles
9. **`application_permissions_defaut`** - Permissions par type d'utilisateur

### 🛠️ Applications pré-installées

1. **Gestion des Suppléances** (`suppleances`)
   - URL: https://suppleance.ec-paysdelaloire.fr
   - Niveau: Établissement
   - Catégorie: RH

2. **Tableau de Bord Régional** (`tableau-bord`)
   - URL: https://dashboard.ec-paysdelaloire.fr
   - Niveau: Départemental
   - Catégorie: Pilotage

3. **Gestion Administrative** (`administration`)
   - URL: https://auth.ec-paysdelaloire.fr/admin
   - Niveau: Administrateur
   - Catégorie: Administration

## 📋 Prochaines Étapes

### 🔄 Migrations à créer encore

Les migrations suivantes doivent encore être créées :

1. **Tables de gestion des utilisateurs avancées** :
   - `user_2fa` - Configuration 2FA
   - `user_ogec` - Liaison présidents OGEC
   - `user_etablissements` - Liaison CE/délégués
   - `user_departements` - Liaison gestionnaires
   - `user_applications` - Permissions individuelles

2. **Tables de délégations** :
   - `delegations` - Gestion des délégations

3. **Tables de sécurité** :
   - `sessions` - Sessions actives
   - `security_logs` - Logs de sécurité
   - `blocked_ips` - IPs bloquées

### 🛠️ Commandes utiles

```bash
# Créer une nouvelle migration
php spark make:migration CreateTableName

# Voir le statut des migrations
php spark migrate:status

# Rollback d'une migration
php spark migrate:rollback

# Créer un seeder
php spark make:seeder TableNameSeeder

# Exécuter les seeders
php spark db:seed
```

## 🔐 Sécurité

- Les mots de passe sont hashés avec `password_hash()`
- La base utilise l'encodage `utf8mb4_unicode_ci`
- Les contraintes d'intégrité référentielle sont activées
- Le super utilisateur a un mot de passe sécurisé généré aléatoirement

## 📝 Notes

- La structure respecte les standards CodeIgniter 4
- Toutes les tables ont des timestamps automatiques
- Les clés étrangères sont configurées avec CASCADE approprié
- Les index sont optimisés pour les performances