"""Project configuration helpers."""

from __future__ import annotations

from dataclasses import dataclass
from pathlib import Path


PROJECT_ROOT = Path(__file__).resolve().parent.parent
DATA_DIR = PROJECT_ROOT / "data"
RAW_DIR = DATA_DIR / "raw"
CLEANED_DIR = DATA_DIR / "cleaned"
OUTPUT_DIR = DATA_DIR / "output"


@dataclass(frozen=True)
class IngestionPaths:
    """Filesystem paths required for the ingestion workflow."""

    source_csv: Path = PROJECT_ROOT / "final_with_deceased.csv"
    source_metadata: Path = PROJECT_ROOT / "metadata.json"
    raw_csv: Path = RAW_DIR / "final_with_deceased.csv"
    raw_metadata: Path = RAW_DIR / "metadata.json"
    validation_report: Path = OUTPUT_DIR / "ingestion_validation_report.json"
    cleaned_csv: Path = CLEANED_DIR / "final_with_deceased_cleaned.csv"
    cleaning_report: Path = OUTPUT_DIR / "cleaning_report.json"
