# ver_campanias.py  —  Muestra en pantalla TODA la tabla campanias de Supabase.
# Ejecutar dentro de backend/:  python ver_campanias.py
import os, requests
from dotenv import load_dotenv
load_dotenv()

URL = os.getenv("CARTERA_URL") or os.getenv("SUPABASE_PAUTA_URL", "")
KEY = os.getenv("CARTERA_KEY") or os.getenv("SUPABASE_PAUTA_KEY", "")
TABLA = os.getenv("SUPABASE_TABLA_CAMPANIAS", "campanias")
HEAD = {"apikey": KEY, "Authorization": f"Bearer {KEY}"}

assert URL and KEY, "Falta CARTERA_URL / CARTERA_KEY en .env"

def traer_todo():
    filas, paso, desde = [], 1000, 0
    while True:
        hdr = dict(HEAD)
        hdr["Range-Unit"] = "items"
        hdr["Range"] = f"{desde}-{desde + paso - 1}"
        r = requests.get(f"{URL}/rest/v1/{TABLA}",
                         params={"select": "*", "order": "codigo"},
                         headers=hdr, timeout=60)
        r.raise_for_status()
        data = r.json()
        if not data:
            break
        filas.extend(data)
        desde += len(data)
        if len(data) < paso:
            break
    return filas

filas = traer_todo()
print(f"\nTotal campanias: {len(filas)}\n")

if not filas:
    print("Sin datos. Revisa CARTERA_URL / CARTERA_KEY en .env")
    raise SystemExit

# columnas
cols = ["frase_busqueda", "cargo", "codigo", "sede", "dia", "origen", "fecha_inicio", "fecha_fin"]
# por si hay columnas extra
for f in filas:
    for k in f.keys():
        if k not in cols and k != "id":
            cols.append(k)

# imprime cada campania en pantalla
for i, f in enumerate(filas, 1):
    partes = []
    for c in cols:
        v = f.get(c, "")
        v = "" if v is None else str(v)
        partes.append(f"{c}={v}")
    print(f"{i:3}. " + " | ".join(partes))
