# Guía de Seeders - Arquitectura SaaS

## 📋 Seeders del Sistema

### Orden de Ejecución (Project_Seeder)

Los seeders se ejecutan en el siguiente orden para garantizar dependencias correctas:

#### 1. Configuración del Sistema Base
```php
CdSystemSeeder::class,  // PRIMERO: Demo y módulos activos
```

#### 2. Configuración del Proyecto
```php
SiteDataSeeder::class,   // Datos del proyecto (contact, social, footer)
AssetsSeeder::class,     // Assets (logos, favicons, imágenes)
AnalyticsSeeder::class,  // Google Analytics
```

#### 3. Datos de Contenido
```php
ProjectsUsersSeeder::class,
ServiceCategoriesSeeder::class,
ProjectsServicesSeeder::class,
BlogSeeder::class,
GallerySeeder::class,
CdBaseSeeder::class,
ProjectsSeeder::class,
TeamSeeder::class,
ProductsSeeder::class,
ReferencesSeeder::class,
```

## 🔧 Seeders de Configuración

### CdSystemSeeder

**Archivo JSON:** `database/seeders/project-data/cd-system.json`  
**Actualiza:** `config/cd-system.php`

**Estructura JSON:**
```json
{
  "theme": {
    "demo": "demo-restaurant",
    "skin": "auto"
  },
  "modules": {
    "blog": {
      "active": true,
      "navigation": {
        "header": true,
        "footer": true
      }
    }
  },
  "maintenance": {
    "enabled": false,
    "allowed_ips": ["127.0.0.1", "::1"]
  }
}
```

**Ejecutar:**
```bash
php artisan db:seed --class=CdSystemSeeder
php artisan config:clear
```

### SiteDataSeeder

**Archivo JSON:** `database/seeders/project-data/site-data.json`  
**Actualiza:** `config/site.php`

**Estructura JSON:**
```json
{
  "contact": {
    "phone": "+1 (305) 555-1234",
    "email": "hello@muma.com",
    "address": "123 Main St, Miami, FL",
    "hours": "Mon - Sat 9:00am - 6:00pm"
  },
  "description": "Food that fits anywhere",
  "social_media": {
    "instagram": {
      "url": "https://instagram.com/muma",
      "active": true
    }
  },
  "footer": { ... },
  "development": { ... }
}
```

**Ejecutar:**
```bash
php artisan db:seed --class=SiteDataSeeder
php artisan config:clear
```

### AssetsSeeder

**Archivo JSON:** `database/seeders/project-data/assets.json`  
**Actualiza:** Base de datos (tabla `assets`)

**Estructura JSON:**
```json
{
  "assets": [
    {
      "name": "logo.png",
      "path": "cd-project/assets/logo.png",
      "type": "logo",
      "description": "Logo principal del sitio web"
    }
  ]
}
```

**Ejecutar:**
```bash
php artisan db:seed --class=AssetsSeeder
```

### AnalyticsSeeder

**Archivo JSON:** `database/seeders/project-data/analytics.json`  
**Actualiza:** `config/site.php`

**Estructura JSON:**
```json
{
  "google_analytics": {
    "enabled": true,
    "tracking_id": "G-CZ4M1W9WR0",
    "tracking_id_dev": null,
    "track_in_local": false
  }
}
```

**Ejecutar:**
```bash
php artisan db:seed --class=AnalyticsSeeder
php artisan config:clear
```

## 🚀 Comandos Útiles

### Cargar Todo el Proyecto
```bash
php artisan migrate:fresh --seed
php artisan config:clear
php artisan view:clear
```

### Cargar Solo Configuración
```bash
php artisan db:seed --class=CdSystemSeeder
php artisan db:seed --class=SiteDataSeeder
php artisan db:seed --class=AnalyticsSeeder
php artisan config:clear
```

### Cargar Solo Assets
```bash
php artisan db:seed --class=AssetsSeeder
```

## 📝 Notas Importantes

1. **Siempre** limpiar cache después de ejecutar seeders de configuración
2. **CdSystemSeeder** debe ejecutarse primero (otros pueden depender de él)
3. Los seeders son **idempotentes** (pueden ejecutarse múltiples veces)
4. Los JSONs pueden estar en `.gitignore` si son específicos del proyecto
