from datetime import datetime from typing import Any from pydantic import BaseModel, Field class MindMapGenerate(BaseModel): topic: str = Field(..., min_length=1, max_length=200) subject: str = "综合" grade: str = "" class MindMapCreate(BaseModel): title: str = Field(..., min_length=1, max_length=200) subject: str = "综合" nodes: list[Any] = Field(default_factory=list) class MindMapUpdate(BaseModel): title: str | None = None nodes: list[Any] | None = None class MindMapOut(BaseModel): id: int user_id: int title: str subject: str = "综合" nodes: list[Any] = Field(default_factory=list) created_at: datetime | None = None updated_at: datetime | None = None model_config = {"from_attributes": True}