import os
import pymysql
from dotenv import load_dotenv

load_dotenv()

DB_CONFIG = {
    'host': os.getenv("DB_HOST"),
    'user': os.getenv("DB_USER"),
    'password': os.getenv("DB_PASSWORD"),
    'database': os.getenv("DB_NAME"),
    'cursorclass': pymysql.cursors.DictCursor
}


def sync_medio_contacto():
    conn = pymysql.connect(**DB_CONFIG)
    try:
        with conn.cursor() as cur:
            sql = """
                SELECT
                    ui.whatsapp_phone,
                    ui.crm_medio_id,
                    ui.medio_de_contacto,
                    le.Medio_llegada
                FROM UserInteraction ui
                JOIN Lead_entrantes le
                  ON le.phone_norm_gen = ui.whatsapp_phone
                WHERE
                    ui.crm_medio_id IS NOT NULL
                    AND ui.crm_medio_id <> 0
                    AND (
                        ui.medio_de_contacto IS NULL
                        OR ui.medio_de_contacto = ''
                    )
                    AND le.Medio_llegada IS NOT NULL
                    AND le.Medio_llegada <> ''
            """
            cur.execute(sql)
            rows = cur.fetchall()

            print(f"🔍 Registros a actualizar: {len(rows)}")

            for r in rows:
                print(
                    f"✏️ {r['whatsapp_phone']} → "
                    f"medio_de_contacto = {r['Medio_llegada']}"
                )

                cur.execute(
                    """
                    UPDATE UserInteraction
                    SET medio_de_contacto = %s
                    WHERE whatsapp_phone = %s
                    """,
                    (r["Medio_llegada"], r["whatsapp_phone"])
                )

        conn.commit()
        print("✅ Actualización finalizada")
    finally:
        conn.close()


if __name__ == "__main__":
    sync_medio_contacto()
