package trigger

import (
	"strings"

	"github.com/tidbcloud/AgentTeam/internal/api"
	"github.com/tidbcloud/AgentTeam/internal/api/dto"
	"github.com/tidbcloud/AgentTeam/internal/api/dto/converter"
)

// Validate handles POST /api/v1/workspaces/:workspaceId/triggers:validate.
// It validates a trigger configuration for the authenticated user without persisting it.
func (handler *ValidationHandler) Validate(r api.WorkspaceScopedJSON[dto.TriggerValidateRequest]) (api.Response, error) {
	body := r.Body
	result, err := handler.triggerService.ValidateForOwner(
		r.Context(),
		r.UserID(),
		r.WorkspaceID(),
		converter.FromTriggerMutationRequest(body.TriggerMutationRequest),
		strings.TrimSpace(body.TriggerID),
	)
	if err != nil {
		return api.Response{}, err
	}
	return api.OK(result), nil
}
