feat(questions): make brand questions the primary monitoring & template axis
- add /questions/combination-fill endpoint with AI-driven, IP-region-aware matrix fill - extract ip2region resolver from ops/app into shared/ipregion for cross-service use - thread question_id filter through dashboard composite, citation summary, and collect-now - switch template wizard from keyword inputs to brand-question selection (primary + supplemental) - pass brand_question and supplemental_questions through assist/title/outline prompts - add AiWaitingModal + 45s client timeout and request_timeout error mapping for long AI flows Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -320,9 +320,9 @@ func queryParameterNames(route gin.RouteInfo) []string {
|
||||
case strings.Contains(path, "/tenant/brands") && strings.Contains(path, "/questions"):
|
||||
add("keyword_id")
|
||||
case strings.Contains(path, "/tenant/monitoring/dashboard/composite"):
|
||||
add("brand_id", "keyword_id", "days", "business_date", "ai_platform_id")
|
||||
add("brand_id", "keyword_id", "question_id", "days", "business_date", "ai_platform_id")
|
||||
case strings.Contains(path, "/tenant/monitoring/citation-summary"):
|
||||
add("days")
|
||||
add("days", "brand_id", "keyword_id", "question_id", "business_date", "ai_platform_id")
|
||||
case strings.Contains(path, "/tenant/monitoring/brands/"):
|
||||
add("ai_platform_id", "date_from", "date_to", "question_hash")
|
||||
case strings.Contains(path, "/tenant/kol/marketplace/packages"):
|
||||
@@ -359,7 +359,7 @@ func schemaForQueryParameter(name string) map[string]any {
|
||||
switch name {
|
||||
case "page", "page_size", "limit", "offset", "days", "period_days":
|
||||
return map[string]any{"type": "integer"}
|
||||
case "brand_id", "keyword_id", "template_id", "kol_prompt_id", "prompt_rule_id", "group_id", "folder_id", "if_sync_version":
|
||||
case "brand_id", "keyword_id", "question_id", "template_id", "kol_prompt_id", "prompt_rule_id", "group_id", "folder_id", "if_sync_version":
|
||||
return map[string]any{"type": "integer", "format": "int64"}
|
||||
case "force":
|
||||
return map[string]any{"type": "string", "enum": []string{"1"}}
|
||||
|
||||
Reference in New Issue
Block a user