using RobotNet.VDA5050.Connection;
using RobotNet.VDA5050.Factsheet;
using RobotNet.VDA5050.Order;
using RobotNet.VDA5050.State;
using RobotNet.VDA5050.Type;
using RobotNet.VDA5050.Visualization;
namespace RobotNet10.FleetManager.Services.RobotManager.Models;
///
/// RobotData chứa tất cả thông tin liên quan đến 1 robot
///
public class RobotData
{
///
/// Robot ID (SerialNumber)
///
public string RobotId { get; set; } = string.Empty;
///
/// Latest State message
///
public StateMsg? State { get; set; }
///
/// Latest Connection state
///
public ConnectionState ConnectionState { get; set; }
///
/// Latest Order message
///
public OrderMsg? Order { get; set; }
///
/// Latest Factsheet message
///
public FactSheetMsg? Factsheet { get; set; }
///
/// Latest Visualization message
///
public VisualizationMsg? Visualization { get; set; }
///
/// Last updated timestamp
///
public DateTime LastUpdated { get; set; }
///
/// When order state was cleared by cancel (so new order can be accepted before robot reports empty state).
/// Used to avoid overwriting with stale state from robot; cleared when robot sends empty NodeStates/EdgeStates or after timeout.
///
public DateTime? OrderClearedByCancelAt { get; set; }
}