# 📝 Ejemplos y Casos de Uso

## 🎯 Casos Comunes

### Ejemplo 1: Proyecto Básico (Sin Assets)

**Escenario:** Crear un proyecto básico sin assets, solo con configuración mínima.

```json
{
  "project": {
    "name": "mi-proyecto-basico",
    "repository_url": "https://github.com/LACOMPANIADIGITAL/mi-proyecto-basico.git"
  },
  "identity": {
    "site_name": "Mi Proyecto Básico",
    "site_url": "https://mi-proyecto-basico.com"
  },
  "system": {
    "demo": "demo-construction"
  },
  "assets": {
    "has_assets": false
  }
}
```

**Uso:**
```bash
./scripts/create-complete-project.sh mi-proyecto-basico.json
```

---

### Ejemplo 2: Proyecto con Assets

**Escenario:** Crear un proyecto con assets listos para procesar.

```json
{
  "project": {
    "name": "mi-proyecto-con-assets",
    "repository_url": "https://github.com/LACOMPANIADIGITAL/mi-proyecto-con-assets.git"
  },
  "identity": {
    "site_name": "Mi Proyecto con Assets",
    "site_url": "https://mi-proyecto-con-assets.com",
    "contact_email": "contacto@mi-proyecto-con-assets.com"
  },
  "system": {
    "demo": "demo-law-firm-2"
  },
  "assets": {
    "has_assets": true,
    "assets_path": "/Users/usuario/Desktop/assets-mi-proyecto",
    "update_assets": true,
    "create_backup": true
  }
}
```

**Estructura de assets esperada:**
```
~/Desktop/assets-mi-proyecto/
├── logo.png
├── logo-2.png
├── favicon.ico
└── (otros archivos opcionales)
```

---

### Ejemplo 3: Proyecto con Módulos Personalizados

**Escenario:** Crear un proyecto activando solo ciertos módulos.

```json
{
  "project": {
    "name": "proyecto-modulos",
    "repository_url": "https://github.com/LACOMPANIADIGITAL/proyecto-modulos.git"
  },
  "identity": {
    "site_name": "Proyecto con Módulos",
    "site_url": "https://proyecto-modulos.com"
  },
  "system": {
    "demo": "demo-construction",
    "modules": {
      "blog": true,
      "products": false,
      "services": true,
      "projects": true,
      "gallery": false,
      "newsletter": false,
      "faqs": true,
      "team": false,
      "about": true,
      "contact": true,
      "news": false,
      "references": false
    }
  },
  "assets": {
    "has_assets": false
  }
}
```

---

### Ejemplo 4: Proyecto Completo (Todo Configurado)

**Escenario:** Proyecto con toda la configuración posible.

```json
{
  "project": {
    "name": "proyecto-completo",
    "repository_url": "https://github.com/LACOMPANIADIGITAL/proyecto-completo.git",
    "branch": "cd-system",
    "database": {
      "name": "bewpro-proyecto-completo",
      "is_cpanel": false
    }
  },
  "identity": {
    "site_name": "Proyecto Completo",
    "site_url": "https://proyecto-completo.com",
    "contact_email": "contacto@proyecto-completo.com",
    "seo_description": "Sitio web oficial de Proyecto Completo - La mejor solución para tu negocio",
    "author": "Proyecto Completo"
  },
  "system": {
    "demo": "demo-law-firm-2",
    "modules": {
      "blog": true,
      "products": true,
      "services": true,
      "projects": true,
      "gallery": true,
      "newsletter": true,
      "faqs": true,
      "team": true,
      "about": true,
      "contact": true,
      "news": true,
      "references": true
    }
  },
  "assets": {
    "has_assets": true,
    "assets_path": "/Users/usuario/Desktop/assets-proyecto-completo",
    "update_assets": true,
    "create_backup": true,
    "auto_detect": false
  },
  "options": {
    "skip_push": false,
    "skip_verification": false,
    "verbose": true
  }
}
```

---

## 🎨 Demos Disponibles

### demo-construction
- **Uso:** Sitios de construcción, arquitectura
- **Características:** Portfolio, proyectos, servicios

### demo-law-firm-2
- **Uso:** Despachos legales, abogados
- **Características:** Equipo, casos, servicios legales

### demo-architecture-2
- **Uso:** Arquitectura, diseño
- **Características:** Proyectos, galería, portfolio

### demo-transportation-logistic
- **Uso:** Transporte, logística
- **Características:** Servicios, productos, catálogo

**Ver más demos en:** `public/template/css/demos/`

---

## 💡 Mejores Prácticas

### 1. Nombres de Proyecto

✅ **Buenos:**
- `mi-proyecto`
- `cokecolombres`
- `terashe`
- `proyecto-2024`

❌ **Evitar:**
- `Mi Proyecto` (espacios)
- `mi_proyecto@2024` (caracteres especiales)
- `mi-proyecto/` (barras)

### 2. Configuración de Módulos

✅ **Activar solo lo necesario:**
```json
"modules": {
  "blog": true,        // Si necesitas blog
  "products": true,    // Si vendes productos
  "services": false,   // Si no ofreces servicios
  "contact": true      // Siempre activar contacto
}
```

### 3. Assets

✅ **Preparar assets antes:**
- Organizar en una carpeta
- Nombres correctos: `logo.png`, `logo-2.png`, `favicon.ico`
- Formatos correctos (PNG para logos, ICO para favicon)

### 4. Base de Datos

✅ **En local:**
```json
"database": {
  "name": "bewpro-mi-proyecto",
  "is_cpanel": false
}
```

El script configurará automáticamente:
- `DB_USERNAME=root`
- `DB_PASSWORD=` (vacío)
- `APP_ENV=local`

---

## 🔄 Flujos de Trabajo

### Flujo 1: Proyecto Rápido (Sin Assets)

```bash
# 1. Crear JSON mínimo
cat > proyecto-rapido.json <<EOF
{
  "project": {
    "name": "proyecto-rapido"
  },
  "identity": {
    "site_name": "Proyecto Rápido"
  },
  "system": {
    "demo": "demo-construction"
  },
  "assets": {
    "has_assets": false
  }
}
EOF

# 2. Ejecutar
./scripts/create-complete-project.sh proyecto-rapido.json

# 3. Agregar assets después (si los tienes)
cd ../proyecto-rapido
php artisan project:update-assets ~/Desktop/assets-proyecto-rapido --backup
```

### Flujo 2: Proyecto con Assets desde el Inicio

```bash
# 1. Preparar assets
mkdir -p ~/Desktop/assets-mi-proyecto
# Copiar logos, favicons, etc.

# 2. Crear JSON con assets
cat > mi-proyecto.json <<EOF
{
  "project": {
    "name": "mi-proyecto"
  },
  "identity": {
    "site_name": "Mi Proyecto"
  },
  "system": {
    "demo": "demo-law-firm-2"
  },
  "assets": {
    "has_assets": true,
    "assets_path": "$HOME/Desktop/assets-mi-proyecto"
  }
}
EOF

# 3. Ejecutar
./scripts/create-complete-project.sh mi-proyecto.json
```

### Flujo 3: Proyecto con Configuración Completa

```bash
# 1. Usar template completo
cp scripts/local-project-template.json mi-proyecto.json

# 2. Editar con tus datos
nano mi-proyecto.json

# 3. Ejecutar
./scripts/create-complete-project.sh mi-proyecto.json

# 4. Verificar
cd ../mi-proyecto
php artisan serve
```

---

## 📋 Templates por Tipo de Proyecto

### E-commerce (Productos)

```json
{
  "system": {
    "demo": "demo-transportation-logistic",
    "modules": {
      "products": true,
      "blog": false,
      "services": false,
      "contact": true
    }
  }
}
```

### Portfolio (Proyectos)

```json
{
  "system": {
    "demo": "demo-architecture-2",
    "modules": {
      "projects": true,
      "gallery": true,
      "about": true,
      "contact": true
    }
  }
}
```

### Blog/Noticias

```json
{
  "system": {
    "demo": "demo-construction",
    "modules": {
      "blog": true,
      "news": true,
      "newsletter": true,
      "contact": true
    }
  }
}
```

### Servicios Profesionales

```json
{
  "system": {
    "demo": "demo-law-firm-2",
    "modules": {
      "services": true,
      "team": true,
      "about": true,
      "contact": true,
      "faqs": true
    }
  }
}
```

---

## 🆘 Solución de Problemas Comunes

### Error: "El nombre del proyecto solo puede contener..."

**Solución:** Usa solo letras, números, guiones y guiones bajos:
- ✅ `mi-proyecto`
- ❌ `Mi Proyecto` (espacios)
- ❌ `mi@proyecto` (caracteres especiales)

### Error: "Assets no encontrados"

**Solución:** Verifica la ruta:
- Usa ruta absoluta: `/Users/usuario/Desktop/assets`
- O ruta con `~`: `~/Desktop/assets`
- Verifica que la carpeta exista

### Error: "Base de datos no existe"

**Solución:** El script crea la BD automáticamente, pero verifica:
- MySQL está corriendo
- Credenciales correctas en `.env`
- Permisos de usuario MySQL

---

**Siguiente:** [Troubleshooting](./05-troubleshooting.md)

