from dataclasses import dataclass
import os
from pathlib import Path


@dataclass(frozen=True)
class Settings:
    database_path: Path
    portal_dir: Path
    admin_email: str
    admin_password: str
    token_secret: str
    encryption_key: str
    public_base_url: str


def load_settings() -> Settings:
    root = Path(__file__).resolve().parents[2]
    return Settings(
        database_path=Path(os.getenv("TUTV_DATABASE", root / "data" / "tutv.db")),
        portal_dir=Path(os.getenv("TUTV_PORTAL_DIR", root / "activaciones")),
        admin_email=os.getenv("TUTV_ADMIN_EMAIL", "admin@panelespro.xyz"),
        admin_password=os.getenv("TUTV_ADMIN_PASSWORD", "cambiar-en-produccion"),
        token_secret=os.getenv("TUTV_TOKEN_SECRET", "dev-token-secret-change-me"),
        encryption_key=os.getenv("TUTV_ENCRYPTION_KEY", "dev-encryption-key-change-me"),
        public_base_url=os.getenv("TUTV_PUBLIC_BASE_URL", "https://panelespro.xyz"),
    )
