using JetBrains.Annotations;
using TeamOctolings.Octobot.Commands;

namespace TeamOctolings.Octobot.Data.Options;

/// <summary>
///     Represents all options as enums.
/// </summary>
/// <remarks>
///     WARNING: This enum is order-dependent! It's values are used as indexes for
///     <see cref="SettingsCommandGroup.AllOptions" />.
/// </remarks>
public enum AllOptionsEnum
{
    [UsedImplicitly] Language,
    [UsedImplicitly] WelcomeMessage,
    [UsedImplicitly] LeaveMessage,
    [UsedImplicitly] ReceiveStartupMessages,
    [UsedImplicitly] RemoveRolesOnMute,
    [UsedImplicitly] ReturnRolesOnRejoin,
    [UsedImplicitly] AutoStartEvents,
    [UsedImplicitly] RenameHoistedUsers,
    [UsedImplicitly] PublicFeedbackChannel,
    [UsedImplicitly] PrivateFeedbackChannel,
    [UsedImplicitly] WelcomeMessagesChannel,
    [UsedImplicitly] EventNotificationChannel,
    [UsedImplicitly] DefaultRole,
    [UsedImplicitly] MuteRole,
    [UsedImplicitly] ModeratorRole,
    [UsedImplicitly] EventNotificationRole,
    [UsedImplicitly] EventEarlyNotificationOffset
}