Initial commit

This commit is contained in:
2026-07-03 16:37:12 +07:00
commit 63b8c1ea8b
1931 changed files with 640587 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
namespace RobotNet10.FleetManager.Services.TrafficControl.Models;
/// <summary>
/// Represents a complete route for a robot with Base and Horizon segments
/// </summary>
public class RobotRoute
{
/// <summary>
/// Robot ID (SerialNumber)
/// </summary>
public string RobotId { get; set; } = string.Empty;
/// <summary>
/// Order ID from VDA5050
/// </summary>
public string OrderId { get; set; } = string.Empty;
/// <summary>
/// Order Update ID from VDA5050
/// </summary>
public int OrderUpdateId { get; set; }
/// <summary>
/// Full route (Base + Horizon)
/// </summary>
public List<RouteSegment> FullRoute { get; set; } = [];
/// <summary>
/// Base: Released segments that robot is currently executing
/// </summary>
public List<RouteSegment> Base { get; set; } = [];
/// <summary>
/// Horizon: Unreleased segments waiting for conditions
/// </summary>
public List<RouteSegment> Horizon { get; set; } = [];
/// <summary>
/// Current position index in the route
/// </summary>
public int CurrentSegmentIndex { get; set; }
/// <summary>
/// Route creation timestamp
/// </summary>
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
/// <summary>
/// Last update timestamp
/// </summary>
public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
/// <summary>
/// Number of reroute attempts for this route (to prevent infinite rerouting)
/// </summary>
public int RerouteAttempts { get; set; } = 0;
/// <summary>
/// Node ID where robot should wait (if WaitAtNode resolution is applied)
/// </summary>
public Guid? WaitNodeId { get; set; }
/// <summary>
/// Time until which robot should wait at WaitNodeId (if WaitAtNode resolution is applied)
/// </summary>
public DateTime? WaitUntil { get; set; }
}