You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
3.5 KiB
143 lines
3.5 KiB
2 months ago
|
using System.ComponentModel.DataAnnotations;
|
||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||
|
using CellularManagement.Domain.Entities.Common;
|
||
|
|
||
|
namespace CellularManagement.Domain.Entities.Device;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 蜂窝设备实体
|
||
|
/// </summary>
|
||
|
public class CellularDevice : AuditableEntity
|
||
|
{
|
||
|
private CellularDevice() { }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备ID
|
||
|
/// </summary>
|
||
|
[Key]
|
||
|
public string Id { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备名称
|
||
|
/// </summary>
|
||
|
[Required]
|
||
|
[MaxLength(100)]
|
||
|
public string Name { get; private set; } = null!;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备序列号
|
||
|
/// </summary>
|
||
|
[Required]
|
||
|
[MaxLength(50)]
|
||
|
public string SerialNumber { get; private set; } = null!;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备描述
|
||
|
/// </summary>
|
||
|
[MaxLength(500)]
|
||
|
public string Description { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备类型ID
|
||
|
/// </summary>
|
||
|
[Required]
|
||
|
public string DeviceTypeId { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备类型
|
||
|
/// </summary>
|
||
|
[ForeignKey(nameof(DeviceTypeId))]
|
||
|
public virtual DeviceType DeviceType { get; private set; } = null!;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备状态ID
|
||
|
/// </summary>
|
||
|
[Required]
|
||
|
public string StatusId { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备状态
|
||
|
/// </summary>
|
||
|
[ForeignKey(nameof(StatusId))]
|
||
|
public virtual DeviceStatus Status { get; private set; } = null!;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 协议版本ID
|
||
|
/// </summary>
|
||
|
[Required]
|
||
|
public string ProtocolVersionId { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 协议版本
|
||
|
/// </summary>
|
||
|
[ForeignKey(nameof(ProtocolVersionId))]
|
||
|
public virtual ProtocolVersion ProtocolVersion { get; private set; } = null!;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 当前固件版本
|
||
|
/// </summary>
|
||
|
[Required]
|
||
|
[MaxLength(50)]
|
||
|
public string FirmwareVersion { get; private set; } = null!;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 创建时间
|
||
|
/// </summary>
|
||
|
public DateTime CreatedAt { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 更新时间
|
||
|
/// </summary>
|
||
|
public DateTime UpdatedAt { get; private set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 创建设备
|
||
|
/// </summary>
|
||
|
public static CellularDevice Create(
|
||
|
string name,
|
||
|
string serialNumber,
|
||
|
string description,
|
||
|
string deviceTypeId,
|
||
|
string statusId,
|
||
|
string protocolVersionId,
|
||
|
string firmwareVersion)
|
||
|
{
|
||
|
var device = new CellularDevice
|
||
|
{
|
||
|
Id = Guid.NewGuid().ToString(),
|
||
|
Name = name,
|
||
|
SerialNumber = serialNumber,
|
||
|
Description = description,
|
||
|
DeviceTypeId = deviceTypeId,
|
||
|
StatusId = statusId,
|
||
|
ProtocolVersionId = protocolVersionId,
|
||
|
FirmwareVersion = firmwareVersion,
|
||
|
CreatedAt = DateTime.UtcNow,
|
||
|
UpdatedAt = DateTime.UtcNow
|
||
|
};
|
||
|
|
||
|
return device;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 更新设备
|
||
|
/// </summary>
|
||
|
public void Update(
|
||
|
string name,
|
||
|
string serialNumber,
|
||
|
string description,
|
||
|
string deviceTypeId,
|
||
|
string statusId,
|
||
|
string protocolVersionId,
|
||
|
string firmwareVersion)
|
||
|
{
|
||
|
Name = name;
|
||
|
SerialNumber = serialNumber;
|
||
|
Description = description;
|
||
|
DeviceTypeId = deviceTypeId;
|
||
|
StatusId = statusId;
|
||
|
ProtocolVersionId = protocolVersionId;
|
||
|
FirmwareVersion = firmwareVersion;
|
||
|
UpdatedAt = DateTime.UtcNow;
|
||
|
}
|
||
|
}
|