tender summary refactor
This commit is contained in:
@@ -156,25 +156,41 @@ func languageInDone(done []string, language string) bool {
|
||||
// TenderJSON represents the structure of the <notice_id>/tender.json file
|
||||
// stored in the AI service's MinIO bucket.
|
||||
type TenderJSON struct {
|
||||
OverallSummary *string `json:"overall_summary"`
|
||||
OverallSummaryCamel *string `json:"overallSummary"`
|
||||
SummarizeStatus SummarizeStatus `json:"summarize_status"`
|
||||
SummarizeStatusCamel SummarizeStatus `json:"summarizeStatus"`
|
||||
// Summary is the current pipeline field for the tender-level summary text.
|
||||
Summary string `json:"summary"`
|
||||
OverallSummary *string `json:"overall_summary"`
|
||||
OverallSummaryCamel *string `json:"overallSummary"`
|
||||
SummarizeStatus SummarizeStatus `json:"summarize_status"`
|
||||
SummarizeStatusCamel SummarizeStatus `json:"summarizeStatus"`
|
||||
Translations map[string]StoredTranslation `json:"translations"`
|
||||
TranslationStatus TranslationStatus `json:"translation_status"`
|
||||
TranslationStatusCamel TranslationStatus `json:"translationStatus"`
|
||||
TranslationStatus TranslationStatus `json:"translation_status"`
|
||||
TranslationStatusCamel TranslationStatus `json:"translationStatus"`
|
||||
}
|
||||
|
||||
// resolved returns whether summarization is marked done and the best-effort
|
||||
// overall summary pointer (may be nil or empty when the pipeline finished
|
||||
// without text yet).
|
||||
func (t *TenderJSON) resolved() (done bool, overall *string) {
|
||||
done = t.SummarizeStatus.isDone() || t.SummarizeStatusCamel.isDone()
|
||||
overall = t.OverallSummary
|
||||
if overall == nil || strings.TrimSpace(*overall) == "" {
|
||||
overall = t.OverallSummaryCamel
|
||||
// summaryText returns the best-effort tender-level summary (may be empty).
|
||||
func (t *TenderJSON) summaryText() string {
|
||||
if t == nil {
|
||||
return ""
|
||||
}
|
||||
return done, overall
|
||||
for _, candidate := range []*string{t.OverallSummary, t.OverallSummaryCamel} {
|
||||
if candidate == nil {
|
||||
continue
|
||||
}
|
||||
if text := strings.TrimSpace(*candidate); text != "" {
|
||||
return text
|
||||
}
|
||||
}
|
||||
return strings.TrimSpace(t.Summary)
|
||||
}
|
||||
|
||||
// resolved returns whether summarization is marked done and the summary text
|
||||
// (may be empty when the pipeline finished without text yet).
|
||||
func (t *TenderJSON) resolved() (done bool, overall string) {
|
||||
if t == nil {
|
||||
return false, ""
|
||||
}
|
||||
done = t.SummarizeStatus.isDone() || t.SummarizeStatusCamel.isDone()
|
||||
return done, t.summaryText()
|
||||
}
|
||||
|
||||
// SummarizeStatus represents the summarization status inside tender.json.
|
||||
|
||||
Reference in New Issue
Block a user