#!/usr/bin/env python3
"""
Workflow output layout (directory names).

This module is intentionally small: it centralizes the canonical folder names used
by the workflow when reorganizing a session directory.
"""

from __future__ import annotations

from dataclasses import dataclass
from typing import FrozenSet


@dataclass(frozen=True)
class SessionLayout:
    aplog_raw: str = "aplog_raw"
    aplog_filter: str = "aplog_filter"
    mdlog_raw: str = "mdlog_raw"
    mdlog_filter: str = "mdlog_filter"
    net_log_raw: str = "net_log_raw"
    others: str = "others"
    analysis: str = "analysis"

    def reserved_dirnames(self) -> FrozenSet[str]:
        return frozenset(
            (
                self.aplog_raw,
                self.aplog_filter,
                self.mdlog_raw,
                self.mdlog_filter,
                self.net_log_raw,
                self.others,
                self.analysis,
            )
        )


LAYOUT = SessionLayout()