# Separación: Configuración vs Datos del Proyecto

## 📋 Principio Fundamental

**`config/site.php`** debe contener solo la **estructura de configuración** y valores por defecto.

**`database/seeders/project-data/site-data.json`** debe contener los **datos específicos del proyecto** que pueden cambiar entre proyectos.

## 🎯 ¿Qué va en cada lugar?

### ✅ Configuración (`config/site.php`)

**Estructura, opciones, flags, tipos, rutas base:**

- Estructura de arrays (keys, tipos de datos)
- Valores por defecto/ejemplo
- Flags de activación/desactivación
- Tipos de datos esperados
- Rutas base de assets
- Configuración de SEO (estructura)
- Configuración de OG/Twitter (estructura)
- Configuración de Google Analytics (estructura)
- Configuración de desarrollo (estructura)

**Ejemplo:**
```php
'contact' => [
    'phone' => '',      // Estructura: campo phone existe
    'email' => '',      // Estructura: campo email existe
    'address' => '',    // Estructura: campo address existe
    'hours' => 'Mon - Sat 9:00am - 6:00pm',  // Valor por defecto
],
```

### ✅ Datos del Proyecto (`database/seeders/project-data/site-data.json`)

**Valores específicos que cambian entre proyectos:**

- Teléfonos, emails, direcciones reales
- URLs de redes sociales
- Navegación del footer (qué mostrar, orden)
- Descripción del proyecto
- Títulos y subtítulos de coming soon
- Progreso de desarrollo
- Cualquier dato que sea específico de Muma vs otro proyecto

**Ejemplo:**
```json
{
  "contact": {
    "phone": "+1 (305) 555-1234",
    "email": "hello@muma.com",
    "address": "123 Main St, Miami, FL 33101"
  },
  "social_media": {
    "instagram": {
      "url": "https://instagram.com/muma",
      "active": true
    }
  }
}
```

## 🔄 Flujo de Trabajo

### 1. Estructura en `config/site.php`

```php
'contact' => [
    'phone' => '',      // Estructura definida
    'email' => '',      // Valor vacío = se llena desde JSON
    'address' => '',
    'hours' => 'Mon - Sat 9:00am - 6:00pm',
],
```

### 2. Datos en `database/seeders/project-data/site-data.json`

```json
{
  "contact": {
    "phone": "+1 (305) 555-1234",
    "email": "hello@muma.com",
    "address": "123 Main St, Miami, FL"
  }
}
```

### 3. Seeder carga datos a `config/site.php`

```bash
php artisan db:seed --class=SiteDataSeeder
```

El seeder actualiza `config/site.php` con los valores del JSON.

## 📁 Archivos Involucrados

### Configuración (Estructura)
- `config/site.php` - Estructura y valores por defecto

### Datos del Proyecto
- `database/seeders/project-data/site-data.json` - Datos específicos de Muma
- `database/seeders/SiteDataSeeder.php` - Seeder que carga los datos

## 🎨 Ventajas de esta Separación

### ✅ Reutilización
- `config/site.php` puede usarse en cualquier proyecto
- Solo cambias el JSON para cada proyecto

### ✅ Mantenibilidad
- Estructura clara y documentada
- Datos del proyecto separados y fáciles de modificar

### ✅ Versionado
- `config/site.php` en el repositorio base
- `site-data.json` puede estar en repositorio del proyecto o ignorado

### ✅ Escalabilidad
- Fácil agregar nuevos proyectos: solo crear nuevo JSON
- No necesitas modificar código PHP

## 📝 Ejemplo Práctico

### Para Muma (Proyecto 1):
```json
// site-data.json
{
  "contact": {
    "email": "hello@muma.com"
  },
  "description": "Food that fits anywhere"
}
```

### Para Otro Proyecto (Proyecto 2):
```json
// site-data.json
{
  "contact": {
    "email": "info@otroproyecto.com"
  },
  "description": "Otro tagline diferente"
}
```

**Mismo `config/site.php`, diferentes datos.**

## 🔧 Cómo Usar

### 1. Crear/Actualizar datos del proyecto

Editar `database/seeders/project-data/site-data.json`:

```json
{
  "contact": {
    "phone": "+1 (305) 555-1234",
    "email": "hello@muma.com",
    "address": "123 Main St, Miami, FL"
  },
  "social_media": {
    "instagram": {
      "url": "https://instagram.com/muma",
      "active": true
    }
  }
}
```

### 2. Ejecutar seeder

```bash
php artisan db:seed --class=SiteDataSeeder
```

### 3. Limpiar cache

```bash
php artisan config:clear
```

## ⚠️ Reglas Importantes

1. **NO** poner valores específicos del proyecto en `config/site.php`
2. **SÍ** mantener la estructura completa en `config/site.php`
3. **SÍ** usar valores vacíos o por defecto en `config/site.php`
4. **SÍ** poner todos los datos específicos en `site-data.json`

## 📊 Comparación

| Aspecto | `config/site.php` | `site-data.json` |
|---------|------------------|-----------------|
| **Propósito** | Estructura y configuración | Datos del proyecto |
| **Reutilizable** | ✅ Sí (mismo para todos) | ❌ No (específico por proyecto) |
| **Versionado** | ✅ En repo base | ⚠️ Opcional (puede ignorarse) |
| **Modificable** | ⚠️ Solo estructura | ✅ Fácilmente |
| **Ejemplos** | Estructura de arrays | Valores reales (emails, teléfonos) |

## 🚀 Migración de Proyecto Existente

Si tienes un proyecto con datos en `config/site.php`:

1. Extraer los datos específicos
2. Crear `site-data.json` con esos datos
3. Limpiar `config/site.php` dejando solo estructura
4. Ejecutar `SiteDataSeeder` para cargar los datos

## 📚 Referencias

- Ver `database/seeders/AnalyticsSeeder.php` como ejemplo
- Ver `database/seeders/project-data/analytics.json` como ejemplo
- Ver `database/seeders/SiteDataSeeder.php` para implementación
