ihtesham0345 commited on
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
Files changed (1) hide show
  1. 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]