# Verificación: Cambio de Proyecto (Cambiar DB)

## 🎯 Objetivo

Verificar que al cambiar la base de datos en `.env`, **todo el proyecto se adapte automáticamente** cargando los datos desde los JSONs.

## ✅ Flujo Esperado

```
1. Cambiar DB_DATABASE en .env
   ↓
2. Ejecutar php artisan migrate:fresh --seed
   ↓
3. Seeders cargan JSONs y guardan en DB
   ↓
4. SiteConfigServiceProvider merge DB + config/site.php
   ↓
5. Todo el proyecto configurado automáticamente
```

## 📋 Checklist de Verificación

### Paso 1: Preparar Nueva DB

```bash
# 1. Crear nueva base de datos (ejemplo: proyecto2_db)
# 2. Cambiar .env
DB_DATABASE=proyecto2_db
```

### Paso 2: Ejecutar Migraciones y Seeders

```bash
php artisan migrate:fresh --seed
```

**Orden de ejecución esperado:**
1. ✅ `CdSystemSeeder` → Carga `cd-system.json` → Actualiza `config/cd-system.php`
2. ✅ `SiteDataSeeder` → Carga `site-data.json` → Guarda en DB (tabla `settings`)
3. ✅ `AssetsSeeder` → Carga `assets.json` → Guarda en DB (tabla `assets`)
4. ✅ `AnalyticsSeeder` → Carga `analytics.json` → Guarda en DB (tabla `settings`)
5. ✅ Otros seeders → Contenido (blog, services, etc.)

### Paso 3: Verificar que los Datos se Cargaron

```bash
php artisan tinker
```

```php
// Verificar datos desde DB
echo 'Name: ' . config('site.name') . PHP_EOL;
echo 'Tagline: ' . config('site.tagline') . PHP_EOL;
echo 'URL: ' . config('site.url') . PHP_EOL;
echo 'SEO Title: ' . config('site.seo.title') . PHP_EOL;
echo 'OG Title: ' . config('site.og.title') . PHP_EOL;
echo 'GA Tracking: ' . config('site.google_analytics.tracking_id') . PHP_EOL;
echo 'Development: ' . (config('site.development.enabled') ? 'true' : 'false') . PHP_EOL;
```

### Paso 4: Verificar en la DB Directamente

```sql
-- Ver configuración del sitio en DB
SELECT key, value FROM settings WHERE key LIKE 'site.%' ORDER BY key;

-- Ver assets
SELECT * FROM assets;
```

### Paso 5: Verificar que el Sitio Funciona

1. Abrir el sitio en el navegador
2. Verificar que muestra los datos del nuevo proyecto
3. Verificar que los logos, textos, etc. son del nuevo proyecto

## 🔍 Verificaciones Específicas

### ✅ Datos Básicos del Proyecto
- [ ] `name` se carga desde DB
- [ ] `tagline` se carga desde DB
- [ ] `url` se carga desde DB
- [ ] `author` se carga desde DB
- [ ] `description` se carga desde DB

### ✅ SEO
- [ ] `seo.keywords` se carga desde DB
- [ ] `seo.description` se carga desde DB
- [ ] `seo.title` se carga desde DB
- [ ] `seo.schema.type` se carga desde DB
- [ ] `seo.schema.name` se carga desde DB
- [ ] `seo.schema.url` se carga desde DB

### ✅ Open Graph
- [ ] `og.title` se carga desde DB
- [ ] `og.description` se carga desde DB
- [ ] `og.url` se carga desde DB
- [ ] `og.site_name` se carga desde DB
- [ ] `og.image` se carga desde DB

### ✅ Twitter
- [ ] `twitter.title` se carga desde DB
- [ ] `twitter.description` se carga desde DB
- [ ] `twitter.image` se carga desde DB

### ✅ Otros
- [ ] `contact` se carga desde DB
- [ ] `social_media` se carga desde DB
- [ ] `footer` se carga desde DB
- [ ] `development` se carga desde DB
- [ ] `google_analytics` se carga desde DB
- [ ] Assets se cargan en tabla `assets`

### ✅ Configuración del Sistema
- [ ] Demo activo (`config/cd-system.php`) se actualiza desde `cd-system.json`
- [ ] Módulos activos se actualizan desde `cd-system.json`

## ⚠️ Problemas Comunes

### Problema 1: Los datos no se cargan

**Solución:**
```bash
# Verificar que los JSONs existen
ls -la database/seeders/project-data/

# Ejecutar seeders manualmente
php artisan db:seed --class=SiteDataSeeder
php artisan config:clear
```

### Problema 2: Los datos se cargan pero no se muestran

**Solución:**
```bash
# Limpiar todos los caches
php artisan config:clear
php artisan cache:clear
php artisan view:clear

# Verificar que SiteConfigServiceProvider está registrado
grep "SiteConfigServiceProvider" config/app.php
```

### Problema 3: Los datos del proyecto anterior aparecen

**Solución:**
```bash
# Verificar que cambiaste la DB correctamente
grep DB_DATABASE .env

# Verificar que la nueva DB existe y está vacía
# Ejecutar migrate:fresh para limpiar todo
php artisan migrate:fresh --seed
```

## 🎯 Resultado Esperado

Después de cambiar la DB y ejecutar los seeders:

✅ **Todo el proyecto se adapta automáticamente:**
- Nombre, tagline, URL del nuevo proyecto
- SEO, OG, Twitter del nuevo proyecto
- Contact, social media del nuevo proyecto
- Assets del nuevo proyecto
- Google Analytics del nuevo proyecto
- Demo y módulos activos del nuevo proyecto

✅ **Sin modificar código:**
- No se toca `config/site.php` (solo estructura)
- No se toca código PHP
- Solo se cambia DB y se ejecutan seeders

## 📝 Notas Importantes

1. **Siempre ejecutar `migrate:fresh --seed`** después de cambiar DB
2. **Los JSONs deben estar actualizados** con los datos del nuevo proyecto
3. **Los assets físicos** deben estar en `public/cd-project/assets/`
4. **Limpiar cache** después de cambios: `php artisan config:clear`

## 🚀 Comando Rápido de Verificación

```bash
# Cambiar DB
# Editar .env: DB_DATABASE=nuevo_proyecto_db

# Ejecutar todo
php artisan migrate:fresh --seed && php artisan config:clear

# Verificar
php artisan tinker --execute="echo 'Name: ' . config('site.name') . PHP_EOL; echo 'URL: ' . config('site.url') . PHP_EOL;"
```
