feat(models): add org_id to Article, PublishRecord, ContentMetrics, SearchRanking, GeoReadinessScore

- Add org_id column to 5 models with default='default'
- Update to_dict() methods for ContentMetrics, SearchRanking, GeoReadinessScore
- Add ALTER TABLE migrations in database.py init_db()
- Add org_id to 6 Pydantic response schemas
- Add require_role() helper factory in auth.py
This commit is contained in:
Yuzhiran Dev
2026-06-17 14:27:27 +08:00
parent 00431c827b
commit dcfeccc97b
6 changed files with 42 additions and 3 deletions
+6
View File
@@ -151,6 +151,7 @@ class ArticleBase(BaseModel):
title: Optional[str] = None
content: Optional[str] = None
status: str = "draft"
org_id: Optional[str] = None
compliance_score: Optional[int] = None
word_count: Optional[int] = None
outline: Optional[str] = None
@@ -193,6 +194,7 @@ class ContentCalendarUpdate(BaseModel):
class ContentCalendarResponse(ContentCalendarBase):
id: int
org_id: Optional[str] = None
published_date: Optional[date] = None
created_by: Optional[str] = None
created_at: Optional[datetime] = None
@@ -230,6 +232,7 @@ class ContentMetricsUpdate(BaseModel):
class ContentMetricsResponse(ContentMetricsBase):
id: int
org_id: Optional[str] = None
engagement_rate: float = 0
last_fetched: Optional[datetime] = None
created_at: Optional[datetime] = None
@@ -265,6 +268,7 @@ class MediaAssetUpdate(BaseModel):
class MediaAssetResponse(MediaAssetBase):
id: int
org_id: Optional[str] = None
usage_count: int = 0
uploaded_by: Optional[str] = None
created_at: Optional[datetime] = None
@@ -340,6 +344,7 @@ class ContentTaskCreate(BaseModel):
class ContentTaskResponse(ContentTaskBase):
id: int
org_id: Optional[str] = None
task_id: str
topic_id: Optional[str] = None
topic_title: Optional[str] = None
@@ -454,6 +459,7 @@ class PublishRecordResponse(BaseModel):
platform: str
action: str
status: str
org_id: Optional[str] = None
operator: Optional[str] = None
description: Optional[str] = None
suggestion: Optional[str] = None