"""Laufzeitkonfiguration über Umgebungsvariablen."""

from __future__ import annotations

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
PROJECT_ROOT = BASE_DIR.parent

UPLOAD_DIR = Path(os.getenv("UPLOAD_DIR", str(BASE_DIR / "uploads")))
OUTPUT_DIR = Path(os.getenv("OUTPUT_DIR", str(BASE_DIR / "output")))
FRONTEND_DIR = BASE_DIR / "frontend"

MAX_UPLOAD_MB = int(os.getenv("MAX_UPLOAD_MB", "15"))
MAX_UPLOAD_BYTES = MAX_UPLOAD_MB * 1024 * 1024

KEEP_OUTPUT = os.getenv("KEEP_OUTPUT", "false").strip().lower() in {"1", "true", "yes", "on"}
OUTPUT_TTL_SECONDS = int(os.getenv("OUTPUT_TTL_SECONDS", "3600"))

ALLOWED_SOURCE_SUFFIXES = {".xlsx", ".xls", ".csv"}
ALLOWED_TEMPLATE_SUFFIXES = {".xlsx", ".xls"}

HOST = os.getenv("HOST", "0.0.0.0")
PORT = int(os.getenv("PORT", "8000"))


def ensure_directories() -> None:
    UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
    OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
