Files
BQP/srcs/RobotNet10/Shared/RobotNet.VDA5050/InstantAction/ActionLIF.cs
2026-07-13 09:25:40 +07:00

44 lines
1.3 KiB
C#

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