import subprocess, sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "pymysql", "--quiet"])

import pymysql
import os

DB_CONFIG = {
    "host":     os.environ["MYSQL_HOST"],
    "port":     int(os.environ.get("MYSQL_PORT", 3306)),
    "user":     os.environ["MYSQL_USER"],
    "password": os.environ["MYSQL_PASSWORD"],
    "database": os.environ["MYSQL_DATABASE"],
    "charset":  "utf8mb4",
}

conn = pymysql.connect(**DB_CONFIG)
print("[v0] Conectado ao banco MySQL.")

with conn.cursor() as cur:
    # Corrige o role do admin global
    cur.execute("""
        UPDATE portal_users
        SET role = 'admin_global', status = 'active', tenant_id = NULL
        WHERE email = 'admin@admanager.local'
    """)
    affected = cur.rowcount
    conn.commit()
    print(f"[v0] portal_users atualizados: {affected} linha(s)")

    # Invalida todas as sessoes ativas desse usuario para forcar novo login
    cur.execute("""
        DELETE FROM portal_sessions
        WHERE user_id IN (
            SELECT id FROM portal_users WHERE email = 'admin@admanager.local'
        )
    """)
    sessions = cur.rowcount
    conn.commit()
    print(f"[v0] portal_sessions removidas: {sessions} linha(s)")

    # Confirma o estado atual do usuario
    cur.execute("SELECT id, name, email, role, status, tenant_id FROM portal_users WHERE email = 'admin@admanager.local'")
    row = cur.fetchone()
    print(f"\n[v0] Estado atual do admin:")
    print(f"[v0]   ID        : {row[0]}")
    print(f"[v0]   Nome      : {row[1]}")
    print(f"[v0]   Email     : {row[2]}")
    print(f"[v0]   Role      : {row[3]}")
    print(f"[v0]   Status    : {row[4]}")
    print(f"[v0]   Tenant ID : {row[5]}")

conn.close()
print("\n[v0] Pronto! Faca login novamente com admin@admanager.local / Admin@123")
