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:
    cur.execute("""
        CREATE TABLE IF NOT EXISTS mfa_reset_tokens (
          id           VARCHAR(36)  NOT NULL DEFAULT (UUID()),
          user_id      VARCHAR(36)  NOT NULL,
          token_hash   VARCHAR(255) NOT NULL,
          requested_by VARCHAR(36)  NOT NULL,
          used         TINYINT(1)   NOT NULL DEFAULT 0,
          expires_at   DATETIME     NOT NULL,
          created_at   DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
          PRIMARY KEY (id),
          UNIQUE KEY uq_token (token_hash),
          INDEX idx_user_id (user_id),
          CONSTRAINT fk_mfart_user FOREIGN KEY (user_id)
            REFERENCES portal_users(id) ON DELETE CASCADE
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    """)
    conn.commit()
    print("[v0] Tabela mfa_reset_tokens criada (ou ja existia).")

conn.close()
print("[v0] Concluido.")
