# Comportamiento del Comando services:refresh

## Análisis del Comando

### Con `--clean` (Limpieza Completa)

```bash
php artisan services:refresh --clean
```

**Lo que SÍ limpia:**
- ✅ **Servicios (Service)** - Elimina TODOS los servicios de la base de datos
- ✅ **Categorías (ServiceCategory)** - Elimina TODAS las categorías de la base de datos

**Luego recrea:**
- ✅ Categorías desde `ServiceCategoriesSeeder`
- ✅ Servicios desde `services.json`

### Sin `--clean` (Actualización Incremental)

```bash
php artisan services:refresh
```

**Comportamiento:**
- ✅ Mantiene los servicios existentes
- ✅ Crea nuevos servicios del JSON
- ✅ Actualiza servicios existentes (por slug)
- ✅ Actualiza/crea categorías del seeder

## Flujo del Comando

```
1. Contar servicios actuales
   ↓
2. Si --clean: 
   - Eliminar TODOS los servicios
   - Eliminar TODAS las categorías
   ↓
3. Ejecutar ServiceCategoriesSeeder
   - Crea las categorías desde cero
   - Usa updateOrCreate (pero como se limpiaron, crea nuevas)
   ↓
4. Ejecutar ProjectsServicesSeeder
   - Lee services.json
   - Usa updateOrCreate por slug
   - Asocia servicios a categorías
```

## Categorías Actuales en el Sistema

El `ServiceCategoriesSeeder` define estas categorías (en inglés):

1. **Legal Services** (slug: `legal-services`)
2. **Business Law** (slug: `business-law`)
3. **Family Law** (slug: `family-law`)
4. **Criminal Law** (slug: `criminal-law`)

## Mapeo de Servicios a Categorías

El `ProjectsServicesSeeder` tiene un mapeo que asigna servicios a categorías:

```php
$categoryMap = [
    'family-law' => 'family-law',
    'business-law' => 'business-law',
    'criminal-law' => 'criminal-law',
    'civil-law' => 'legal-services',
    'labor-law' => 'legal-services',
    'real-estate-law' => 'legal-services',
    'corporate-law' => 'business-law',
    'immigration-law' => 'legal-services',
    // ... más mapeos
];
```

## ⚠️ Problema Identificado

**Situación actual:**
- Los servicios que creamos están en **español** (Derecho Administrativo, Derecho Civil, etc.)
- Las categorías del seeder están en **inglés** (Legal Services, Business Law, etc.)
- El mapeo en `ProjectsServicesSeeder` usa slugs en inglés

**Resultado:**
- Los servicios nuevos (con slugs en español) no coincidirán con el mapeo
- Se asignarán a la categoría por defecto o a "legal-services"

## Soluciones Posibles

### Opción 1: Actualizar el Mapeo en ProjectsServicesSeeder

Agregar mapeo para los nuevos slugs en español:

```php
$categoryMap = [
    'derecho-administrativo' => 'legal-services',
    'derecho-civil' => 'legal-services',
    'derecho-comercial' => 'business-law',
    'derecho-laboral' => 'legal-services',
    'derecho-societario' => 'business-law',
    'derecho-bancario' => 'legal-services',
    'recupero-activos' => 'legal-services',
    // ... mantener mapeos existentes
];
```

### Opción 2: Actualizar ServiceCategoriesSeeder

Crear categorías en español que coincidan con las áreas de actuación:

```php
$categories = [
    [
        'name' => 'Derecho Administrativo',
        'slug' => 'derecho-administrativo',
        // ...
    ],
    [
        'name' => 'Derecho Civil',
        'slug' => 'derecho-civil',
        // ...
    ],
    // ... etc
];
```

### ✅ Opción 3: Limpiar Categorías También (IMPLEMENTADO)

**El comando ahora limpia categorías también con `--clean`:**

```php
if ($this->option('clean')) {
    // Eliminar servicios primero (por la relación foreign key)
    Service::query()->delete();
    
    // Eliminar categorías
    ServiceCategory::query()->delete();
}
```

**Comportamiento:**
- Con `--clean`: Limpia servicios Y categorías, luego recrea todo desde cero
- Sin `--clean`: Actualiza incrementalmente (mantiene datos existentes)

## Recomendación

Para un proyecto desde cero (como Colombres Garmendia), recomiendo:

1. **Actualizar `ServiceCategoriesSeeder`** con categorías en español
2. **Actualizar el mapeo** en `ProjectsServicesSeeder` para los nuevos slugs
3. **Opcional:** Modificar el comando para limpiar categorías también con `--clean`

---

**Última actualización:** $(date +%Y-%m-%d)

