#nullable enable
#pragma warning disable IDE0079 // 请删除不必要的忽略
#pragma warning disable SA1634 // File header should show copyright
#pragma warning disable CS8601 // 引用类型赋值可能为 null。
#pragma warning disable CS0108 // 成员隐藏继承的成员；缺少关键字 new
//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由包 BD.Common.Settings.V4.SourceGenerator.Tools 源生成。
//
//     对此文件的更改可能会导致不正确的行为，并且如果
//     重新生成代码，这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

// ReSharper disable once CheckNamespace
namespace BD.WTTS.Settings.Abstractions;

public partial interface IGameAccountSettings
{
    static IGameAccountSettings? Instance
        => Ioc.Get_Nullable<IOptionsMonitor<IGameAccountSettings>>()?.CurrentValue;

    /// <summary>
    /// 账号备注字典
    /// </summary>
    ConcurrentDictionary<string, string?>? AccountRemarks { get; set; }

    /// <summary>
    /// 账号备注字典的默认值
    /// </summary>
    static readonly ConcurrentDictionary<string, string?> DefaultAccountRemarks = new();

    /// <summary>
    /// Steam 家庭共享临时禁用
    /// </summary>
    IReadOnlyCollection<DisableAuthorizedDevice>? DisableAuthorizedDevice { get; set; }

    /// <summary>
    /// Steam 家庭共享临时禁用的默认值
    /// </summary>
    static readonly IReadOnlyCollection<DisableAuthorizedDevice> DefaultDisableAuthorizedDevice = Array.Empty<DisableAuthorizedDevice>();

    /// <summary>
    /// 启用的账号平台集合
    /// </summary>
    HashSet<string>? EnablePlatforms { get; set; }

    /// <summary>
    /// 启用的账号平台集合的默认值
    /// </summary>
    static readonly HashSet<string> DefaultEnablePlatforms = new();

    /// <summary>
    /// 账号平台设置集合
    /// </summary>
    ConcurrentDictionary<string, PlatformSettings>? PlatformSettings { get; set; }

    /// <summary>
    /// 账号平台设置集合的默认值
    /// </summary>
    static readonly ConcurrentDictionary<string, PlatformSettings> DefaultPlatformSettings = new();

}
