from datetime import datetime

from pydantic import BaseModel


class TagBriefResponse(BaseModel):
    id: int
    name: str

    class Config:
        from_attributes = True


class DocumentListResponse(BaseModel):
    id: int
    title: str
    summary: str | None
    category_id: int | None
    category_name: str | None = None
    author_id: int
    status: str
    is_vectorized: bool
    view_count: int
    segmentation_mode: str | None = None
    splitter_type: str | None = None
    chunk_size: int | None = None
    chunk_overlap: int | None = None
    tags: list[TagBriefResponse] = []
    created_at: datetime
    updated_at: datetime

    class Config:
        from_attributes = True


class KnowledgeBaseListResponse(BaseModel):
    id: int
    name: str
    code: str | None
    description: str | None
    icon: str
    type: str
    status: str
    is_public: bool
    doc_count: int
    created_at: datetime
    updated_at: datetime

    class Config:
        from_attributes = True
