IFatigueTestConfigService.cs 1.73 KB
namespace Rcs.Application.Services;

/// <summary>
/// Fatigue test config service
/// </summary>
public interface IFatigueTestConfigService
{
    Task<List<FatigueTestConfig>> GetConfigsAsync(CancellationToken cancellationToken = default);

    Task<FatigueTestConfig?> GetConfigByIdAsync(string configId, CancellationToken cancellationToken = default);

    Task<FatigueTestConfig?> UpsertConfigAsync(FatigueTestConfig config, CancellationToken cancellationToken = default);

    Task<bool> DeleteConfigAsync(string configId, CancellationToken cancellationToken = default);

    Task<bool> StartAsync(string configId, CancellationToken cancellationToken = default);

    Task<bool> StopAsync(string configId, CancellationToken cancellationToken = default);

    Task<List<FatigueTestStatus>> GetStatusesAsync(CancellationToken cancellationToken = default);
}

/// <summary>
/// Fatigue test config
/// </summary>
public class FatigueTestConfig
{
    public string ConfigId { get; set; } = string.Empty;

    public string MapId { get; set; } = string.Empty;

    public List<string> RobotIds { get; set; } = new();

    public List<string> LocationIds { get; set; } = new();

    public bool IsRunning { get; set; }

    public int TaskIntervalMs { get; set; } = 1000;

    public DateTime CreatedAt { get; set; } = DateTime.Now;

    public DateTime UpdatedAt { get; set; } = DateTime.Now;
}

/// <summary>
/// Fatigue test status
/// </summary>
public class FatigueTestStatus
{
    public string ConfigId { get; set; } = string.Empty;

    public string MapId { get; set; } = string.Empty;

    public bool IsRunning { get; set; }

    public int RobotCount { get; set; }

    public int LocationCount { get; set; }

    public int TaskIntervalMs { get; set; }
}