using CommunityToolkit.Mvvm.ComponentModel; namespace YZWater.Core.Models; /// /// 系统配置模型 /// public partial class SystemConfig : ObservableObject { /// /// PLC IP 地址 /// [ObservableProperty] private string _plcIp = "192.168.0.150"; /// /// PLC 端口 /// [ObservableProperty] private int _plcPort = 5000; /// /// 是否自动连接 /// [ObservableProperty] private bool _autoConnect = true; /// /// 液位高报警值 /// [ObservableProperty] private float _levelHighAlarm = 80f; /// /// 液位低报警值 /// [ObservableProperty] private float _levelLowAlarm = 20f; /// /// 流量高报警值 /// [ObservableProperty] private float _flowHighAlarm = 100f; /// /// 流量低报警值 /// [ObservableProperty] private float _flowLowAlarm = 5f; /// /// 泵频率设置 /// [ObservableProperty] private float _pumpFrequency = 50f; /// /// 系统名称 /// [ObservableProperty] private string _systemName = "污水处理监控系统"; /// /// 公司名称 /// [ObservableProperty] private string _companyName = "扬州旭轩科技有限公司"; /// /// 联系人 /// [ObservableProperty] private string _contactPerson = "赵经理"; /// /// 联系电话 /// [ObservableProperty] private string _contactPhone = "18115099090"; /// /// 是否深色主题 /// [ObservableProperty] private bool _isDarkTheme; /// /// 是否中文语言 /// [ObservableProperty] private bool _isChinese = true; /// /// 中控服务端口 /// [ObservableProperty] private int _hubPort = 8765; /// /// 中控服务端地址(客户端模式使用) /// [ObservableProperty] private string _hubServerUrl = "ws://localhost:8765"; /// /// 运行模式:Direct/Server/Client /// [ObservableProperty] private string _runMode = "Direct"; /// /// Hub 通信令牌(服务端和客户端必须匹配) /// [ObservableProperty] private string _hubToken = string.Empty; /// /// 是否记住登录用户名 /// [ObservableProperty] private bool _rememberUserName; /// /// 保存的用户名 /// [ObservableProperty] private string _savedUserName = string.Empty; /// /// 当前激活的项目名称(对应 projects/ 目录下的 JSON 文件名,不含后缀) /// 空字符串表示使用内置默认项目配置 /// [ObservableProperty] private string _activeProject = string.Empty; /// /// PLC 轮询间隔(毫秒) /// [ObservableProperty] private int _plcPollingIntervalMs = 1000; /// /// 是否开机自启动 /// [ObservableProperty] private bool _runAtStartup; /// /// PLC 地址覆盖(key=标签名如 Tank1Level, value=地址如 VD100) /// 空则使用默认地址 /// public Dictionary PlcAddresses { get; set; } = new(); /// /// PLC 协议类型:SiemensS7 / MitsubishiMC / OmronFins / ModbusTcp / AllenBradley /// 默认 SiemensS7(当前项目使用 S7-200 Smart) /// [ObservableProperty] private string _plcProtocol = "SiemensS7"; // ═══ 数据保留配置 ═══ /// /// 数据保留配置 /// public DataRetentionConfig DataRetention { get; set; } = new(); // ═══ 备份配置 ═══ /// /// 备份配置 /// public BackupConfig Backup { get; set; } = new(); } /// /// 数据保留配置 /// public class DataRetentionConfig { /// 报警记录保留天数(默认 90 天) public int AlarmRecordRetentionDays { get; set; } = 90; /// 流量记录保留天数(默认 360 天) public int FlowRecordRetentionDays { get; set; } = 360; /// 模拟量记录保留天数(默认 360 天) public int AnalogRecordRetentionDays { get; set; } = 360; /// 审计日志保留天数(默认 365 天) public int AuditLogRetentionDays { get; set; } = 365; } /// /// 备份配置 /// public class BackupConfig { /// 是否启用定时备份 public bool EnableScheduledBackup { get; set; } = true; /// 定时备份间隔(小时,默认 24 小时) public int BackupIntervalHours { get; set; } = 24; /// 保留备份数量(默认 7 个) public int KeepBackupCount { get; set; } = 7; }