feat(blog): جداسازی دوزبانهٔ اسلاگ/کلیدواژه/نویسنده/تگ‌ها/متا + میگریشن ۰۰۰۲، رفع «دقیقه مطالعه دقیقه»، فونت مقاله ۱۵/۱۷px، جدول تیپ‌تپ در ادیتور، مسیر /en/blog با slug_en

This commit is contained in:
aramesh-site deploy
2026-10-06 10:11:55 +00:00
parent 426dc783df
commit 61a2e95278
11 changed files with 862 additions and 197 deletions
+25
View File
@@ -98,6 +98,15 @@ class ArticleOut(ORMModel):
faqs_en: Optional[list[dict]] = None
status: str
seo_keyphrase: str
# نام نویسنده و توضیحات سئوی اختصاصی — سربرگ مقاله، تگ description و اسکیمای Article
author: str = ""
meta_description: str = ""
meta_description_en: str = ""
slug_en: str = ""
seo_keyphrase_en: str = ""
author_en: str = ""
tags: list[str] = []
tags_en: list[str] = []
class TestimonialOut(ORMModel):
@@ -517,6 +526,14 @@ class ArticleIn(BaseModel):
faqs_en: list[dict] = []
status: Literal["draft", "published"] = "draft"
seo_keyphrase: str = Field(default="", max_length=128)
seo_keyphrase_en: str = Field(default="", max_length=128)
slug_en: str = Field(default="", max_length=128)
author: str = Field(default="", max_length=128)
author_en: str = Field(default="", max_length=128)
tags: list[str] = []
tags_en: list[str] = []
meta_description: str = ""
meta_description_en: str = ""
_validate_body = field_validator("body")(validate_doc_body)
_validate_body_en = field_validator("body_en")(validate_doc_body)
@@ -823,6 +840,14 @@ class ArticlePatch(BaseModel):
faqs_en: Optional[list[dict]] = None
status: Optional[Literal["draft", "published"]] = None
seo_keyphrase: Optional[str] = None
seo_keyphrase_en: Optional[str] = None
slug_en: Optional[str] = None
author: Optional[str] = None
author_en: Optional[str] = None
tags: Optional[list[str]] = None
tags_en: Optional[list[str]] = None
meta_description: Optional[str] = None
meta_description_en: Optional[str] = None
_validate_body = field_validator("body")(validate_doc_body)
_validate_body_en = field_validator("body_en")(validate_doc_body)
TestimonialPatch = _make_patch("TestimonialPatch", TestimonialIn)