RobotStatusChangedDomainEvent.cs
3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
namespace Rcs.Domain.Entities.DomainEvents
{
/// <summary>
/// 机器人状态变更领域事件
/// </summary>
public sealed record RobotStatusChangedDomainEvent : 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 RobotStatus OldStatus { get; init; }
/// <summary>
/// 新状态
/// </summary>
public RobotStatus NewStatus { get; init; }
/// <summary>
/// 在线状态
/// </summary>
public OnlineStatus OnlineStatus { get; init; }
/// <summary>
/// 电池电量
/// </summary>
public double? BatteryLevel { get; init; }
/// <summary>
/// 当前位置X
/// </summary>
public double? CurrentX { get; init; }
/// <summary>
/// 当前位置Y
/// </summary>
public double? CurrentY { get; init; }
/// <summary>
/// 当前角度
/// </summary>
public double? CurrentTheta { get; init; }
/// <summary>
/// 当前地图ID
/// </summary>
public Guid? CurrentMapCodeId { get; init; }
/// <summary>
/// 是否正在行驶
/// </summary>
public bool Driving { get; init; }
/// <summary>
/// 是否充电
/// </summary>
public bool Charging { get; init; }
/// <summary>
/// 是否暂停
/// </summary>
public bool Paused { get; init; }
/// <summary>
/// 事件发生时间
/// </summary>
public DateTime OccurredAt { get; init; }
public RobotStatusChangedDomainEvent(
Guid robotId,
string robotCode,
string robotName,
RobotStatus oldStatus,
RobotStatus newStatus,
OnlineStatus onlineStatus,
double? batteryLevel = null,
double? currentX = null,
double? currentY = null,
double? currentTheta = null,
Guid? currentMapCodeId = null,
bool driving = false,
bool charging = false,
bool paused = false)
{
RobotId = robotId;
RobotCode = robotCode;
RobotName = robotName;
OldStatus = oldStatus;
NewStatus = newStatus;
OnlineStatus = onlineStatus;
BatteryLevel = batteryLevel;
CurrentX = currentX;
CurrentY = currentY;
CurrentTheta = currentTheta;
CurrentMapCodeId = currentMapCodeId;
Driving = driving;
Charging = charging;
Paused = paused;
OccurredAt = DateTime.Now;
}
}
}