Initial commit - dashboard leads
This commit is contained in:
45
backend/diag_fecha_contacto.py
Normal file
45
backend/diag_fecha_contacto.py
Normal file
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
Diagnostico: para una lista de telefonos, muestra la fecha de creacion del
|
||||
contacto (contacts.created_at) y la fecha del primer/ultimo mensaje.
|
||||
"""
|
||||
import os
|
||||
import psycopg2
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
PG_HOST = os.getenv("PG_HOST")
|
||||
PG_DB = os.getenv("PG_DATABASE") or os.getenv("PG_DB")
|
||||
PG_USER = os.getenv("PG_USER")
|
||||
PG_PASS = os.getenv("PG_PASSWORD") or os.getenv("PG_PASS")
|
||||
PG_PORT = os.getenv("PG_PORT", "5432")
|
||||
|
||||
TELEFONOS = ["948400152", "953932854", "959735396", "972132288"]
|
||||
|
||||
conn = psycopg2.connect(host=PG_HOST, dbname=PG_DB, user=PG_USER,
|
||||
password=PG_PASS, port=PG_PORT, connect_timeout=30)
|
||||
cur = conn.cursor()
|
||||
|
||||
print(f"{'TELEFONO':14} {'phone_number':16} {'CONTACTO_CREADO':22} {'1ER_MSJE':22} {'ULT_MSJE':22}")
|
||||
print("-" * 100)
|
||||
|
||||
for tel in TELEFONOS:
|
||||
cur.execute("""
|
||||
SELECT c.phone_number, c.created_at,
|
||||
MIN(m.created_at) AS primer_msje,
|
||||
MAX(m.created_at) AS ultimo_msje
|
||||
FROM contacts c
|
||||
LEFT JOIN conversations cv ON cv.contact_id = c.id
|
||||
LEFT JOIN messages m ON m.conversation_id = cv.id
|
||||
WHERE REPLACE(REPLACE(c.phone_number, '+51',''), '+','') LIKE %s
|
||||
GROUP BY c.phone_number, c.created_at
|
||||
ORDER BY c.created_at ASC
|
||||
""", (f"%{tel}",))
|
||||
rows = cur.fetchall()
|
||||
if not rows:
|
||||
print(f"{tel:14} {'(no encontrado)':16}")
|
||||
continue
|
||||
for ph, creado, primer, ultimo in rows:
|
||||
print(f"{tel:14} {str(ph):16} {str(creado):22} {str(primer):22} {str(ultimo):22}")
|
||||
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user