"""
Migra los datos del catálogo desde la vieja base SQLite (productos.db)
a la nueva base MySQL. Correr UNA SOLA VEZ, después de crear la base
MySQL en cPanel y cargar las variables MYSQL_* en el entorno.

Uso:
    python migrar_a_mysql.py
"""
import sqlite3

import database as db

SQLITE_PATH = "productos.db"

db.init_db()

conn = sqlite3.connect(SQLITE_PATH)
conn.row_factory = sqlite3.Row

productos = conn.execute("SELECT * FROM productos").fetchall()
usuarios = conn.execute("SELECT * FROM usuarios").fetchall()
conn.close()

for p in productos:
    db.agregar_producto(p["titulo"], p["precio"], p["categoria"], p["link_afiliado"], p["imagen_url"])

with db.get_conn() as mysql_conn:
    with mysql_conn.cursor() as cur:
        for u in usuarios:
            cur.execute(
                "INSERT IGNORE INTO usuarios (chat_id, categoria_preferida, creado_en) VALUES (%s, %s, %s)",
                (u["chat_id"], u["categoria_preferida"], u["creado_en"])
            )

print(f"Migrados {len(productos)} productos y {len(usuarios)} usuarios.")
