#!/usr/bin/env bash
# Ghost Agency Full Pipeline Runner
# Esegue: scraper -> mockup generator -> mailer -> imposta cron follow-up

set -euo pipefail

# ============================================================
# CONFIGURAZIONE - MODIFICA QUESTI VALORI
# ============================================================
export BREVO_USER='b98ffc001@smtp-brevo.com'
export BREVO_PASS='xsmtpsib-22ca12da6ff016836bfb1b3549e7b81d3d8066643929cd05fe98a967f76e64b9-F1SQOghXxql2fZHO'
export FROM_EMAIL='voipamraj@gmail.com'
export BASE_URL='https://mockup.svoraj.it'
export NETLIFY_TOKEN='nfp_V5y3sMvPreKnu4TMmcwfLqM4PEe18tyz24a9'
# export TWILIO_ACCOUNT_SID=''  # opzionale
# export TWILIO_AUTH_TOKEN=''   # opzionale
# export TWILIO_WHATSAPP_FROM='' # opzionale

# ============================================================
# PATHS
# ============================================================
WORKDIR="/home/ubuntu"
VENV_PYTHON="/home/ubuntu/.hermes/hermes-agent/venv/bin/python"
LOG_DIR="$WORKDIR/logs"

mkdir -p "$LOG_DIR"

# ============================================================
# FUNZIONI
# ============================================================
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}

run_python() {
    local script="$1"
    local logfile="$LOG_DIR/$(basename "$script" .py).log"
    log "Avvio $script..."
    cd "$WORKDIR"
    "$VENV_PYTHON" "$script" 2>&1 | tee -a "$logfile"
    local exit_code=${PIPESTATUS[0]}
    if [ $exit_code -eq 0 ]; then
        log "✅ $script completato"
    else
        log "❌ $script fallito (exit code: $exit_code)"
    fi
    return $exit_code
}

# ============================================================
# MAIN
# ============================================================
log "=== GHOST AGENCY PIPELINE START ==="

# 1. Attiva venv e installa dipendenze
log "Attivazione virtualenv e installazione dipendenze..."
source "/home/ubuntu/.hermes/hermes-agent/venv/bin/activate"
pip install -q beautifulsoup4 jinja2 flask twilio 2>&1 | tail -5

# 2. Installa Netlify CLI se non presente
if ! command -v netlify &> /dev/null; then
    log "Installazione Netlify CLI..."
    npm install -g netlify-cli 2>&1 | tail -3
fi

# 3. Esegui scraper
log "--- STEP 1: SCRAPING GOOGLE MAPS ---"
run_python "$WORKDIR/scraper_maps.py"

# 4. Genera mockup
log "--- STEP 2: GENERAZIONE MOCKUP + DEPLOY NETLIFY ---"
run_python "$WORKDIR/mockup_generator.py"

# 5. Invia email
log "--- STEP 3: INVIO EMAIL VIA BREVO ---"
run_python "$WORKDIR/mail_sender.py"

# 6. Avvia webhook in background (se non già in esecuzione)
log "--- STEP 4: AVVIO WEBHOOK BREVO ---"
if ! pgrep -f "brevo_webhook.py" > /dev/null; then
    nohup "$VENV_PYTHON" "$WORKDIR/brevo_webhook.py" > "$LOG_DIR/brevo_webhook.log" 2>&1 &
    WEBHOOK_PID=$!
    log "Webhook avviato (PID: $WEBHOOK_PID)"
    echo $WEBHOOK_PID > "$WORKDIR/webhook.pid"
else
    log "Webhook già in esecuzione"
fi

# 7. Imposta cron per follow-up
log "--- STEP 5: CONFIGURAZIONE CRON FOLLOW-UP ---"
CRON_JOB="0 10 * * * cd $WORKDIR && $VENV_PYTHON $WORKDIR/followup.py >> $LOG_DIR/followup.log 2>&1"
(crontab -l 2>/dev/null | grep -v "followup.py"; echo "$CRON_JOB") | crontab -
log "Cron follow-up configurato (ogni giorno ore 10:00)"

# 8. Verifica stato finale
log "--- VERIFICA STATO ---"
if [ -f "$WORKDIR/leads.db" ]; then
    echo "Lead nel database:"
    sqlite3 "$WORKDIR/leads.db" "SELECT status, COUNT(*) FROM leads GROUP BY status;" 2>/dev/null || echo "DB vuoto o errore"
fi

if [ -f "$WORKDIR/leads_raw.csv" ]; then
    echo "Lead nel CSV: $(($(wc -l < "$WORKDIR/leads_raw.csv") - 1))"
fi

log "=== GHOST AGENCY PIPELINE COMPLETATO ==="
log "Prossimi passi:"
log "  1. Verifica email in inbox (test con 1-2 lead)"
log "  2. Configura webhook Brevo su: https://TUO_DOMINIO/brevo/webhook"
log "  3. Monitora logs in $LOG_DIR/"
log "  4. Follow-up automatici partiranno da domani alle 10:00"