# Migrar Blog y FAQs desde la web anterior (phpMyAdmin)

Objetivo: exportar los datos de la base de datos antigua y volcarlos en los JSON del proyecto para poblar Blog y FAQs con `php artisan db:seed`.

---

## 1. Exportar desde phpMyAdmin

### Opción A: Exportar en CSV (recomendado para revisar y mapear)

1. Entra en **phpMyAdmin** con la base de datos de la **web anterior**.
2. En el panel izquierdo, selecciona la base de datos.
3. Para **cada tabla** que necesitemos:
   - Clic en el nombre de la tabla.
   - Pestaña **Exportar**.
   - Formato: **CSV**.
   - Opciones: dejar "Separador de campos: coma" y "Columnas con nombres en la primera fila".
   - Ejecutar y guardar el archivo.

**Tablas a exportar:**

| Contenido | Posibles nombres de tabla (web antigua) | En cd-system |
|-----------|-----------------------------------------|--------------|
| Categorías del blog | `post_categories`, `categories`, `blog_categories` | `post_categories` |
| Entradas del blog | `posts`, `blog_posts`, `articles` | `posts` |
| Categorías de FAQs | `faqs_categories`, `faq_categories`, `faq_categories` | `faqs_categories` |
| Preguntas FAQs | `faqs`, `faq`, `preguntas_frecuentes` | `faqs` |

Si no estás seguro del nombre, en phpMyAdmin revisa la lista de tablas de esa base de datos y exporta las que parezcan relacionadas con blog/posts y faqs.

### Opción B: Exportar en SQL (solo tablas)

1. En phpMyAdmin → **Exportar** (a nivel de base de datos).
2. Método: **Personalizado**.
3. En "Tablas", marca solo las tablas de blog y faqs (las que correspondan).
4. Formato: **SQL**.
5. Guardar. Luego puedes abrir el `.sql` y copiar los `INSERT INTO ...` para que podamos ver la estructura de columnas y los valores.

---

## 2. Formato JSON que usa cd-system

Cuando tengas la data exportada (CSV o el contenido de los INSERT), se rellenan estos archivos:

- **Blog:** `database/seeders/project-data/blog.json`
- **FAQs:** `database/seeders/project-data/faqs.json`

### Estructura de `blog.json`

```json
{
  "post_categories": [
    {
      "name": "Nombre de la categoría",
      "slug": "nombre-de-la-categoria",
      "description": "Opcional."
    }
  ],
  "posts": [
    {
      "title": "Título del post",
      "slug": "titulo-del-post",
      "description": "Resumen o meta descripción",
      "content": "<p>Contenido HTML del artículo...</p>",
      "category_slug": "slug-de-la-categoria",
      "header": "https://url-imagen-destacada.jpg",
      "status": "Published",
      "type": "post"
    }
  ]
}
```

- **slug:** único por post/categoría; sin espacios, minúsculas, guiones.
- **category_slug:** debe coincidir con el `slug` de una entrada en `post_categories`.
- **header:** URL pública de la imagen destacada (el seeder puede subirla a Cloudinary). Si ya tienes URL de Cloudinary: `header_secure_url` y opcionalmente `header_public_id`.
- **status:** normalmente `"Published"`.

### Estructura de `faqs.json`

```json
{
  "faqs_categories": [
    {
      "name": "Nombre categoría",
      "slug": "nombre-categoria",
      "description": "Opcional."
    }
  ],
  "faqs": [
    {
      "question": "¿Pregunta?",
      "answer": "Respuesta en texto o HTML.",
      "category_slug": "nombre-categoria",
      "order": 1,
      "is_featured": false
    }
  ]
}
```

- **category_slug:** debe coincidir con el `slug` de una entrada en `faqs_categories`.
- **order:** número para ordenar (1, 2, 3...).

---

## 3. Qué enviar para que rellene los JSON

Puedes hacer una de estas dos cosas:

1. **Pegar aquí el contenido de los CSV** (o las filas relevantes): una tabla por mensaje (ej. "Tabla posts", "Tabla post_categories", etc.), con la **primera fila como cabecera** para saber nombres de columnas.
2. **Pegar los `INSERT INTO`** de la exportación SQL de esas tablas, para ver nombres de columnas y valores.

Con eso se puede mapear:

- Columnas antiguas → campos del JSON.
- Crear `slug` a partir de título/nombre si no existe.
- Asignar cada post a una categoría por nombre o id (traduciendo a `category_slug`).
- Dejar listos `blog.json` y `faqs.json` para que ejecutes:

```bash
php artisan db:seed --class=BlogSeeder
php artisan db:seed --class=FaqsSeeder
```

---

## 4. Resumen de pasos

1. Exportar desde phpMyAdmin (CSV o SQL) las tablas de **blog** (categorías + posts) y **faqs** (categorías + preguntas).
2. Enviar aquí el contenido (CSV con cabecera o INSERT) de cada tabla.
3. Se generan/actualizan `blog.json` y `faqs.json` con tu contenido.
4. Ejecutar los seeders y comprobar en la web.

Si la web antigua tiene nombres de tablas o columnas distintos, no importa: con el contenido exportado se hace el mapeo a este formato.
