# diag_buscar_numero.py  -  Rastrea un telefono en cartera_junta: como y donde se cuenta.
# Ejecutar en backend/:  python diag_buscar_numero.py
import os, requests
from dotenv import load_dotenv
load_dotenv()

TELEFONO = "18099166706"   # <-- numero a buscar (tal cual y normalizado)

URL = os.getenv("CARTERA_URL") or os.getenv("SUPABASE_PAUTA_URL", "")
KEY = os.getenv("CARTERA_KEY") or os.getenv("SUPABASE_PAUTA_KEY", "")
T   = os.getenv("SUPABASE_TABLA_CARTERA", "cartera_junta")
HEAD = {"apikey": KEY, "Authorization": f"Bearer {KEY}"}

def _norm(v):
    """Misma normalizacion de la cartera: quita +51/+ y el 51 inicial de celulares PE."""
    s = str(v or "")
    for x in ("+51","+"," ","-","(",")"): s=s.replace(x,"")
    s=s.strip()
    if s.isdigit() and 51900000000 <= int(s) <= 51999999999: s=s[2:]
    return s

# variantes a buscar: el numero tal cual y su version normalizada
variantes = {TELEFONO, _norm(TELEFONO)}
print(f"Buscando telefono: {TELEFONO}  (variantes: {variantes})\n")

encontrado = False
for tel in variantes:
    r = requests.get(f"{URL}/rest/v1/{T}",
                     params={"select":"*", "telefono": f"eq.{tel}"},
                     headers=HEAD, timeout=60)
    r.raise_for_status()
    filas = r.json()
    if not filas:
        continue
    encontrado = True
    print(f"=== {len(filas)} fila(s) con telefono = {tel} ===")
    for i,f in enumerate(filas,1):
        print(f"\n  Fila {i}:")
        for campo in ["telefono","es_origen","canal","origen_base","asesor","sede",
                      "programa","codigo","fecha_creada","solo_contacto"]:
            if campo in f:
                print(f"     {campo:14}= {f.get(campo)}")
        # mostrar cualquier otro campo extra
        otros=[k for k in f.keys() if k not in
               ("telefono","es_origen","canal","origen_base","asesor","sede",
                "programa","codigo","fecha_creada","solo_contacto")]
        for k in otros:
            print(f"     {k:14}= {f.get(k)}")

if not encontrado:
    print("El telefono NO aparece en cartera_junta (ni tal cual ni normalizado).")
    print("=> No se esta contando en ninguna pauta/origen de la cartera.")
else:
    print("\n--- Como leer esto ---")
    print("  es_origen=SI  -> esta fila es la que CUENTA como origen del telefono.")
    print("  canal         -> COPITO / PAUTA_WSP / WEB_FORMULARIO / etc.")
    print("  origen_base   -> POSTGRE (Chatwoot) o SUPABASE (tu Excel).")
    print("  codigo        -> la pauta/campania a la que esta asociado (si tiene).")
