Files
OrpaonVision/OrpaonVision.SiteApp/Runtime/Contracts/ConsistencyCheckContracts.cs
2026-04-06 22:08:38 +08:00

235 lines
4.9 KiB
C#

namespace OrpaonVision.SiteApp.Runtime.Contracts;
/// <summary>
/// 一致性状态枚举。
/// </summary>
public enum ConsistencyStatus
{
/// <summary>
/// 正常。
/// </summary>
Ok,
/// <summary>
/// 警告。
/// </summary>
Warning,
/// <summary>
/// 错误。
/// </summary>
Error
}
/// <summary>
/// 健康状态枚举。
/// </summary>
public enum HealthStatus
{
/// <summary>
/// 健康。
/// </summary>
Healthy,
/// <summary>
/// 降级。
/// </summary>
Degraded,
/// <summary>
/// 不健康。
/// </summary>
Unhealthy
}
/// <summary>
/// 一致性检查结果。
/// </summary>
public sealed class ConsistencyCheckResult
{
/// <summary>
/// 检查时间戳。
/// </summary>
public DateTime CheckTimestamp { get; set; }
/// <summary>
/// 检查状态。
/// </summary>
public ConsistencyStatus Status { get; set; }
/// <summary>
/// 检查消息。
/// </summary>
public string Message { get; set; } = string.Empty;
/// <summary>
/// 相机是否连接。
/// </summary>
public bool CameraConnected { get; set; }
/// <summary>
/// YOLO是否初始化。
/// </summary>
public bool YoloInitialized { get; set; }
/// <summary>
/// 像素格式是否一致。
/// </summary>
public bool PixelFormatConsistent { get; set; }
/// <summary>
/// 像素格式检查详情。
/// </summary>
public List<string> PixelFormatDetails { get; set; } = new();
/// <summary>
/// 图像尺寸是否一致。
/// </summary>
public bool ImageSizeConsistent { get; set; }
/// <summary>
/// 图像尺寸检查详情。
/// </summary>
public List<string> ImageSizeDetails { get; set; } = new();
/// <summary>
/// 数据流完整性。
/// </summary>
public bool DataFlowIntegrity { get; set; }
/// <summary>
/// 数据流检查详情。
/// </summary>
public List<string> DataFlowDetails { get; set; } = new();
/// <summary>
/// 建议列表。
/// </summary>
public List<string> Recommendations { get; set; } = new();
}
/// <summary>
/// 健康检查结果。
/// </summary>
public sealed class HealthCheckResult
{
/// <summary>
/// 检查时间戳。
/// </summary>
public DateTime Timestamp { get; set; }
/// <summary>
/// 整体状态。
/// </summary>
public HealthStatus OverallStatus { get; set; }
/// <summary>
/// 相机健康状态。
/// </summary>
public ComponentHealth CameraHealth { get; set; } = new();
/// <summary>
/// YOLO健康状态。
/// </summary>
public ComponentHealth YoloHealth { get; set; } = new();
/// <summary>
/// 系统健康状态。
/// </summary>
public ComponentHealth SystemHealth { get; set; } = new();
/// <summary>
/// 健康检查摘要。
/// </summary>
public string Summary { get; set; } = string.Empty;
}
/// <summary>
/// 组件健康状态。
/// </summary>
public sealed class ComponentHealth
{
/// <summary>
/// 组件名称。
/// </summary>
public string ComponentName { get; set; } = string.Empty;
/// <summary>
/// 健康状态。
/// </summary>
public HealthStatus Status { get; set; }
/// <summary>
/// 详细信息。
/// </summary>
public List<string> Details { get; set; } = new();
/// <summary>
/// 指标数据。
/// </summary>
public Dictionary<string, object> Metrics { get; set; } = new();
}
/// <summary>
/// 像素格式检查结果。
/// </summary>
internal sealed class PixelFormatCheckResult
{
/// <summary>
/// 是否一致。
/// </summary>
public bool IsConsistent { get; set; }
/// <summary>
/// 检查详情。
/// </summary>
public List<string> Details { get; set; } = new();
/// <summary>
/// 建议列表。
/// </summary>
public List<string> Recommendations { get; set; } = new();
}
/// <summary>
/// 图像尺寸检查结果。
/// </summary>
internal sealed class ImageSizeCheckResult
{
/// <summary>
/// 是否一致。
/// </summary>
public bool IsConsistent { get; set; }
/// <summary>
/// 检查详情。
/// </summary>
public List<string> Details { get; set; } = new();
/// <summary>
/// 建议列表。
/// </summary>
public List<string> Recommendations { get; set; } = new();
}
/// <summary>
/// 数据流检查结果。
/// </summary>
internal sealed class DataFlowCheckResult
{
/// <summary>
/// 是否完整。
/// </summary>
public bool IsIntegrity { get; set; }
/// <summary>
/// 检查详情。
/// </summary>
public List<string> Details { get; set; } = new();
/// <summary>
/// 建议列表。
/// </summary>
public List<string> Recommendations { get; set; } = new();
}