package run

import (
	"strings"

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

func (handler *Handler) List(request api.WorkspaceScopedRequest) (api.Response, error) {
	limit, err := pageLimit(request)
	if err != nil {
		return api.Response{}, err
	}
	page, err := handler.service.ListRuns(request.Context(), ListRunsInput{
		WorkspaceID: request.WorkspaceID(), Status: strings.TrimSpace(request.Gin.Query("status")),
		Limit: limit, Cursor: strings.TrimSpace(request.Gin.Query("cursor")),
	})
	if err != nil {
		return api.Response{}, err
	}
	items := make([]dto.WorkflowRunResponse, 0, len(page.Items))
	for _, value := range page.Items {
		items = append(items, runResponse(value, false))
	}
	return api.OK(dto.WorkflowRunListResponse{Items: items, NextCursor: page.NextCursor}), nil
}
