thread-master/old/backend/generate/api/copy_mission.api

61 lines
2.7 KiB
Plaintext

syntax = "v1"
// Flow A full copy_mission pipeline removed (stubs / orphan workers).
// Only topic inspiration remains until Post Project replaces MissionsPage.
// See docs/post-project-plan.md and docs/cleanup-log.md.
type (
CopyMissionInspirationReq {
Keyword string `json:"keyword,optional"`
ContentDirection string `json:"content_direction,optional"`
UseWebSearch bool `json:"use_web_search,optional"`
AvoidTopics []string `json:"avoid_topics,optional"`
}
CopyMissionInspirationHandlerReq {
PersonaID string `path:"personaId" validate:"required"`
CopyMissionInspirationReq
}
CopyMissionInspirationSourceData {
Query string `json:"query,omitempty"`
Title string `json:"title,omitempty"`
Snippet string `json:"snippet,omitempty"`
URL string `json:"url,omitempty"`
}
CopyMissionInspirationData {
TopicCandidateID string `json:"topic_candidate_id,omitempty"`
ContentPlanID string `json:"content_plan_id,omitempty"`
Label string `json:"label"`
SeedQuery string `json:"seed_query"`
Brief string `json:"brief"`
TrendReason string `json:"trend_reason,omitempty"`
TrendKeywords []string `json:"trend_keywords,omitempty"`
Angles []string `json:"angles,omitempty"`
Mission string `json:"mission,omitempty"`
TargetAudience string `json:"target_audience,omitempty"`
OpeningType string `json:"opening_type,omitempty"`
BodyType string `json:"body_type,omitempty"`
Emotion string `json:"emotion,omitempty"`
CtaType string `json:"cta_type,omitempty"`
RiskLevel string `json:"risk_level,omitempty"`
Avoid []string `json:"avoid,omitempty"`
Sources []CopyMissionInspirationSourceData `json:"sources,omitempty"`
WebSearchUsed bool `json:"web_search_used"`
Message string `json:"message"`
}
)
@server(
group: copy_mission
prefix: /api/v1/personas
middleware: AuthJWT
tags: "CopyMission"
summary: "Topic inspiration only (legacy Flow A pipeline removed). Requires Bearer JWT."
)
service gateway {
@handler inspireCopyMission
post /:personaId/copy-mission-inspiration (CopyMissionInspirationHandlerReq) returns (CopyMissionInspirationData)
}