|  |  | 1 |  | using LGDXRobotCloud.Utilities.Enums; | 
|  |  | 2 |  |  | 
|  |  | 3 |  | namespace LGDXRobotCloud.Data.Models.Redis; | 
|  |  | 4 |  |  | 
|  |  | 5 |  | public record AutoTaskNavProgress | 
|  |  | 6 |  | { | 
|  | 0 | 7 |  |   public double Eta { get; set; } | 
|  | 0 | 8 |  |   public int Recoveries { get; set; } | 
|  | 0 | 9 |  |   public double DistanceRemaining { get; set; } | 
|  | 0 | 10 |  |   public int WaypointsRemaining { get; set; } | 
|  | 0 | 11 |  |   public List<Robot2Dof> Plan { get; set; } = []; | 
|  |  | 12 |  | } | 
|  |  | 13 |  |  | 
|  |  | 14 |  | public record Robot2Dof | 
|  |  | 15 |  | { | 
|  |  | 16 |  |   public double X { get; set; } | 
|  |  | 17 |  |   public double Y { get; set; } | 
|  |  | 18 |  | } | 
|  |  | 19 |  |  | 
|  |  | 20 |  | public record RobotDof | 
|  |  | 21 |  | { | 
|  |  | 22 |  |   public double X { get; set; } | 
|  |  | 23 |  |   public double Y { get; set; } | 
|  |  | 24 |  |   public double Rotation { get; set; } | 
|  |  | 25 |  | } | 
|  |  | 26 |  |  | 
|  |  | 27 |  | public record RobotCriticalStatus | 
|  |  | 28 |  | { | 
|  |  | 29 |  |   public bool HardwareEmergencyStop { get; set; } | 
|  |  | 30 |  |   public bool SoftwareEmergencyStop { get; set; } | 
|  |  | 31 |  |   public List<int> BatteryLow { get; set; } = []; | 
|  |  | 32 |  |   public List<int> MotorDamaged { get; set; } = []; | 
|  |  | 33 |  | } | 
|  |  | 34 |  |  | 
|  |  | 35 |  | public record RobotData | 
|  |  | 36 |  | { | 
|  |  | 37 |  |   public RobotStatus RobotStatus { get; set; } = RobotStatus.Offline; | 
|  |  | 38 |  |   public RobotCriticalStatus CriticalStatus { get; set; } = new(); | 
|  |  | 39 |  |   public List<double> Batteries { get; set; } = []; | 
|  |  | 40 |  |   public RobotDof Position { get; set; } = new(); | 
|  |  | 41 |  |   public AutoTaskNavProgress NavProgress { get; set; } = new(); | 
|  |  | 42 |  |   public bool PauseTaskAssignment { get; set; } | 
|  |  | 43 |  | } |