using System.Collections.Generic; using Newtonsoft.Json; #nullable enable namespace BililiveRecorder.Core.Config.V3 { public sealed class ConfigV3 : ConfigBase { public override int Version => 3; [JsonProperty("global")] public GlobalConfig Global { get; set; } = new GlobalConfig(); [JsonProperty("rooms")] public List Rooms { get; set; } = new List(); // for CLI [JsonIgnore] public bool DisableConfigSave { get; set; } = false; // for CLI [JsonIgnore] public string? ConfigPathOverride { get; set; } } public partial class RoomConfig : IFileNameConfig { public RoomConfig() : base(x => x.AutoMap(p => new[] { "Has" + p.Name })) { } internal void SetParent(GlobalConfig? config) => this.Parent = config; public string? WorkDirectory => this.GetPropertyValue(); } public partial class GlobalConfig : IFileNameConfig { public GlobalConfig() : base(x => x.AutoMap(p => new[] { "Has" + p.Name })) { this.Parent = DefaultConfig.Instance; } /// /// 当前工作目录 /// public string? WorkDirectory { get => this.GetPropertyValue(); set => this.SetPropertyValue(value); } } }