package promptcontext import ( "encoding/json" "gitea.maximumdirect.net/eric/audita/internal/core/schema" ) type transcriptSectionSegment struct { ID int `json:"id"` Speaker string `json:"speaker"` Start float64 `json:"start"` End float64 `json:"end"` Text string `json:"text"` Categories []string `json:"categories,omitempty"` } type transcriptSectionPayload struct { SectionIndex int `json:"section_index"` Segments []transcriptSectionSegment `json:"segments"` } // MarshalTranscriptSectionJSON builds the standardized transcript-section JSON // payload consumed by proposal prompt templates. func MarshalTranscriptSectionJSON(transcript *schema.Transcript, sectionIndex int) ([]byte, error) { payload := transcriptSectionPayload{ SectionIndex: sectionIndex, Segments: make([]transcriptSectionSegment, 0), } if transcript != nil { for _, s := range transcript.Segments { payload.Segments = append(payload.Segments, transcriptSectionSegment{ ID: s.ID, Speaker: s.Speaker, Start: s.Start, End: s.End, Text: s.Text, Categories: append([]string(nil), s.Categories...), }) } } return json.MarshalIndent(payload, "", " ") }