using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using CellularManagement.Domain.Entities.Common; namespace CellularManagement.Domain.Entities.Device; /// /// 蜂窝设备实体 /// public class CellularDevice : AuditableEntity { private CellularDevice() { } /// /// 设备名称 /// [Required] [MaxLength(100)] public string Name { get; private set; } = null!; /// /// 设备序列号 /// [Required] [MaxLength(50)] public string SerialNumber { get; private set; } = null!; /// /// 设备描述 /// [MaxLength(500)] public string Description { get; private set; } /// /// 协议版本集合 /// public virtual ICollection ProtocolVersions { get; private set; } = new List(); /// /// Agent端口 /// [Required] public int AgentPort { get; private set; } /// /// IP地址 /// [Required] [MaxLength(45)] public string IpAddress { get; private set; } = null!; /// /// 是否启用 /// public bool IsEnabled { get; private set; } = true; /// /// 设备状态(启动/未启动) /// public bool IsRunning { get; private set; } = false; /// /// 创建设备 /// public static CellularDevice Create( string name, string serialNumber, string description, int agentPort, string ipAddress, string createdBy, bool isEnabled = true, bool isRunning = false) { var device = new CellularDevice { Id = Guid.NewGuid().ToString(), Name = name, SerialNumber = serialNumber, Description = description, AgentPort = agentPort, IpAddress = ipAddress, IsEnabled = isEnabled, IsRunning = isRunning, CreatedAt = DateTime.UtcNow, UpdatedAt = DateTime.UtcNow, CreatedBy = createdBy, UpdatedBy = createdBy }; return device; } /// /// 更新设备 /// public void Update( string name, string serialNumber, string description, int agentPort, string ipAddress, string updatedBy, bool isEnabled = true, bool isRunning = false) { Name = name; SerialNumber = serialNumber; Description = description; AgentPort = agentPort; IpAddress = ipAddress; IsEnabled = isEnabled; IsRunning = isRunning; UpdatedAt = DateTime.UtcNow; UpdatedBy = updatedBy; } /// /// 启用设备 /// public void Enable() { IsEnabled = true; UpdatedAt = DateTime.UtcNow; } /// /// 禁用设备 /// public void Disable() { IsEnabled = false; UpdatedAt = DateTime.UtcNow; } /// /// 启动设备 /// public void Start() { IsRunning = true; UpdatedAt = DateTime.UtcNow; } /// /// 停止设备 /// public void Stop() { IsRunning = false; UpdatedAt = DateTime.UtcNow; } }