thread-master/backend/internal/library/outreach/previous_drafts.go

32 lines
788 B
Go
Raw Normal View History

2026-07-01 08:42:51 +00:00
package outreach
import (
"fmt"
"strings"
outreachusecase "haixun-backend/internal/model/outreach_draft/domain/usecase"
)
func FormatPreviousDraftsHint(latest *outreachusecase.DraftSummary) string {
if latest == nil || len(latest.Drafts) == 0 {
return ""
}
lines := []string{"上一版草稿(請避開相同寫法):"}
for i, item := range latest.Drafts {
angle := strings.TrimSpace(item.Angle)
if angle == "" {
angle = fmt.Sprintf("版本%d", i+1)
}
lines = append(lines, fmt.Sprintf("- %s%s", angle, truncateRunes(item.Text, 140)))
}
return strings.Join(lines, "\n")
}
func truncateRunes(text string, max int) string {
text = strings.TrimSpace(text)
runes := []rune(text)
if len(runes) <= max {
return text
}
return string(runes[:max]) + "…"
}