From 2bfc9c3c2f6845b219e8e6b720c081f14b007ab3 Mon Sep 17 00:00:00 2001 From: Fankouzu <1046166@qq.com> Date: Sat, 11 Apr 2026 11:07:05 +0800 Subject: [PATCH] fix(doubao): preserve draft_task id in video content items Content metadata items with type draft_task include a nested draft_task.id field for Seedance draft-to-video. The previous ContentItem struct dropped this field on JSON round-trip; add DraftTaskRef so upstream receives it. Made-with: Cursor --- relay/channel/task/doubao/adaptor.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/relay/channel/task/doubao/adaptor.go b/relay/channel/task/doubao/adaptor.go index a6dabb5f1086..62d4f54a8e71 100644 --- a/relay/channel/task/doubao/adaptor.go +++ b/relay/channel/task/doubao/adaptor.go @@ -27,13 +27,19 @@ import ( // Request / Response structures // ============================ +// DraftTaskRef is the nested object for content items with type "draft_task" (Seedance draft-to-video). +type DraftTaskRef struct { + ID string `json:"id"` +} + type ContentItem struct { - Type string `json:"type,omitempty"` - Text string `json:"text,omitempty"` - ImageURL *MediaURL `json:"image_url,omitempty"` - VideoURL *MediaURL `json:"video_url,omitempty"` - AudioURL *MediaURL `json:"audio_url,omitempty"` - Role string `json:"role,omitempty"` + Type string `json:"type,omitempty"` + Text string `json:"text,omitempty"` + ImageURL *MediaURL `json:"image_url,omitempty"` + VideoURL *MediaURL `json:"video_url,omitempty"` + AudioURL *MediaURL `json:"audio_url,omitempty"` + Role string `json:"role,omitempty"` + DraftTask *DraftTaskRef `json:"draft_task,omitempty"` } type MediaURL struct {