from pydantic import BaseModel, Field from typing import Optional, List from datetime import datetime class NewsBase(BaseModel): title: str = Field(..., max_length=200) markdown: str # полный текст в Markdown preview: Optional[str] = None # краткий текст/анонс (тоже можно в MD) tags: List[str] = [] is_published: bool = True class NewsCreate(NewsBase): pass class NewsUpdate(BaseModel): title: Optional[str] = None markdown: Optional[str] = None preview: Optional[str] = None tags: Optional[List[str]] = None is_published: Optional[bool] = None class NewsInDB(NewsBase): id: str created_at: datetime updated_at: datetime class Config: orm_mode = True