#!/bin/bash

API_KEY=$(grep "define('SENDGRID_API_KEY'" /home/linder8/marketing.linderlake.com/01-config.php | grep -oP "SG\.[^']+")
DB_USER="linder8_sendgrid_marketing"
DB_PASS="Jesdam1305@"
DB_NAME="linder8_sendgrid_marketing"
COMPANY="LINDERLAKE"
CSV="/tmp/sendgrid_activos.csv"

echo ""
echo "╔════════════════════════════════════════════════════════════╗"
echo "║  IMPORTAR 76K CONTACTOS ACTIVOS                            ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo ""

# Limpiar
rm -f "$CSV"
echo "email,first_name,last_name" > "$CSV"

# Limpiar tabla
mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" << EOF > /dev/null 2>&1
DELETE FROM contacts WHERE company_name='$COMPANY';
EOF

echo "✓ Tabla limpiada"
echo ""
echo "Descargando 76K contactos de SendGrid..."
echo ""

PAGE=1
TOTAL=0

while true; do
  echo "Página $PAGE..."
  
  URL="https://api.sendgrid.com/v3/marketing/contacts?page_size=500"
  
  if [ $PAGE -gt 1 ]; then
    OFFSET=$((($PAGE - 1) * 500))
    # SendGrid usa page_token, no offset. Hacemos curl simple por página
  fi
  
  RESPONSE=$(curl -s -H "Authorization: Bearer $API_KEY" "$URL")
  
  COUNT=$(echo "$RESPONSE" | jq '.result | length' 2>/dev/null)
  
  if [ "$COUNT" -eq 0 ] || [ -z "$COUNT" ]; then
    break
  fi
  
  # Extraer solo ACTIVOS a CSV
  echo "$RESPONSE" | jq -r '.result[] | select(.request_status != "unsubscribed") | [.email, .first_name // "", .last_name // ""] | @csv' >> "$CSV" 2>/dev/null
  
  LINES=$(tail -n +2 "$CSV" | wc -l)
  echo "  $LINES contactos acumulados"
  
  # Obtener token para siguiente página
  PAGE_TOKEN=$(echo "$RESPONSE" | jq -r '._metadata.next // empty' 2>/dev/null)
  
  if [ -z "$PAGE_TOKEN" ]; then
    break
  fi
  
  PAGE=$((PAGE + 1))
  sleep 1
done

echo ""
echo "Importando CSV a MySQL..."

# Importar CSV
mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" << EOFMYSQL
LOAD DATA LOCAL INFILE '$CSV'
INTO TABLE contacts
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(email, first_name, last_name)
SET company_name = '$COMPANY',
    status = 'active',
    unsubscribed = 0,
    created_at = NOW();
EOFMYSQL

# Verificar
COUNT=$(mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" -se "SELECT COUNT(*) FROM contacts WHERE company_name='$COMPANY';")

echo ""
echo "╔════════════════════════════════════════════════════════════╗"
echo "║              ✅ IMPORTACIÓN COMPLETADA                    ║"
echo "║  Total: $COUNT contactos activos                               ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo ""

