from pydantic import BaseModel, Field


class KnowledgeEntryCreate(BaseModel):
    title: str = Field(min_length=1, max_length=200)
    content: str = Field(min_length=1)
    category: str = "general"
    tags: list[str] = Field(default_factory=list)
    summary: str = ""


class KnowledgeEntryUpdate(BaseModel):
    title: str | None = Field(default=None, min_length=1, max_length=200)
    content: str | None = None
    category: str | None = None
    tags: list[str] | None = None
    summary: str | None = None


class KnowledgeEntryItem(BaseModel):
    id: str
    title: str
    category: str
    tags: list[str]
    summary: str
    content: str = ""
    created_by: str = ""
    created_at: str
    updated_at: str


class KnowledgeListResponse(BaseModel):
    items: list[KnowledgeEntryItem]