61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
|
|
|
|
/// <summary>
|
|
/// Represents a conflict between robots
|
|
/// </summary>
|
|
public class Conflict
|
|
{
|
|
/// <summary>
|
|
/// Type of conflict
|
|
/// </summary>
|
|
public ConflictType Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// List of robot IDs involved in this conflict
|
|
/// </summary>
|
|
public List<string> InvolvedRobots { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// List of conflicting edge IDs
|
|
/// </summary>
|
|
public List<Guid> ConflictingEdges { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// List of conflicting node IDs
|
|
/// </summary>
|
|
public List<Guid> ConflictingNodes { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// When the conflict was detected
|
|
/// </summary>
|
|
public DateTime DetectedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// Severity of the conflict
|
|
/// </summary>
|
|
public ConflictSeverity Severity { get; set; }
|
|
|
|
/// <summary>
|
|
/// Resolution strategy for this conflict
|
|
/// </summary>
|
|
public ConflictResolution? Resolution { get; set; }
|
|
|
|
/// <summary>
|
|
/// Additional details about the conflict
|
|
/// </summary>
|
|
public Dictionary<string, object> ConflictDetails { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Estimated number of new conflicts that may arise from resolving this conflict
|
|
/// </summary>
|
|
public int EstimatedNewConflicts { get; set; }
|
|
|
|
/// <summary>
|
|
/// List of other conflict keys that can be resolved by resolving this conflict
|
|
/// </summary>
|
|
public List<string> CanResolveConflicts { get; set; } = new();
|
|
}
|
|
|
|
|
|
|