package promptcompiler

import (
	"strings"

	"github.com/tidbcloud/AgentTeam/desktop/internal/types"
)

const (
	promptWorkflowTeamPurposeMaxRunes = 6000
	promptWorkflowOverlayMaxRunes     = 4000
)

// formatWorkflowTeamContextPromptDetails renders the dedicated Workflow-specific
// hidden Team context from a typed projection. The registered template owns all
// labels, ordering, and branch wording.
func formatWorkflowTeamContextPromptDetails(contexts []types.TeamContext) string {
	data := WorkflowTeamPromptData{}
	for _, context := range contexts {
		if !context.Workflow {
			continue
		}
		data.Teams = append(data.Teams, WorkflowTeamPromptContext{
			Label: formatTeamContextLabel(context.TeamHandle, context.TeamID), ID: strings.TrimSpace(context.TeamID), MemberID: strings.TrimSpace(context.TeamMemberID),
			DisplayName: promptTrimRunes(context.TeamDisplayName, promptWorkflowTeamPurposeMaxRunes), Purpose: promptTrimRunes(context.TeamDescription, promptWorkflowTeamPurposeMaxRunes),
			RoleLabel: strings.TrimSpace(context.RoleLabel), Duty: promptTrimRunes(context.RoleOverlayPrompt, promptWorkflowOverlayMaxRunes),
		})
	}
	if len(data.Teams) == 0 {
		return ""
	}
	return renderRegisteredPromptText("event.workflow_team_context", newWorkflowTeamPromptInput(data))
}
