using RobotNet.VDA5050.Type;
using System.Text.Json.Serialization;
namespace RobotNet.VDA5050.InstantAction;
///
/// Action data transfer object for VDMA LIF actions
/// Used in VehicleType.Actions, NodeVehicleProperty.Actions, EdgeVehicleProperty.Actions
///
public class ActionLIF
{
///
/// Type of action (e.g., "pick", "drop", "charge")
///
[JsonPropertyName("actionType")]
public string ActionType { get; set; } = string.Empty;
///
/// Description of the action
///
[JsonPropertyName("actionDescription")]
public string? ActionDescription { get; set; }
///
/// Requirement type: REQUIRED, CONDITIONAL, OPTIONAL
///
[JsonConverter(typeof(JsonStringEnumConverter))]
[JsonPropertyName("requirementType")]
public RequirementType RequirementType { get; set; }
///
/// Blocking type: NONE, SOFT, HARD
///
[JsonConverter(typeof(JsonStringEnumConverter))]
[JsonPropertyName("blockingType")]
public BlockingType BlockingType { get; set; }
///
/// Action parameters as key-value pairs
///
[JsonPropertyName("actionParameters")]
public List ActionParameters { get; set; } = [];
}