#
#   Imandra Inc.
#
#   speclogician/presentation/ctx.py
#

from __future__ import annotations
from pydantic import BaseModel
from speclogician.data.container import ArtifactContainer
from speclogician.data.mapping import ArtifactMap

class RenderCtx(BaseModel):
    art_cont: ArtifactContainer | None = None
    art_map: ArtifactMap | None = None

    show_ids: bool = False
    show_art_ids: bool = False

    # --- global presentation toggles ---
    compact: bool = False          # tighter tables/panels
    show_stats_only: bool = False  # render only summary stats (no code blocks)
    show_code: bool = True         # include code blocks (IML, src snippets)

    # --- domain-model specific ---
    show_base: bool = True
    show_predicates: bool = True
    show_transitions: bool = True

    # --- scenario specific (when you wire it) ---
    show_scenario_conflicts: bool = True
    show_missing_components: bool = True

    # --- artifacts/mapping (when you wire it) ---
    show_traces: bool = True
    show_artifacts: bool = True

    show_empty_sections: bool = False
    show_recommendations: bool = True
