using Managing.Domain.Statistics;
using MediatR;
using static Managing.Common.Enums;
namespace Managing.Application.ManageBot.Commands
{
///
/// Command to retrieve paginated agent summaries with sorting and filtering
///
public class GetPaginatedAgentSummariesCommand : IRequest<(IEnumerable Results, int TotalCount)>
{
///
/// Page number (1-based)
///
public int Page { get; }
///
/// Number of items per page
///
public int PageSize { get; }
///
/// Field to sort by
///
public SortableFields SortBy { get; }
///
/// Sort order (asc or desc)
///
public string SortOrder { get; }
///
/// Optional list of agent names to filter by
///
public IEnumerable? AgentNames { get; }
public GetPaginatedAgentSummariesCommand(
int page = 1,
int pageSize = 10,
SortableFields sortBy = SortableFields.TotalPnL,
string sortOrder = "desc",
IEnumerable? agentNames = null)
{
Page = page;
PageSize = pageSize;
SortBy = sortBy;
SortOrder = sortOrder;
AgentNames = agentNames;
}
}
}