using System; using NadekoBot.Common.Collections; using System.Collections.Generic; using NadekoBot.Db.Models; namespace NadekoBot.Services.Database.Models { public class GuildConfig : DbEntity { public ulong GuildId { get; set; } public string Prefix { get; set; } = null; public bool DeleteMessageOnCommand { get; set; } public HashSet DelMsgOnCmdChannels { get; set; } = new HashSet(); public string AutoAssignRoleIds { get; set; } //greet stuff public bool AutoDeleteGreetMessages { get; set; } //unused public bool AutoDeleteByeMessages { get; set; } // unused public int AutoDeleteGreetMessagesTimer { get; set; } = 30; public int AutoDeleteByeMessagesTimer { get; set; } = 30; public ulong GreetMessageChannelId { get; set; } public ulong ByeMessageChannelId { get; set; } public bool SendDmGreetMessage { get; set; } public string DmGreetMessageText { get; set; } = "Welcome to the %server% server, %user%!"; public bool SendChannelGreetMessage { get; set; } public string ChannelGreetMessageText { get; set; } = "Welcome to the %server% server, %user%!"; #region Boost Message public bool SendBoostMessage { get; set; } public string BoostMessage { get; set; } = "%user% just boosted this server!"; public ulong BoostMessageChannelId { get; set; } public int BoostMessageDeleteAfter { get; set; } #endregion public bool SendChannelByeMessage { get; set; } public string ChannelByeMessageText { get; set; } = "%user% has left!"; //self assignable roles public bool ExclusiveSelfAssignedRoles { get; set; } public bool AutoDeleteSelfAssignedRoleMessages { get; set; } //stream notifications public HashSet FollowedStreams { get; set; } = new HashSet(); //currencyGeneration public HashSet GenerateCurrencyChannelIds { get; set; } = new HashSet(); public List Permissions { get; set; } public bool VerbosePermissions { get; set; } = true; public string PermissionRole { get; set; } = null; public HashSet CommandCooldowns { get; set; } = new HashSet(); //filtering public bool FilterInvites { get; set; } public bool FilterLinks { get; set; } public HashSet FilterInvitesChannelIds { get; set; } = new HashSet(); public HashSet FilterLinksChannelIds { get; set; } = new HashSet(); //public bool FilterLinks { get; set; } //public HashSet FilterLinksChannels { get; set; } = new HashSet(); public bool FilterWords { get; set; } public HashSet FilteredWords { get; set; } = new HashSet(); public HashSet FilterWordsChannelIds { get; set; } = new HashSet(); public HashSet MutedUsers { get; set; } = new HashSet(); public string MuteRoleName { get; set; } public bool CleverbotEnabled { get; set; } public AntiRaidSetting AntiRaidSetting { get; set; } public AntiSpamSetting AntiSpamSetting { get; set; } public AntiAltSetting AntiAltSetting { get; set; } public string Locale { get; set; } = null; public string TimeZoneId { get; set; } = null; public HashSet UnmuteTimers { get; set; } = new HashSet(); public HashSet UnbanTimer { get; set; } = new HashSet(); public HashSet UnroleTimer { get; set; } = new HashSet(); public HashSet VcRoleInfos { get; set; } public HashSet CommandAliases { get; set; } = new HashSet(); public List WarnPunishments { get; set; } = new List(); public bool WarningsInitialized { get; set; } public HashSet SlowmodeIgnoredUsers { get; set; } public HashSet SlowmodeIgnoredRoles { get; set; } public HashSet NsfwBlacklistedTags { get; set; } = new HashSet(); public List ShopEntries { get; set; } public ulong? GameVoiceChannel { get; set; } = null; public bool VerboseErrors { get; set; } = false; public StreamRoleSettings StreamRole { get; set; } public XpSettings XpSettings { get; set; } public List FeedSubs { get; set; } = new List(); public IndexedCollection ReactionRoleMessages { get; set; } = new IndexedCollection(); public bool NotifyStreamOffline { get; set; } public List SelfAssignableRoleGroupNames { get; set; } public int WarnExpireHours { get; set; } = 0; public WarnExpireAction WarnExpireAction { get; set; } = WarnExpireAction.Clear; } }