RobotRegisteredDomainEvent.cs 1.72 KB
namespace Rcs.Domain.Entities.DomainEvents.Robot;

/// <summary>
/// 机器人注册领域事件
/// </summary>
public sealed record RobotRegisteredDomainEvent : IDomainEvent
{
    /// <summary>
    /// 机器人系统ID
    /// </summary>
    public Guid RobotId { get; init; }

    /// <summary>
    /// 机器人编码
    /// </summary>
    public string RobotCode { get; init; }

    /// <summary>
    /// 机器人名称
    /// </summary>
    public string RobotName { get; init; }

    /// <summary>
    /// 机器人序列号
    /// </summary>
    public string RobotSerialNumber { get; init; }

    /// <summary>
    /// 制造商
    /// </summary>
    public string RobotManufacturer { get; init; }

    /// <summary>
    /// 机器人类型
    /// </summary>
    public RobotType RobotType { get; init; }

    /// <summary>
    /// 协议名称
    /// </summary>
    public string ProtocolName { get; init; }

    /// <summary>
    /// 协议版本
    /// </summary>
    public string ProtocolVersion { get; init; }

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

    public RobotRegisteredDomainEvent(
        Guid robotId,
        string robotCode,
        string robotName,
        string robotSerialNumber,
        string robotManufacturer,
        RobotType robotType,
        string protocolName,
        string protocolVersion)
    {
        RobotId = robotId;
        RobotCode = robotCode;
        RobotName = robotName;
        RobotSerialNumber = robotSerialNumber;
        RobotManufacturer = robotManufacturer;
        RobotType = robotType;
        ProtocolName = protocolName;
        ProtocolVersion = protocolVersion;
        OccurredAt = DateTime.Now;
    }
}