tender summary refactor

This commit is contained in:
Mazyar
2026-05-19 19:03:50 +03:30
parent 92d4b14b33
commit fcf2cae6bc
3 changed files with 41 additions and 25 deletions
+31 -15
View File
@@ -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.