using RobotNet.RobotShares.Dtos;
using RobotNet.RobotShares.VDA5050.State;
using RobotNet.RobotShares.VDA5050.Visualization;

namespace RobotNet.RobotShares.Models;

public class RobotStateModel
{
    public string RobotId { get; set; } = string.Empty;
    public Guid MapId { get; set; }
    public bool IsOnline { get; set; }
    public string State { get; set; } = string.Empty;
    public bool NewBaseRequest { get; set; }
    public RobotOrderDto OrderState { get; set; } = new();
    public RobotActionDto[] ActionStates { get; set; } = [];
    public NodeState[] NodeStates { get; set; } = [];
    public EdgeState[] EdgeStates { get; set; } = [];
    public AgvPosition AgvPosition { get; set; } = new();
    public Velocity Velocity { get; set; } = new();
    public Load[] Loads { get; set; } = [];
    public BatteryState BatteryState { get; set; } = new();
    public Error[] Errors { get; set; } = [];
    public Information[] Information { get; set; } = [];
    public SafetyState SafetyState { get; set; } = new();
}