from datetime import datetime

from pydantic import BaseModel


class KnowledgeBaseCreate(BaseModel):
    name: str
    code: str | None = None
    description: str | None = None
    icon: str = "📚"
    type: str = "general"
    status: str = "enabled"
    is_public: bool = True


class KnowledgeBaseUpdate(BaseModel):
    name: str | None = None
    code: str | None = None
    description: str | None = None
    icon: str | None = None
    type: str | None = None
    status: str | None = None
    is_public: bool | None = None


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

    class Config:
        from_attributes = True
