* Trading bot Grain * Fix a bit more of the trading bot * Advance on the tradingbot grain * Fix build * Fix db script * Fix user login * Fix a bit backtest * Fix cooldown and backtest * start fixing bot start * Fix startup * Setup local db * Fix build and update candles and scenario * Add bot registry * Add reminder * Updateing the grains * fix bootstraping * Save stats on tick * Save bot data every tick * Fix serialization * fix save bot stats * Fix get candles * use dict instead of list for position * Switch hashset to dict * Fix a bit * Fix bot launch and bot view * add migrations * Remove the tolist * Add agent grain * Save agent summary * clean * Add save bot * Update get bots * Add get bots * Fix stop/restart * fix Update config * Update scanner table on new backtest saved * Fix backtestRowDetails.tsx * Fix agentIndex * Update agentIndex * Fix more things * Update user cache * Fix * Fix account load/start/restart/run
55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
using static Managing.Common.Enums;
|
|
|
|
namespace Managing.Api.Models.Requests;
|
|
|
|
/// <summary>
|
|
/// Request model for getting paginated bots with filtering and sorting
|
|
/// </summary>
|
|
public class GetBotsPaginatedRequest
|
|
{
|
|
/// <summary>
|
|
/// Page number (1-based). Default is 1.
|
|
/// </summary>
|
|
public int PageNumber { get; set; } = 1;
|
|
|
|
/// <summary>
|
|
/// Number of items per page. Default is 10, maximum is 100.
|
|
/// </summary>
|
|
public int PageSize { get; set; } = 10;
|
|
|
|
/// <summary>
|
|
/// Filter by bot status. If null, returns bots of all statuses.
|
|
/// </summary>
|
|
public BotStatus? Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// Filter by user ID. If null, returns bots for all users.
|
|
/// </summary>
|
|
public int? UserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Filter by bot name (partial match, case-insensitive). If null, no name filtering is applied.
|
|
/// </summary>
|
|
public string? Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// Filter by ticker (partial match, case-insensitive). If null, no ticker filtering is applied.
|
|
/// </summary>
|
|
public string? Ticker { get; set; }
|
|
|
|
/// <summary>
|
|
/// Filter by agent name (partial match, case-insensitive). If null, no agent name filtering is applied.
|
|
/// </summary>
|
|
public string? AgentName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Sort field. Valid values: "Name", "Ticker", "Status", "CreateDate", "StartupTime", "Pnl", "WinRate", "AgentName".
|
|
/// Default is "CreateDate".
|
|
/// </summary>
|
|
public string SortBy { get; set; } = "CreateDate";
|
|
|
|
/// <summary>
|
|
/// Sort direction. Default is "Desc" (descending).
|
|
/// </summary>
|
|
public string SortDirection { get; set; } = "Desc";
|
|
} |