using static Managing.Common.Enums;
namespace Managing.Api.Models.Requests;
///
/// Request model for getting paginated bots with filtering and sorting
///
public class GetBotsPaginatedRequest
{
///
/// Page number (1-based). Default is 1.
///
public int PageNumber { get; set; } = 1;
///
/// Number of items per page. Default is 10, maximum is 100.
///
public int PageSize { get; set; } = 10;
///
/// Filter by bot status. If null, returns bots of all statuses.
///
public BotStatus? Status { get; set; }
///
/// Filter by user ID. If null, returns bots for all users.
///
public int? UserId { get; set; }
///
/// Filter by bot name (partial match, case-insensitive). If null, no name filtering is applied.
///
public string? Name { get; set; }
///
/// Filter by ticker (partial match, case-insensitive). If null, no ticker filtering is applied.
///
public string? Ticker { get; set; }
///
/// Filter by agent name (partial match, case-insensitive). If null, no agent name filtering is applied.
///
public string? AgentName { get; set; }
///
/// Sort field. Valid values: "Name", "Ticker", "Status", "CreateDate", "StartupTime", "Pnl", "WinRate", "AgentName".
/// Default is "CreateDate".
///
public string SortBy { get; set; } = "CreateDate";
///
/// Sort direction. Default is "Desc" (descending).
///
public string SortDirection { get; set; } = "Desc";
}