from pathlib import Path

from config import STORAGE_DIR, PROJECTS_DIR, PROJECTS_CACHE_DIR


def safe_basename(topic: str, format_name: str) -> str:
    clean = topic.replace("/", "_").replace("\x00", "")
    return f"{clean} - {format_name}"


def final_paths(topic: str, format_name: str) -> tuple[Path, Path]:
    base = safe_basename(topic, format_name)
    return STORAGE_DIR / "html" / f"{base}.html", STORAGE_DIR / "pdf" / f"{base}.pdf"


def temp_paths(guide_id: str) -> tuple[Path, Path]:
    return STORAGE_DIR / "html" / f"{guide_id}.tmp.html", STORAGE_DIR / "pdf" / f"{guide_id}.tmp.pdf"


def project_dir(name: str) -> Path:
    return PROJECTS_DIR / name


def project_cache_path(name: str) -> Path:
    return PROJECTS_CACHE_DIR / f"{name}.md"
