Spaces:
Sleeping
Sleeping
Commit ·
91c8715
1
Parent(s): 504cc76
fix: add generic cross-map fields (core_keywords, viral_hashtags, strategy_tips, content_titles) to all platform response models so they survive FastAPI's response_model filter
Browse files- models/schemas.py +43 -0
models/schemas.py
CHANGED
|
@@ -44,6 +44,12 @@ class YouTubeResponse(BaseModel):
|
|
| 44 |
engagement_strategies: List[str]
|
| 45 |
competition_gap_analysis: str
|
| 46 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
# ---------------------------------------------------------------------------
|
| 49 |
# Instagram
|
|
@@ -70,6 +76,12 @@ class InstagramResponse(BaseModel):
|
|
| 70 |
best_posting_time: str
|
| 71 |
growth_strategies: List[str]
|
| 72 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
|
| 74 |
# ---------------------------------------------------------------------------
|
| 75 |
# LinkedIn
|
|
@@ -93,6 +105,11 @@ class LinkedInResponse(BaseModel):
|
|
| 93 |
best_posting_time: str
|
| 94 |
industry_insights: str
|
| 95 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
|
| 97 |
class LinkedInPostRequest(BaseModel):
|
| 98 |
content: str
|
|
@@ -122,6 +139,11 @@ class FacebookResponse(BaseModel):
|
|
| 122 |
best_posting_time: str
|
| 123 |
page_growth_tips: List[str]
|
| 124 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 125 |
|
| 126 |
# ---------------------------------------------------------------------------
|
| 127 |
# X / Twitter
|
|
@@ -138,6 +160,11 @@ class TwitterResponse(BaseModel):
|
|
| 138 |
best_posting_time: str
|
| 139 |
engagement_tactics: List[str]
|
| 140 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
|
| 142 |
# ---------------------------------------------------------------------------
|
| 143 |
# TikTok
|
|
@@ -155,6 +182,11 @@ class TikTokResponse(BaseModel):
|
|
| 155 |
best_posting_time: str
|
| 156 |
viral_strategies: List[str]
|
| 157 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 158 |
|
| 159 |
# ---------------------------------------------------------------------------
|
| 160 |
# Pinterest
|
|
@@ -172,6 +204,12 @@ class PinterestResponse(BaseModel):
|
|
| 172 |
best_posting_time: str
|
| 173 |
traffic_strategies: List[str]
|
| 174 |
error: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
# ---------------------------------------------------------------------------
|
| 177 |
# Grammar Correction
|
|
@@ -205,6 +243,11 @@ class GrammarResponse(BaseModel):
|
|
| 205 |
error: Optional[str] = None
|
| 206 |
|
| 207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
class BatchRequest(BaseModel):
|
| 209 |
content: str
|
| 210 |
platforms: List[str]
|
|
|
|
| 44 |
engagement_strategies: List[str]
|
| 45 |
competition_gap_analysis: str
|
| 46 |
error: Optional[str] = None
|
| 47 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 48 |
+
related_phrases: Optional[List[str]] = None
|
| 49 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 50 |
+
strategy_tips: Optional[List[str]] = None
|
| 51 |
+
content_titles: Optional[List[str]] = None
|
| 52 |
+
hashtags: Optional[List[str]] = None
|
| 53 |
|
| 54 |
# ---------------------------------------------------------------------------
|
| 55 |
# Instagram
|
|
|
|
| 76 |
best_posting_time: str
|
| 77 |
growth_strategies: List[str]
|
| 78 |
error: Optional[str] = None
|
| 79 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 80 |
+
related_phrases: Optional[List[str]] = None
|
| 81 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 82 |
+
strategy_tips: Optional[List[str]] = None
|
| 83 |
+
content_titles: Optional[List[str]] = None
|
| 84 |
+
hashtags: Optional[List[str]] = None
|
| 85 |
|
| 86 |
# ---------------------------------------------------------------------------
|
| 87 |
# LinkedIn
|
|
|
|
| 105 |
best_posting_time: str
|
| 106 |
industry_insights: str
|
| 107 |
error: Optional[str] = None
|
| 108 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 109 |
+
related_phrases: Optional[List[str]] = None
|
| 110 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 111 |
+
strategy_tips: Optional[List[str]] = None
|
| 112 |
+
content_titles: Optional[List[str]] = None
|
| 113 |
|
| 114 |
class LinkedInPostRequest(BaseModel):
|
| 115 |
content: str
|
|
|
|
| 139 |
best_posting_time: str
|
| 140 |
page_growth_tips: List[str]
|
| 141 |
error: Optional[str] = None
|
| 142 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 143 |
+
related_phrases: Optional[List[str]] = None
|
| 144 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 145 |
+
strategy_tips: Optional[List[str]] = None
|
| 146 |
+
content_titles: Optional[List[str]] = None
|
| 147 |
|
| 148 |
# ---------------------------------------------------------------------------
|
| 149 |
# X / Twitter
|
|
|
|
| 160 |
best_posting_time: str
|
| 161 |
engagement_tactics: List[str]
|
| 162 |
error: Optional[str] = None
|
| 163 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 164 |
+
related_phrases: Optional[List[str]] = None
|
| 165 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 166 |
+
strategy_tips: Optional[List[str]] = None
|
| 167 |
+
content_titles: Optional[List[str]] = None
|
| 168 |
|
| 169 |
# ---------------------------------------------------------------------------
|
| 170 |
# TikTok
|
|
|
|
| 182 |
best_posting_time: str
|
| 183 |
viral_strategies: List[str]
|
| 184 |
error: Optional[str] = None
|
| 185 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 186 |
+
related_phrases: Optional[List[str]] = None
|
| 187 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 188 |
+
strategy_tips: Optional[List[str]] = None
|
| 189 |
+
content_titles: Optional[List[str]] = None
|
| 190 |
|
| 191 |
# ---------------------------------------------------------------------------
|
| 192 |
# Pinterest
|
|
|
|
| 204 |
best_posting_time: str
|
| 205 |
traffic_strategies: List[str]
|
| 206 |
error: Optional[str] = None
|
| 207 |
+
core_keywords: Optional[List[KeywordData]] = None
|
| 208 |
+
related_phrases: Optional[List[str]] = None
|
| 209 |
+
viral_hashtags: Optional[List[HashtagData]] = None
|
| 210 |
+
strategy_tips: Optional[List[str]] = None
|
| 211 |
+
content_titles: Optional[List[str]] = None
|
| 212 |
+
hashtags: Optional[List[str]] = None
|
| 213 |
|
| 214 |
# ---------------------------------------------------------------------------
|
| 215 |
# Grammar Correction
|
|
|
|
| 243 |
error: Optional[str] = None
|
| 244 |
|
| 245 |
|
| 246 |
+
class BatchResponse(BaseModel):
|
| 247 |
+
platform_results: dict
|
| 248 |
+
error: Optional[str] = None
|
| 249 |
+
|
| 250 |
+
|
| 251 |
class BatchRequest(BaseModel):
|
| 252 |
content: str
|
| 253 |
platforms: List[str]
|