#
#   Imandra Inc.    
#
#   speclogician/modeling/conflict.py
#

from pydantic import BaseModel
from typing import Literal, TypeAlias

class ScenarioOverlap(BaseModel):
    """ Two scenarios overlap in constraints """
    kind: Literal["overlap"] = "overlap"
    scenario_name1 : str
    scenario_name2 : str

    details : str

class ScenarioConsumed(BaseModel):
    """ One scenario fully absorbs another """
    kind: Literal["consumed"] = "consumed"
    scenario_name1 : str
    scenario_name2 : str

    details : str

ScenarioConflict : TypeAlias = ScenarioOverlap | ScenarioConsumed
