Files
dashboard-leads/backend/diag_buscar_numero.py
2026-08-18 11:48:08 -05:00

59 lines
2.5 KiB
Python

# 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).")