"""All ORM models.

Importing this package registers every table on ``Base.metadata``, which is
what ``init_db()`` relies on to create the schema at startup. Any new model
module must be imported here or its table will silently never be created.
"""

from lembas.db.models.agent import (
    AUTH_KEY,
    AUTH_METHODS,
    AUTH_PASSWORD,
    Job,
    SshProfile,
)
from lembas.db.models.attachment import (
    KIND_DOCUMENT,
    KIND_IMAGE,
    KIND_TEXT,
    Attachment,
)
from lembas.db.models.canvas import ScratchDoc
from lembas.db.models.chat import (
    ALL_KINDS,
    KIND_AGENT,
    KIND_CHAT,
    KIND_MESSAGES,
    KIND_TASK,
    KINDS,
    ROLE_ASSISTANT,
    ROLE_SYSTEM,
    ROLE_TOOL,
    ROLE_USER,
    Chat,
    Folder,
    Message,
)
from lembas.db.models.connection import Connection, Model, model_groups
from lembas.db.models.image import ImageWorkflow
from lembas.db.models.library import (
    AUTHOR_MODEL,
    AUTHOR_USER,
    CHUNK_DOCUMENT,
    CHUNK_KINDS,
    CHUNK_NOTE,
    CHUNK_REPORT,
    CHUNK_SKILL,
    PRINCIPAL_GROUP,
    PRINCIPAL_USER,
    RESOURCE_BASE,
    RESOURCE_NOTE,
    RESOURCE_REPORT,
    RESOURCE_SKILL,
    SOURCE_LINK,
    SOURCE_UPLOAD,
    Chunk,
    Document,
    KnowledgeBase,
    Memory,
    Note,
    Share,
    Skill,
    SkillRevision,
    chat_knowledge_bases,
)
from lembas.db.models.report import (
    SOURCE_CHAT,
    SOURCE_MANUAL,
    SOURCE_SCHEDULE,
    SOURCES,
    Report,
)
from lembas.db.models.schedule import (
    ORIGIN_MODEL,
    ORIGIN_USER,
    ORIGINS,
    TARGET_CHAT,
    TARGET_MESSAGES,
    TARGET_REPORT,
    TARGETS,
    Schedule,
)
from lembas.db.models.setting import Setting
from lembas.db.models.suggestion import Suggestion
from lembas.db.models.tool import (
    RESPONSE_JSON,
    RESPONSE_MODES,
    RESPONSE_RAW,
    RESPONSE_TEXT,
    SECRET_BEARER,
    SECRET_HEADER,
    SECRET_NONE,
    SECRET_PLACEMENTS,
    SECRET_QUERY,
    CustomTool,
    McpServer,
    custom_tool_groups,
    mcp_server_groups,
)
from lembas.db.models.user import (
    ROLE_ADMIN,
    ROLE_PENDING,
    Group,
    PushSubscription,
    Session,
    Usage,
    User,
    user_groups,
)

__all__ = [
    "AUTHOR_MODEL",
    "PushSubscription",
    "Usage",
    "AUTH_KEY",
    "AUTH_METHODS",
    "AUTH_PASSWORD",
    "AUTHOR_USER",
    "ALL_KINDS",
    "Attachment",
    "KINDS",
    "KIND_AGENT",
    "KIND_CHAT",
    "KIND_DOCUMENT",
    "KIND_IMAGE",
    "KIND_MESSAGES",
    "KIND_TASK",
    "KIND_TEXT",
    "PRINCIPAL_GROUP",
    "PRINCIPAL_USER",
    "RESOURCE_BASE",
    "RESOURCE_NOTE",
    "RESOURCE_REPORT",
    "RESOURCE_SKILL",
    "RESPONSE_JSON",
    "RESPONSE_MODES",
    "RESPONSE_RAW",
    "RESPONSE_TEXT",
    "ROLE_ADMIN",
    "ROLE_ASSISTANT",
    "ROLE_PENDING",
    "ROLE_SYSTEM",
    "ROLE_TOOL",
    "ROLE_USER",
    "SECRET_BEARER",
    "SECRET_HEADER",
    "SECRET_NONE",
    "SECRET_PLACEMENTS",
    "SECRET_QUERY",
    "ORIGINS",
    "ORIGIN_MODEL",
    "ORIGIN_USER",
    "SOURCES",
    "SOURCE_CHAT",
    "SOURCE_LINK",
    "SOURCE_MANUAL",
    "SOURCE_SCHEDULE",
    "SOURCE_UPLOAD",
    "TARGETS",
    "TARGET_CHAT",
    "TARGET_MESSAGES",
    "TARGET_REPORT",
    "Report",
    "Schedule",
    "Chat",
    "Job",
    "Connection",
    "CustomTool",
    "CHUNK_DOCUMENT",
    "CHUNK_KINDS",
    "CHUNK_NOTE",
    "CHUNK_REPORT",
    "CHUNK_SKILL",
    "Chunk",
    "Document",
    "Folder",
    "Group",
    "ImageWorkflow",
    "KnowledgeBase",
    "McpServer",
    "Memory",
    "Message",
    "Model",
    "Note",
    "ScratchDoc",
    "Session",
    "Setting",
    "Share",
    "Skill",
    "SshProfile",
    "SkillRevision",
    "Suggestion",
    "User",
    "chat_knowledge_bases",
    "custom_tool_groups",
    "mcp_server_groups",
    "model_groups",
    "user_groups",
]
