import os


def load_env(path=".env"):
    if not os.path.exists(path):
        return

    with open(path, "r", encoding="utf-8") as env_file:
        for line in env_file:
            line = line.strip()
            if not line or line.startswith("#") or "=" not in line:
                continue

            key, value = line.split("=", 1)
            key = key.strip()
            value = value.strip().strip('"').strip("'")
            os.environ.setdefault(key, value)


def require_env(name):
    value = os.getenv(name)
    if not value:
        raise RuntimeError("Missing required environment value: {}".format(name))
    return value


def mysql_config():
    return {
        "host": require_env("MYSQL_HOST"),
        "port": int(os.getenv("MYSQL_PORT", "3306")),
        "user": require_env("MYSQL_USER"),
        "password": require_env("MYSQL_PASSWORD"),
        "database": require_env("MYSQL_DATABASE"),
    }


APIFY_TOKEN_ENV = "APIFY_TOKEN"
