import os
from pathlib import Path

import mysql.connector
from dotenv import load_dotenv


# Always load .env from same backend folder where db.py exists
BASE_DIR = Path(__file__).resolve().parent
ENV_PATH = BASE_DIR / ".env"
load_dotenv(dotenv_path=ENV_PATH)


def get_required_env(key):
    value = os.getenv(key)

    if value is None or value.strip() == "":
        raise RuntimeError(f"Missing required environment variable: {key}")

    return value.strip()


def get_db_connection():
    return mysql.connector.connect(
        host=get_required_env("DB_HOST"),
        port=int(os.getenv("DB_PORT", "3306")),
        user=get_required_env("DB_USER"),
        password=get_required_env("DB_PASSWORD"),
        database=get_required_env("DB_NAME"),
    )