48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace RobotNet10.FleetManager.Services.OpenACS;
|
|
|
|
public class TrafficRequestType
|
|
{
|
|
public static string IN => "in";
|
|
public static string OUT => "out";
|
|
}
|
|
|
|
public class TrafficACSRequestBody(string agvId, string trafficZoneId, string inOut)
|
|
{
|
|
[JsonPropertyName("agvid")]
|
|
[Required]
|
|
public string AgvId { get; set; } = agvId;
|
|
|
|
[JsonPropertyName("area")]
|
|
[Required]
|
|
public string TrafficZoneId { get; set; } = trafficZoneId;
|
|
|
|
[JsonPropertyName("inout")]
|
|
[Required]
|
|
public string InOut { get; set; } = inOut;
|
|
}
|
|
|
|
public class TrafficACSRequest
|
|
{
|
|
[JsonPropertyName("header")]
|
|
[Required]
|
|
public ACSHeader Header { get; set; } = new("TRAFFIC_REQ", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
|
|
|
|
[JsonPropertyName("body")]
|
|
[Required]
|
|
public TrafficACSRequestBody Body { get; set; }
|
|
|
|
public TrafficACSRequest(string agvId, string trafficZoneId, string inOut)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(agvId))
|
|
throw new ArgumentException("AGV ID không thể rỗng.", nameof(agvId));
|
|
if (string.IsNullOrWhiteSpace(trafficZoneId))
|
|
throw new ArgumentException("Traffic Zone ID không thể rỗng.", nameof(trafficZoneId));
|
|
if (string.IsNullOrWhiteSpace(inOut))
|
|
throw new ArgumentException("In OUT không thể rỗng.", nameof(inOut));
|
|
|
|
Body = new(agvId, trafficZoneId, inOut);
|
|
}
|
|
} |