#!/bin/bash

# Script para extraer los IDs de los artículos de Joomla desde la BD

cd ~/joomla-migration/analisis-cartas

echo "🔍 Extrayendo IDs de artículos de la base de datos..."

# Función para extraer ID del alias (slug)
extract_id_from_url() {
    echo "$1" | grep -oP '/item/\K[0-9]+'
}

# Crear archivo con todos los IDs
> todos_los_ids.txt

for i in 1 2 3 4; do
    echo "Procesando CARTA $i..."
    
    # Extraer IDs de artículos
    while IFS= read -r url; do
        id=$(extract_id_from_url "$url")
        if [ -n "$id" ]; then
            echo "$id" >> todos_los_ids.txt
        fi
    done < carta${i}_articulos.txt
    
    # Extraer IDs de multimedia
    while IFS= read -r url; do
        id=$(extract_id_from_url "$url")
        if [ -n "$id" ]; then
            echo "$id" >> todos_los_ids.txt
        fi
    done < carta${i}_multimedia.txt
done

# Eliminar duplicados y ordenar
sort -u -n todos_los_ids.txt > ids_unicos.txt

echo "✅ Total de artículos únicos: $(wc -l < ids_unicos.txt)"

# Crear consulta SQL para exportar estos artículos
cat > consulta_exportar.sql <<'EOF'
-- Exportar artículos seleccionados de Joomla
-- Artículos de contenido
SELECT 
    c.id,
    c.title,
    c.alias,
    c.introtext,
    c.fulltext,
    c.created,
    c.created_by,
    c.catid,
    cat.title as category_title,
    c.state,
    c.publish_up,
    c.publish_down,
    c.images,
    c.urls,
    c.attribs,
    c.metadata,
    c.metakey,
    c.metadesc,
    c.language
FROM ew4r_content c
LEFT JOIN ew4r_categories cat ON c.catid = cat.id
WHERE c.id IN (
EOF

# Agregar los IDs
ids=$(cat ids_unicos.txt | tr '\n' ',' | sed 's/,$//')
echo "    $ids" >> consulta_exportar.sql

cat >> consulta_exportar.sql <<'EOF'
)
ORDER BY c.created DESC;

-- Exportar categorías relacionadas
SELECT DISTINCT
    cat.id,
    cat.parent_id,
    cat.title,
    cat.alias,
    cat.description,
    cat.path
FROM ew4r_categories cat
INNER JOIN ew4r_content c ON cat.id = c.catid
WHERE c.id IN (
EOF

echo "    $ids" >> consulta_exportar.sql

cat >> consulta_exportar.sql <<'EOF'
)
ORDER BY cat.lft;
EOF

echo "📄 Consulta SQL creada: consulta_exportar.sql"
