import pymysql

DB_CONFIG = {
    "host": "localhost",
    "database": "chamados_local",
    "user": "dev",
    "password": "dev",
    "port": 3306,
    "autocommit": False
}

# 🔁 MAPEAMENTOS
CATEGORY_MAP = {
    13: 12,
    14: 11,
    15: 11,
    17: 16,
    22: 21,
    25: 1,
    28: 1,
}

TYPE_MAP = {
    2: 1,  # Assistencia → Solicitação
    4: 1,  # Outro → Solicitação
    5: 1,  # Core → Solicitação
    6: 1,  # Email → Solicitação
    7: 1,  # Chat → Solicitação
    8: 1,  # Assinatura → Solicitação
    9: 1,  # Lupa → Solicitação
    10: 1, # LOG → Solicitação
    11: 1, # Agendamento → Solicitação
    12: 1, # Usuário → Solicitação
    19: 1, # RH → Solicitação
    20: 1, # Crediário → Solicitação
}


def migrate():
    conn = pymysql.connect(**DB_CONFIG)
    cursor = conn.cursor()

    try:
        print("🔄 Atualizando categorias nos tickets...")

        for old_id, new_id in CATEGORY_MAP.items():
            cursor.execute(
                """
                UPDATE tickets
                SET category_id = %s
                WHERE category_id = %s
                """,
                (new_id, old_id)
            )

        print("🔄 Atualizando tipos (se necessário)...")

        for old_id, new_id in TYPE_MAP.items():
            if old_id != new_id:
                cursor.execute(
                    """
                    UPDATE tickets
                    SET types_id = %s
                    WHERE types_id = %s
                    """,
                    (new_id, old_id)
                )

        conn.commit()
        print("✅ Migração concluída com sucesso!")

    except Exception as e:
        conn.rollback()
        print("❌ Erro:", e)

    finally:
        cursor.close()
        conn.close()


if __name__ == "__main__":
    migrate()