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

from __future__ import annotations

from typing import Literal
from pydantic import BaseModel


class DataArtifactCorePM(BaseModel):
    art_id: str


class DocRefPM(BaseModel):
    kind: Literal["doc_ref"] = "doc_ref"
    core: DataArtifactCorePM

    text: str
    meta: str | None = None


class SrcCodeRefPM(BaseModel):
    kind: Literal["src_code_ref"] = "src_code_ref"
    core: DataArtifactCorePM

    src_code: str
    language: str | None = None
    file_path: str | None = None
    iml_code: str | None = None
    meta: str | None = None