# app/paths.py
import os
from dataclasses import dataclass


@dataclass(frozen=True)
class AppPaths:
    project_root: str
    upload_dir: str
    urlprop_dir: str
    bulk_db_path: str
    templates_dir: str
    static_dir: str


def build_paths() -> AppPaths:
    # project root = carpeta padre de /app
    project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))

    upload_dir = os.path.join(project_root, "uploads")
    urlprop_dir = os.path.join(project_root, "url_properties")
    bulk_db_path = os.path.join(project_root, "bulk_jobs.sqlite3")

    templates_dir = os.path.join(project_root, "templates")
    static_dir = os.path.join(project_root, "static")

    os.makedirs(upload_dir, exist_ok=True)
    os.makedirs(urlprop_dir, exist_ok=True)

    return AppPaths(
        project_root=project_root,
        upload_dir=upload_dir,
        urlprop_dir=urlprop_dir,
        bulk_db_path=bulk_db_path,
        templates_dir=templates_dir,
        static_dir=static_dir,
    )
