package app

import (
	"strings"

	"github.com/tidbcloud/AgentTeam/internal/store/message"
	"github.com/tidbcloud/AgentTeam/internal/store/model"
)

func humanAuthorProfileFromUser(user model.User, memberID string, memberDisplayName string) message.AuthorProfile {
	trimmedMemberID := strings.TrimSpace(memberID)
	return message.AuthorProfile{
		ActorType:   message.AuthorActorTypeHuman,
		PrincipalID: strings.TrimSpace(user.ID),
		MemberID:    trimmedMemberID,
		TargetID:    trimmedMemberID,
		DisplayName: preferredDisplayName(
			strings.TrimSpace(user.DisplayName),
			strings.TrimSpace(memberDisplayName),
			strings.TrimSpace(user.Name),
			trimmedMemberID,
		),
		AvatarURL: strings.TrimSpace(user.AvatarURL),
	}
}

func attachAppMessageToDelivery(delivery *message.MessageDelivery, appMessage *message.AppMessage) {
	if delivery == nil || appMessage == nil {
		return
	}
	delivery.Message.AuthorProfile = appMessage.EffectiveAuthorProfile()
	delivery.AppMessage = appMessage
}
