RobotRegisteredDomainEvent.cs 1.96 KB
namespace Rcs.Domain.Entities.DomainEvents
{
    /// <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;
        }
    }
}