# 🔒 ¿Por qué `config/cd-system.php` NO se Propaga?

## 🎯 Respuesta Directa

**`config/cd-system.php` es un archivo PROTEGIDO que NO se propaga del proyecto al core** porque contiene **configuraciones específicas de cada proyecto**.

---

## 📋 Diferencia entre Core y Proyecto

### En el Core (cd-system)
- `config/cd-system.php` tiene configuración **base/neutral**
- Ejemplo: `'demo' => 'demo-construction'` (demo por defecto del sistema)
- Es la configuración "plantilla" que usan los nuevos proyectos

### En los Proyectos (cokecolombres, terashe, etc.)
- `config/cd-system.php` tiene configuración **específica del proyecto**
- Ejemplo en cokecolombres: `'demo' => 'demo-accounting-1'`
- Ejemplo en terashe: `'demo' => 'demo-law-firm-2'`
- Cada proyecto elige su demo y módulos activos

---

## ✅ ¿Qué SÍ se Propagó?

### 1. **app/helpers.php** ✅
**Contiene:** Los mapeos de los 9 demos estandarizados
- `demo-accounting-1`
- `demo-marketing-1`
- `demo-creative-agency-2`
- `demo-architecture-2`
- `demo-transportation-logistic`
- `demo-sass`
- Y los demás...

**Ubicación en cd-system:** `app/helpers.php` ✅ **PROPAGADO**

### 2. **app/Providers/ViewComposerServiceProvider.php** ✅
**Contiene:** ViewComposer global para variables comunes

**Ubicación en cd-system:** `app/Providers/ViewComposerServiceProvider.php` ✅ **PROPAGADO**

### 3. **Documentación Completa** ✅
**Contiene:** Todas las guías y documentación del sistema de demos

**Ubicación en cd-system:** `docs/` ✅ **PROPAGADO**

---

## ❌ ¿Qué NO se Propaga?

### `config/cd-system.php` ❌
**Razón:** Contiene configuraciones específicas del proyecto:
- Demo activo (`demo-accounting-1` en cokecolombres)
- Módulos activos/inactivos
- Configuraciones específicas del proyecto

**Protección:** Está en `.gitattributes` con `merge=ours` para que nunca se sobrescriba.

---

## 🔄 Flujo Correcto

### 1. Desarrollo en Proyecto
```php
// cokecolombres/config/cd-system.php
'demo' => 'demo-accounting-1',  // ← Configuración del proyecto
```

### 2. Mejoras Reutilizables → Core
```php
// Se propaga: app/helpers.php (mapeos de demos)
// NO se propaga: config/cd-system.php (configuración específica)
```

### 3. Core Mantiene Configuración Base
```php
// cd-system/config/cd-system.php
'demo' => 'demo-construction',  // ← Configuración base/neutral
```

### 4. Nuevos Proyectos Usan Core
```php
// Nuevo proyecto clona desde core
// Luego personaliza su config/cd-system.php
'demo' => 'demo-marketing-1',  // ← Su propia configuración
```

---

## ✅ Verificación: Los Cambios SÍ Están en cd-system

Puedes verificar que los 9 demos están disponibles en el core:

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system
grep "demo-accounting-1\|demo-marketing-1\|demo-sass" app/helpers.php
```

**Resultado:** Los demos están en `app/helpers.php` ✅

---

## 📝 Resumen

| Archivo | ¿Se Propaga? | Razón |
|---------|--------------|-------|
| `app/helpers.php` | ✅ SÍ | Código reutilizable (mapeos de demos) |
| `app/Providers/ViewComposerServiceProvider.php` | ✅ SÍ | Código reutilizable (ViewComposer global) |
| `docs/*.md` | ✅ SÍ | Documentación reutilizable |
| `config/cd-system.php` | ❌ NO | Configuración específica del proyecto |
| `config/site.php` | ❌ NO | Identidad específica del proyecto |

---

## 🎯 Conclusión

**Los cambios SÍ se propagaron correctamente.** El archivo `config/cd-system.php` no debe cambiar en el core porque:
1. Es un archivo protegido (`.gitattributes`)
2. Contiene configuraciones específicas de cada proyecto
3. El core debe mantener una configuración base/neutral
4. Cada proyecto personaliza su propia configuración

**Los 9 demos están disponibles en el core a través de `app/helpers.php`**, que es donde deben estar para que todos los proyectos puedan usarlos.

---

**Última actualización:** Diciembre 2024

