using System;
using System.Collections.Generic;

namespace LightlessSync.LightlessConfiguration.Configurations;

[Serializable]
public sealed class ChatConfig : ILightlessConfiguration
{
    public int Version { get; set; } = 1;
    public bool AutoEnableChatOnLogin { get; set; } = false;
    public bool ShowRulesOverlayOnOpen { get; set; } = true;
    public bool ShowMessageTimestamps { get; set; } = true;
    public bool ShowNotesInSyncshellChat { get; set; } = true;
    public float ChatWindowOpacity { get; set; } = .97f;
    public bool FadeWhenUnfocused { get; set; } = false;
    public float UnfocusedWindowOpacity { get; set; } = 0.6f;
    public bool IsWindowPinned { get; set; } = false;
    public bool AutoOpenChatOnPluginLoad { get; set; } = false;
    public float ChatFontScale { get; set; } = 1.0f;
    public bool HideInCombat { get; set; } = false;
    public bool HideInDuty { get; set; } = false;
    public bool ShowWhenUiHidden { get; set; } = true;
    public bool ShowInCutscenes { get; set; } = true;
    public bool ShowInGpose { get; set; } = true;
    public List<string> ChannelOrder { get; set; } = new();
    public Dictionary<string, bool> PreferNotesForChannels { get; set; } = new(StringComparer.Ordinal);
}
