"""Models package."""

from .base import ProjectScopedModel, TimestampedModel, UserScopedModel
from .chat import (
    ChatHistoryRequest,
    ChatMessage,
    ChatMessageBase,
    ChatMessageCreate,
    ChatSearchRequest,
    ChatSession,
    ChatSessionCreate,
    ChatSessionList,
)
from .knowledge import (
    AddKnowledgeRequest,
    CreateKnowledgeBaseRequest,
    DeleteKnowledgeRequest,
    Fact,
    FactBase,
    FactCreate,
    FactRelation,
    FactUpdate,
    FactWithScore,
    GetKnowledgeRequest,
    IngestKnowledgeRequest,
    KnowledgeBase,
    KnowledgeBaseBase,
    KnowledgeBaseCreate,
    KnowledgeBaseUpdate,
    ListKnowledgeBasesRequest,
)
from .memory import (
    AddMemoriesRequest,
    DeleteMemoryRequest,
    DeleteUserRequest,
    GetMemoriesRequest,
    Memory,
    MemoryBase,
    MemoryCreate,
    MemoryListResponse,
    MemoryResponse,
    MemoryUpdate,
    MemoryWithScore,
    RememberRequest,
)
from .project import (
    Project,
    ProjectBase,
    ProjectCreate,
    ProjectList,
    ProjectUpdate,
)

__all__ = [
    # Base
    "TimestampedModel",
    "UserScopedModel",
    "ProjectScopedModel",
    # Project
    "Project",
    "ProjectBase",
    "ProjectCreate",
    "ProjectUpdate",
    "ProjectList",
    # Memory
    "Memory",
    "MemoryBase",
    "MemoryCreate",
    "MemoryUpdate",
    "MemoryWithScore",
    "MemoryResponse",
    "MemoryListResponse",
    "RememberRequest",
    "AddMemoriesRequest",
    "GetMemoriesRequest",
    "DeleteMemoryRequest",
    "DeleteUserRequest",
    # Knowledge
    "KnowledgeBase",
    "KnowledgeBaseBase",
    "KnowledgeBaseCreate",
    "KnowledgeBaseUpdate",
    "Fact",
    "FactBase",
    "FactCreate",
    "FactUpdate",
    "FactWithScore",
    "FactRelation",
    "CreateKnowledgeBaseRequest",
    "ListKnowledgeBasesRequest",
    "AddKnowledgeRequest",
    "GetKnowledgeRequest",
    "DeleteKnowledgeRequest",
    "IngestKnowledgeRequest",
    # Chat
    "ChatMessage",
    "ChatMessageBase",
    "ChatMessageCreate",
    "ChatSession",
    "ChatSessionCreate",
    "ChatSessionList",
    "ChatHistoryRequest",
    "ChatSearchRequest",
]
