# Config/site.php: ¿Qué Debe Quedarse y Qué Va a DB?

## 🎯 Principio

**`config/site.php` = Estructura + Valores por Defecto**  
**DB = Datos Específicos del Proyecto**

## ✅ Debe Quedarse en config/site.php

### 1. **Estructura y Documentación**
- Define la estructura completa de la configuración
- Documenta qué campos existen y qué significan
- Sirve como referencia para desarrolladores

### 2. **Valores Base/Default**
- Valores que no cambian entre proyectos
- Valores que sirven como fallback si la DB falla
- Valores de estructura (no datos del proyecto)

### 3. **Ejemplos de lo que DEBE quedarse:**

```php
// ✅ ESTRUCTURA - Debe quedarse
'seo' => [
    'keywords' => '...',           // Valor base (puede sobrescribirse desde DB)
    'description' => '...',        // Valor base
    'title_template' => '{title} | {site_name}',  // Estructura, no cambia
    'language' => 'en_US',         // Valor base
    'robots' => 'index, follow',   // Valor base
    'canonical' => true,           // Estructura
],

// ✅ ESTRUCTURA - Debe quedarse
'og' => [
    'enabled' => true,             // Estructura
    'type' => 'website',           // Estructura
    'image_width' => 1200,         // Estructura (no cambia)
    'image_height' => 630,         // Estructura (no cambia)
    'image_type' => 'image/png',   // Estructura
],

// ✅ RUTAS BASE - Debe quedarse
'assets' => [
    'favicon' => 'cd-project/assets/favicon.ico',  // Ruta base (estructura)
    'main_logo' => 'cd-project/assets/logo.png',   // Ruta base (estructura)
],
```

## 🔄 Va a DB (Datos Específicos del Proyecto)

### 1. **Datos que Cambian Entre Proyectos**
- Contact info (phone, email, address)
- Social media URLs
- Footer navigation
- Development mode settings
- Google Analytics tracking ID

### 2. **Ejemplos de lo que VA a DB:**

```php
// ❌ DATOS DEL PROYECTO - Van a DB
'contact' => [
    'phone' => '',      // ← Específico del proyecto → DB
    'email' => '',      // ← Específico del proyecto → DB
    'address' => '',    // ← Específico del proyecto → DB
],

// ❌ DATOS DEL PROYECTO - Van a DB
'social_media' => [
    'instagram' => [
        'url' => '',        // ← Específico del proyecto → DB
        'active' => false,  // ← Específico del proyecto → DB
    ],
],

// ❌ DATOS DEL PROYECTO - Van a DB
'development' => [
    'enabled' => false,  // ← Específico del proyecto → DB
    'title' => '...',    // ← Específico del proyecto → DB
],

// ❌ DATOS DEL PROYECTO - Van a DB
'google_analytics' => [
    'tracking_id' => 'G-...',  // ← Específico del proyecto → DB
],
```

## 🔀 Cómo Funciona el Merge

```
config/site.php (valores base)
         +
DB settings (valores específicos del proyecto)
         ↓
SiteConfigServiceProvider merge
         ↓
config('site.*') (valores finales)
```

**Prioridad:** DB > Archivo

## 📋 Resumen

| Tipo | ¿Dónde? | Ejemplo |
|------|---------|---------|
| **Estructura** | `config/site.php` | `'og' => ['enabled' => true, 'type' => 'website']` |
| **Valores Base** | `config/site.php` | `'language' => 'en_US'`, `'robots' => 'index, follow'` |
| **Datos del Proyecto** | **DB** | `contact.phone`, `social_media.instagram.url`, `development.enabled` |
| **Rutas Base** | `config/site.php` | `'assets.main_logo' => 'cd-project/assets/logo.png'` |

## ✅ Conclusión

**NO está de más tener valores en `config/site.php`** porque:

1. ✅ Define la estructura completa
2. ✅ Proporciona valores por defecto
3. ✅ Sirve como fallback si la DB falla
4. ✅ Documenta la configuración
5. ✅ Permite que el sistema funcione sin DB (modo desarrollo)

**Lo que SÍ está de más:**
- Tener valores específicos del proyecto en el archivo cuando ya están en DB
- Pero tener valores base/estructura es correcto y necesario

## 🎯 Recomendación

**Mantener:**
- Estructura completa en `config/site.php`
- Valores base/por defecto en `config/site.php`
- Comentarios explicando qué va a DB

**Mover a DB:**
- Solo datos específicos del proyecto (contact, social_media, development, google_analytics)

**Resultado:**
- Archivo = Estructura + Defaults
- DB = Datos del Proyecto
- Merge automático = Mejor de ambos mundos
