# 🧪 Guía: Probar Proceso Completo de Creación de Proyecto

## 📋 Preparación

### 1. Verificar que cd-system esté listo

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system

# Verificar sistema
./scripts/verify-setup.sh

# Verificar que estás en la rama cd-system
git branch
# Debe mostrar: * cd-system

# Verificar que el directorio local será detectado
ls -la .. | grep cd-system
# Debe mostrar el directorio cd-system
```

### 2. Preparar JSON de configuración

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system

# Copiar plantilla
cp scripts/project-config.example.json test-proyecto.json

# Editar con tus datos
nano test-proyecto.json
# o
code test-proyecto.json
```

**Ejemplo mínimo de JSON:**

```json
{
  "project": {
    "name": "test-proyecto",
    "repository_url": "https://github.com/LACOMPANIADIGITAL/test-proyecto.git"
  },
  "identity": {
    "site_name": "Test Proyecto",
    "site_url": "www.test-proyecto.com",
    "contact_email": "contacto@test-proyecto.com"
  }
}
```

---

## 🚀 Ejecutar Prueba

### Paso 1: Crear repositorio en GitHub

1. Crear repositorio vacío en GitHub: `test-proyecto`
2. Copiar URL: `https://github.com/LACOMPANIADIGITAL/test-proyecto.git`

### Paso 2: Ejecutar script

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system

# Ejecutar creación completa
./scripts/create-complete-project.sh test-proyecto.json
```

### Paso 3: Observar el proceso

El script mostrará:

```
✅ Directorio local de cd-system detectado: /Applications/XAMPP/xamppfiles/htdocs/cd-system
   Usando fuente local (más rápido que descargar desde GitHub)

[STEP] 3. Obteniendo rama cd-system desde CD-System local...
   (Instantáneo, sin descarga desde internet)
✅ Rama cd-system obtenida desde local (instantáneo)
```

**Nota**: Si no detecta el directorio local, usará GitHub automáticamente.

---

## ✅ Verificaciones Post-Creación

### 1. Verificar que se usó fuente local

```bash
cd /Applications/XAMPP/xamppfiles/htdocs/test-proyecto

# Ver remotes (ya no debería estar el temporal)
git remote -v
# Debe mostrar solo: origin → tu repositorio

# Ver historial (debe ser idéntico a cd-system)
git log --oneline | head -10
```

### 2. Verificar rama y protecciones

```bash
# Verificar rama
git branch
# Debe mostrar: * cd-system

# Verificar .gitattributes
grep -c "merge=ours" .gitattributes
# Debe ser > 0 (típicamente 11)
```

### 3. Verificar personalización de identidad

```bash
# Verificar config/site.php
grep -A 2 "'name' =>" config/site.php | head -3
# Debe mostrar tu nombre del sitio

# Verificar email
grep "'email' =>" config/site.php | head -1
# Debe mostrar tu email de contacto
```

### 4. Verificar configuración del proyecto

```bash
# Verificar .env
grep "APP_NAME" .env
# Debe mostrar: APP_NAME="test-proyecto"

# Verificar que composer install se ejecutó
ls -la vendor/ | head -5
# Debe mostrar directorio vendor con dependencias
```

### 5. Probar el proyecto

```bash
# Iniciar servidor
php artisan serve

# Acceder a: http://127.0.0.1:8000
# Credenciales: admin@test-proyecto.com / password
```

---

## 📊 Comparación: Local vs GitHub

### Con directorio local (optimizado):
- ⚡ **Tiempo de clonado**: Instantáneo (< 1 segundo)
- 🌐 **Internet**: No requiere
- ✅ **Resultado**: Idéntico

### Sin directorio local (fallback):
- 🐌 **Tiempo de clonado**: 2-5 minutos (depende de internet)
- 🌐 **Internet**: Requiere conexión
- ✅ **Resultado**: Idéntico

---

## 🎯 Checklist de Prueba

- [ ] Script detecta directorio local de cd-system
- [ ] Muestra mensaje "Usando fuente local"
- [ ] Fetch es instantáneo (no descarga desde internet)
- [ ] Rama cd-system creada correctamente
- [ ] `.gitattributes` con protecciones configurado
- [ ] `config/site.php` personalizado con identidad
- [ ] Dependencias instaladas (vendor existe)
- [ ] `.env` configurado correctamente
- [ ] Migraciones ejecutadas
- [ ] Proyecto funciona (`php artisan serve`)

---

## 🆘 Solución de Problemas

### No detecta directorio local

**Verificar:**
```bash
# 1. Que exista en el directorio padre
ls -la /Applications/XAMPP/xamppfiles/htdocs/cd-system

# 2. Que sea un repo Git
cd /Applications/XAMPP/xamppfiles/htdocs/cd-system
git status

# 3. Que tenga la rama cd-system
git branch | grep cd-system
```

**Solución:**
- Asegurarse de estar en la rama `cd-system` en el directorio local
- Verificar permisos de lectura del directorio

### Error durante fetch local

El script automáticamente intentará con GitHub como fallback. Si ambos fallan:
- Verificar conexión a internet
- Verificar permisos de Git
- Verificar que el repositorio destino existe en GitHub

---

## 📝 Notas

1. **El resultado es idéntico**: Usar local o GitHub produce el mismo resultado
2. **Detección automática**: No necesitas configurar nada
3. **Fallback inteligente**: Si local falla, usa GitHub automáticamente
4. **Transparente**: El proceso funciona igual, solo más rápido

---

## 🎉 Resultado Esperado

Después de la prueba, deberías tener:

- ✅ Proyecto completamente configurado
- ✅ Identidad personalizada
- ✅ Sistema funcionando
- ✅ Todo listo para desarrollo

**Tiempo total**: ~2-3 minutos (vs 5-10 minutos descargando desde GitHub)

---

**Última actualización**: Proceso optimizado con uso de directorio local

