package dispatcher

import (
	"strings"

	"github.com/tidbcloud/AgentTeam/internal/core/domain"
)

// threadTargetFromBinding returns an explicit reply target. Bare channel,
// direct-message, Team root, and Task targets must not populate ThreadTarget,
// which would misclassify the commit subject.
func threadTargetFromBinding(binding conversationBinding) string {
	parsed, err := domain.ParseMessageTargetReference(binding.conversationKey)
	if err != nil {
		return ""
	}
	if parsed.Kind == domain.MessageTargetKindReplyThread {
		return parsed.String()
	}
	if parsed.Kind == domain.MessageTargetKindTeam && strings.TrimSpace(parsed.Team.ShortID) != "" {
		return parsed.String()
	}
	return ""
}
