SubTaskCompletedDomainEvent.cs 931 Bytes
namespace Rcs.Domain.Entities.DomainEvents.RobotSubTask;

/// <summary>
/// 子任务完成领域事件
/// 当VDA5050 State消息判断子任务(Order)执行完毕时触发
/// @author zzy
/// </summary>
public sealed record SubTaskCompletedDomainEvent : IDomainEvent
{
    /// <summary>
    /// 子任务ID
    /// </summary>
    public Guid SubTaskId { get; init; }

    /// <summary>
    /// 父任务ID
    /// </summary>
    public Guid TaskId { get; init; }

    /// <summary>
    /// 机器人ID(用于后续释放交通管制锁)
    /// </summary>
    public Guid RobotId { get; init; }

    /// <summary>
    /// 事件发生时间
    /// </summary>
    public DateTime OccurredAt { get; init; }

    public SubTaskCompletedDomainEvent(Guid subTaskId, Guid taskId, Guid robotId)
    {
        SubTaskId = subTaskId;
        TaskId = taskId;
        RobotId = robotId;
        OccurredAt = DateTime.Now;
    }
}