Add admin page for bundle

This commit is contained in:
2025-11-10 11:50:20 +07:00
parent ecf07a7863
commit 0861e9a8d2
18 changed files with 2071 additions and 49 deletions

View File

@@ -0,0 +1,35 @@
#nullable enable
namespace Managing.Api.Models.Responses;
/// <summary>
/// Response model for bundle backtest request summary statistics
/// </summary>
public class BundleBacktestRequestSummaryResponse
{
/// <summary>
/// Summary of bundle requests by status
/// </summary>
public List<BundleBacktestRequestStatusSummary> StatusSummary { get; set; } = new();
/// <summary>
/// Total number of bundle backtest requests
/// </summary>
public int TotalRequests { get; set; }
}
/// <summary>
/// Summary of bundle backtest requests by status
/// </summary>
public class BundleBacktestRequestStatusSummary
{
/// <summary>
/// The status name
/// </summary>
public string Status { get; set; } = string.Empty;
/// <summary>
/// The count of bundle requests with this status
/// </summary>
public int Count { get; set; }
}

View File

@@ -0,0 +1,67 @@
#nullable enable
namespace Managing.Api.Models.Responses;
/// <summary>
/// Response model for paginated bundle backtest requests
/// </summary>
public class PaginatedBundleBacktestRequestsResponse
{
/// <summary>
/// The list of bundle backtest requests for the current page
/// </summary>
public IEnumerable<BundleBacktestRequestListItemResponse> BundleRequests { get; set; } = new List<BundleBacktestRequestListItemResponse>();
/// <summary>
/// Total number of bundle backtest requests across all pages
/// </summary>
public int TotalCount { get; set; }
/// <summary>
/// Current page number
/// </summary>
public int CurrentPage { get; set; }
/// <summary>
/// Number of items per page
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// Total number of pages
/// </summary>
public int TotalPages { get; set; }
/// <summary>
/// Whether there are more pages available
/// </summary>
public bool HasNextPage { get; set; }
/// <summary>
/// Whether there are previous pages available
/// </summary>
public bool HasPreviousPage { get; set; }
}
/// <summary>
/// Response model for a bundle backtest request list item (summary view)
/// </summary>
public class BundleBacktestRequestListItemResponse
{
public Guid RequestId { get; set; }
public string Name { get; set; } = string.Empty;
public int Version { get; set; }
public string Status { get; set; } = string.Empty;
public DateTime CreatedAt { get; set; }
public DateTime? CompletedAt { get; set; }
public DateTime UpdatedAt { get; set; }
public int TotalBacktests { get; set; }
public int CompletedBacktests { get; set; }
public int FailedBacktests { get; set; }
public double ProgressPercentage { get; set; }
public int? UserId { get; set; }
public string? UserName { get; set; }
public string? ErrorMessage { get; set; }
public string? CurrentBacktest { get; set; }
public int? EstimatedTimeRemainingSeconds { get; set; }
}