namespace LightlessSync.LightlessConfiguration.Configurations;

public class PlayerPerformanceConfig : ILightlessConfiguration
{
    public int Version { get; set; } = 1;
    public bool ShowPerformanceIndicator { get; set; } = true;
    public bool ShowPerformanceUsageNextToName { get; set; } = false;
    public bool WarnOnExceedingThresholds { get; set; } = true;
    public bool WarnOnPreferredPermissionsExceedingThresholds { get; set; } = false;
    public int VRAMSizeWarningThresholdMiB { get; set; } = 375;
    public int TrisWarningThresholdThousands { get; set; } = 165;
    public bool AutoPausePlayersExceedingThresholds { get; set; } = false;
    public bool AutoPausePlayersWithPreferredPermissionsExceedingThresholds { get; set; } = false;
    public int VRAMSizeAutoPauseThresholdMiB { get; set; } = 550;
    public int TrisAutoPauseThresholdThousands { get; set; } = 250;
    public List<string> UIDsToIgnore { get; set; } = new();
    public bool PauseInInstanceDuty { get; set; } = false;
    public bool PauseWhilePerforming { get; set; } = true;
    public bool PauseInCombat { get; set; } = true;
    public bool EnableNonIndexTextureMipTrim { get; set; } = false;
    public bool EnableIndexTextureDownscale { get; set; } = false;
    public int TextureDownscaleMaxDimension { get; set; } = 2048;
    public bool OnlyDownscaleUncompressedTextures { get; set; } = true;
    public bool KeepOriginalTextureFiles { get; set; } = false;
}