from datetime import datetime from pydantic import BaseModel, Field class SearchResultItem(BaseModel): id: int | str source: str source_label: str title: str description: str = "" subject: str = "" grade: str = "" tags: list[str] = Field(default_factory=list) route: str action_route: str = "" is_public: bool = False updated_at: datetime | None = None class SearchResponse(BaseModel): keyword: str = "" total: int = 0 resources: list[SearchResultItem] = Field(default_factory=list) community: list[SearchResultItem] = Field(default_factory=list) works: list[SearchResultItem] = Field(default_factory=list) materials: list[SearchResultItem] = Field(default_factory=list) classroom: list[SearchResultItem] = Field(default_factory=list)