Actualizar backend/data_manager_v2.py
This commit is contained in:
@@ -106,12 +106,50 @@ CAMPANIAS = [
|
|||||||
('⛱️ Me interesa el programa de Refrigeración comercial', 'TERC', '266', 'Lima', 'Sabado', 'Pauta_wsp', '2026-05-15', '2026-08-30'),
|
('⛱️ Me interesa el programa de Refrigeración comercial', 'TERC', '266', 'Lima', 'Sabado', 'Pauta_wsp', '2026-05-15', '2026-08-30'),
|
||||||
('¡Hola! Vengo de su web, quiero saber', 'TEAC', '0', 'Lima', '-', 'Web_Whatsapp', '2025-11-01', '2026-12-31'),
|
('¡Hola! Vengo de su web, quiero saber', 'TEAC', '0', 'Lima', '-', 'Web_Whatsapp', '2025-11-01', '2026-12-31'),
|
||||||
]
|
]
|
||||||
|
# Cache en memoria de las campañas leídas de Supabase
|
||||||
|
_CAMPANIAS_CACHE = None
|
||||||
|
|
||||||
|
|
||||||
|
def _campanias_supabase():
|
||||||
|
"""Lee las campañas desde la tabla 'campanias' de Supabase.
|
||||||
|
Si falla o está vacía, cae a la lista hardcodeada CAMPANIAS como respaldo."""
|
||||||
|
global _CAMPANIAS_CACHE
|
||||||
|
if _CAMPANIAS_CACHE is not None:
|
||||||
|
return _CAMPANIAS_CACHE
|
||||||
|
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_CAMPANIAS", "campanias")
|
||||||
|
out = []
|
||||||
|
if url and key:
|
||||||
|
try:
|
||||||
|
r = requests.get(
|
||||||
|
f"{url}/rest/v1/{t}",
|
||||||
|
params={"select": "frase_busqueda,cargo,codigo,sede,dia,origen,fecha_inicio,fecha_fin"},
|
||||||
|
headers={"apikey": key, "Authorization": f"Bearer {key}"}, timeout=30)
|
||||||
|
r.raise_for_status()
|
||||||
|
for row in r.json():
|
||||||
|
frase = str(row.get("frase_busqueda") or "")
|
||||||
|
if not frase:
|
||||||
|
continue
|
||||||
|
out.append((
|
||||||
|
frase, str(row.get("cargo") or ""), str(row.get("codigo") or ""),
|
||||||
|
str(row.get("sede") or ""), str(row.get("dia") or ""),
|
||||||
|
str(row.get("origen") or ""),
|
||||||
|
str(row.get("fecha_inicio") or "")[:10],
|
||||||
|
str(row.get("fecha_fin") or "")[:10],
|
||||||
|
))
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[_campanias_supabase] {e}")
|
||||||
|
if not out:
|
||||||
|
print("[_campanias_supabase] sin datos de Supabase -> uso lista hardcodeada")
|
||||||
|
out = list(CAMPANIAS)
|
||||||
|
_CAMPANIAS_CACHE = out
|
||||||
|
return out
|
||||||
|
|
||||||
def _values_sql():
|
def _values_sql():
|
||||||
"""Construye el bloque VALUES (...) del mapa de campañas para el JOIN."""
|
"""Construye el bloque VALUES (...) del mapa de campañas para el JOIN."""
|
||||||
filas = []
|
filas = []
|
||||||
for frase, cargo, codigo, sede, dia, origen, fi, ff in CAMPANIAS:
|
for frase, cargo, codigo, sede, dia, origen, fi, ff in _campanias_supabase():
|
||||||
f = frase.replace("'", "''")
|
f = frase.replace("'", "''")
|
||||||
filas.append(f"('{f}','{cargo}','{codigo}','{sede}','{dia}','{origen}','{fi}','{ff}')")
|
filas.append(f"('{f}','{cargo}','{codigo}','{sede}','{dia}','{origen}','{fi}','{ff}')")
|
||||||
return ",\n".join(filas)
|
return ",\n".join(filas)
|
||||||
|
|||||||
Reference in New Issue
Block a user