#
#   Imandra Inc.
#
#   speclogician/presentation/models/instances_list.py
#

from __future__ import annotations

from typing import Literal
from pydantic import BaseModel, Field

from speclogician.presentation.models.state_instance_summary import StateInstanceSummaryPM


class InstancesListRowPM(BaseModel):
    state_label: str  # "latest" or index string
    changes: str      # already formatted (short_str / class name join)
    summary: StateInstanceSummaryPM


class InstancesListPM(BaseModel):
    kind: Literal["instances_list"] = "instances_list"
    rows: list[InstancesListRowPM] = Field(default_factory=list[InstancesListRowPM])