# Generated by ariadne-codegen
# Source: ./documents

from typing import Any, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import (
    ContentTypes,
    ConversationTypes,
    EntityState,
    FileTypes,
    FilterMode,
    ObservableTypes,
)


class QueryConversations(BaseModel):
    conversations: Optional["QueryConversationsConversations"]


class QueryConversationsConversations(BaseModel):
    results: Optional[list["QueryConversationsConversationsResults"]]


class QueryConversationsConversationsResults(BaseModel):
    id: str
    name: str
    creation_date: Any = Field(alias="creationDate")
    modified_date: Optional[Any] = Field(alias="modifiedDate")
    relevance: Optional[float]
    owner: "QueryConversationsConversationsResultsOwner"
    state: EntityState
    correlation_id: Optional[str] = Field(alias="correlationId")
    type: Optional[ConversationTypes]
    transcript_uri: Optional[Any] = Field(alias="transcriptUri")
    message_count: Optional[int] = Field(alias="messageCount")
    turn_count: Optional[int] = Field(alias="turnCount")
    agent: Optional["QueryConversationsConversationsResultsAgent"]
    persona: Optional["QueryConversationsConversationsResultsPersona"]
    specification: Optional["QueryConversationsConversationsResultsSpecification"]
    fallbacks: Optional[
        list[Optional["QueryConversationsConversationsResultsFallbacks"]]
    ]
    filter: Optional["QueryConversationsConversationsResultsFilter"]
    augmented_filter: Optional[
        "QueryConversationsConversationsResultsAugmentedFilter"
    ] = Field(alias="augmentedFilter")
    summary: Optional[str]


class QueryConversationsConversationsResultsOwner(BaseModel):
    id: str


class QueryConversationsConversationsResultsAgent(BaseModel):
    id: str


class QueryConversationsConversationsResultsPersona(BaseModel):
    id: str
    name: str


class QueryConversationsConversationsResultsSpecification(BaseModel):
    id: str
    name: str


class QueryConversationsConversationsResultsFallbacks(BaseModel):
    id: str
    name: str


class QueryConversationsConversationsResultsFilter(BaseModel):
    date_range: Optional["QueryConversationsConversationsResultsFilterDateRange"] = (
        Field(alias="dateRange")
    )
    in_last: Optional[Any] = Field(alias="inLast")
    in_next: Optional[Any] = Field(alias="inNext")
    creation_date_range: Optional[
        "QueryConversationsConversationsResultsFilterCreationDateRange"
    ] = Field(alias="creationDateRange")
    created_in_last: Optional[Any] = Field(alias="createdInLast")
    types: Optional[list[ContentTypes]]
    file_types: Optional[list[FileTypes]] = Field(alias="fileTypes")
    formats: Optional[list[str]]
    file_extensions: Optional[list[str]] = Field(alias="fileExtensions")
    file_size_range: Optional[
        "QueryConversationsConversationsResultsFilterFileSizeRange"
    ] = Field(alias="fileSizeRange")
    similar_contents: Optional[
        list["QueryConversationsConversationsResultsFilterSimilarContents"]
    ] = Field(alias="similarContents")
    contents: Optional[list["QueryConversationsConversationsResultsFilterContents"]]
    feeds: Optional[list["QueryConversationsConversationsResultsFilterFeeds"]]
    workflows: Optional[list["QueryConversationsConversationsResultsFilterWorkflows"]]
    collections: Optional[
        list["QueryConversationsConversationsResultsFilterCollections"]
    ]
    users: Optional[list["QueryConversationsConversationsResultsFilterUsers"]]
    observations: Optional[
        list["QueryConversationsConversationsResultsFilterObservations"]
    ]
    or_: Optional[list["QueryConversationsConversationsResultsFilterOr"]] = Field(
        alias="or"
    )
    and_: Optional[list["QueryConversationsConversationsResultsFilterAnd"]] = Field(
        alias="and"
    )
    has_observations: Optional[bool] = Field(alias="hasObservations")
    has_feeds: Optional[bool] = Field(alias="hasFeeds")
    has_collections: Optional[bool] = Field(alias="hasCollections")
    has_workflows: Optional[bool] = Field(alias="hasWorkflows")
    collection_mode: Optional[FilterMode] = Field(alias="collectionMode")
    observation_mode: Optional[FilterMode] = Field(alias="observationMode")


class QueryConversationsConversationsResultsFilterDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsConversationsResultsFilterCreationDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsConversationsResultsFilterFileSizeRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsConversationsResultsFilterSimilarContents(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterContents(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterFeeds(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterWorkflows(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterCollections(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterUsers(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterObservations(BaseModel):
    type: ObservableTypes
    observable: "QueryConversationsConversationsResultsFilterObservationsObservable"
    states: Optional[list[EntityState]]


class QueryConversationsConversationsResultsFilterObservationsObservable(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterOr(BaseModel):
    feeds: Optional[list["QueryConversationsConversationsResultsFilterOrFeeds"]]
    workflows: Optional[list["QueryConversationsConversationsResultsFilterOrWorkflows"]]
    collections: Optional[
        list["QueryConversationsConversationsResultsFilterOrCollections"]
    ]
    users: Optional[list["QueryConversationsConversationsResultsFilterOrUsers"]]
    observations: Optional[
        list["QueryConversationsConversationsResultsFilterOrObservations"]
    ]


class QueryConversationsConversationsResultsFilterOrFeeds(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterOrWorkflows(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterOrCollections(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterOrUsers(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterOrObservations(BaseModel):
    type: ObservableTypes
    observable: "QueryConversationsConversationsResultsFilterOrObservationsObservable"
    states: Optional[list[EntityState]]


class QueryConversationsConversationsResultsFilterOrObservationsObservable(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterAnd(BaseModel):
    feeds: Optional[list["QueryConversationsConversationsResultsFilterAndFeeds"]]
    workflows: Optional[
        list["QueryConversationsConversationsResultsFilterAndWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsConversationsResultsFilterAndCollections"]
    ]
    users: Optional[list["QueryConversationsConversationsResultsFilterAndUsers"]]
    observations: Optional[
        list["QueryConversationsConversationsResultsFilterAndObservations"]
    ]


class QueryConversationsConversationsResultsFilterAndFeeds(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterAndWorkflows(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterAndCollections(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterAndUsers(BaseModel):
    id: str


class QueryConversationsConversationsResultsFilterAndObservations(BaseModel):
    type: ObservableTypes
    observable: "QueryConversationsConversationsResultsFilterAndObservationsObservable"
    states: Optional[list[EntityState]]


class QueryConversationsConversationsResultsFilterAndObservationsObservable(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilter(BaseModel):
    date_range: Optional[
        "QueryConversationsConversationsResultsAugmentedFilterDateRange"
    ] = Field(alias="dateRange")
    in_last: Optional[Any] = Field(alias="inLast")
    in_next: Optional[Any] = Field(alias="inNext")
    creation_date_range: Optional[
        "QueryConversationsConversationsResultsAugmentedFilterCreationDateRange"
    ] = Field(alias="creationDateRange")
    created_in_last: Optional[Any] = Field(alias="createdInLast")
    types: Optional[list[ContentTypes]]
    file_types: Optional[list[FileTypes]] = Field(alias="fileTypes")
    formats: Optional[list[str]]
    file_extensions: Optional[list[str]] = Field(alias="fileExtensions")
    file_size_range: Optional[
        "QueryConversationsConversationsResultsAugmentedFilterFileSizeRange"
    ] = Field(alias="fileSizeRange")
    similar_contents: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterSimilarContents"]
    ] = Field(alias="similarContents")
    contents: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterContents"]
    ]
    feeds: Optional[list["QueryConversationsConversationsResultsAugmentedFilterFeeds"]]
    workflows: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterCollections"]
    ]
    users: Optional[list["QueryConversationsConversationsResultsAugmentedFilterUsers"]]
    observations: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterObservations"]
    ]
    or_: Optional[list["QueryConversationsConversationsResultsAugmentedFilterOr"]] = (
        Field(alias="or")
    )
    and_: Optional[list["QueryConversationsConversationsResultsAugmentedFilterAnd"]] = (
        Field(alias="and")
    )
    has_observations: Optional[bool] = Field(alias="hasObservations")
    has_feeds: Optional[bool] = Field(alias="hasFeeds")
    has_collections: Optional[bool] = Field(alias="hasCollections")
    has_workflows: Optional[bool] = Field(alias="hasWorkflows")
    collection_mode: Optional[FilterMode] = Field(alias="collectionMode")
    observation_mode: Optional[FilterMode] = Field(alias="observationMode")


class QueryConversationsConversationsResultsAugmentedFilterDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsConversationsResultsAugmentedFilterCreationDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsConversationsResultsAugmentedFilterFileSizeRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsConversationsResultsAugmentedFilterSimilarContents(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterContents(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterFeeds(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterWorkflows(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterCollections(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterUsers(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterObservations(BaseModel):
    type: ObservableTypes
    observable: (
        "QueryConversationsConversationsResultsAugmentedFilterObservationsObservable"
    )
    states: Optional[list[EntityState]]


class QueryConversationsConversationsResultsAugmentedFilterObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterOr(BaseModel):
    feeds: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterOrFeeds"]
    ]
    workflows: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterOrWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterOrCollections"]
    ]
    users: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterOrUsers"]
    ]
    observations: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterOrObservations"]
    ]


class QueryConversationsConversationsResultsAugmentedFilterOrFeeds(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterOrWorkflows(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterOrCollections(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterOrUsers(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterOrObservations(BaseModel):
    type: ObservableTypes
    observable: (
        "QueryConversationsConversationsResultsAugmentedFilterOrObservationsObservable"
    )
    states: Optional[list[EntityState]]


class QueryConversationsConversationsResultsAugmentedFilterOrObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterAnd(BaseModel):
    feeds: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterAndFeeds"]
    ]
    workflows: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterAndWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterAndCollections"]
    ]
    users: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterAndUsers"]
    ]
    observations: Optional[
        list["QueryConversationsConversationsResultsAugmentedFilterAndObservations"]
    ]


class QueryConversationsConversationsResultsAugmentedFilterAndFeeds(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterAndWorkflows(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterAndCollections(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterAndUsers(BaseModel):
    id: str


class QueryConversationsConversationsResultsAugmentedFilterAndObservations(BaseModel):
    type: ObservableTypes
    observable: (
        "QueryConversationsConversationsResultsAugmentedFilterAndObservationsObservable"
    )
    states: Optional[list[EntityState]]


class QueryConversationsConversationsResultsAugmentedFilterAndObservationsObservable(
    BaseModel
):
    id: str


QueryConversations.model_rebuild()
QueryConversationsConversations.model_rebuild()
QueryConversationsConversationsResults.model_rebuild()
QueryConversationsConversationsResultsFilter.model_rebuild()
QueryConversationsConversationsResultsFilterObservations.model_rebuild()
QueryConversationsConversationsResultsFilterOr.model_rebuild()
QueryConversationsConversationsResultsFilterOrObservations.model_rebuild()
QueryConversationsConversationsResultsFilterAnd.model_rebuild()
QueryConversationsConversationsResultsFilterAndObservations.model_rebuild()
QueryConversationsConversationsResultsAugmentedFilter.model_rebuild()
QueryConversationsConversationsResultsAugmentedFilterObservations.model_rebuild()
QueryConversationsConversationsResultsAugmentedFilterOr.model_rebuild()
QueryConversationsConversationsResultsAugmentedFilterOrObservations.model_rebuild()
QueryConversationsConversationsResultsAugmentedFilterAnd.model_rebuild()
QueryConversationsConversationsResultsAugmentedFilterAndObservations.model_rebuild()
