from datetime import datetime

from pydantic import BaseModel


class KnowledgeCategoryCreate(BaseModel):
    knowledge_base_id: int | None = None
    name: str
    description: str | None = None
    parent_id: int | None = None
    icon: str | None = "📁"
    color: str | None = "#6366f1"
    sort_order: int = 0


class KnowledgeCategoryUpdate(BaseModel):
    knowledge_base_id: int | None = None
    name: str | None = None
    description: str | None = None
    parent_id: int | None = None
    icon: str | None = None
    color: str | None = None
    sort_order: int | None = None


class KnowledgeCategoryResponse(BaseModel):
    id: int
    knowledge_base_id: int | None
    knowledge_base_name: str | None = None
    name: str
    description: str | None
    parent_id: int | None
    parent_name: str | None = None
    icon: str | None
    color: str | None
    sort_order: int
    doc_count: int = 0
    qa_count: int = 0
    document_count: int = 0
    created_at: datetime
    updated_at: datetime

    class Config:
        from_attributes = True
