From ca46786c5e2fe274a109f7f38d83d1edeadaf9ab Mon Sep 17 00:00:00 2001 From: Toastie <toastie@toastiet0ast.com> Date: Mon, 17 Mar 2025 19:51:05 +1300 Subject: [PATCH] added scheduled commands, .scha, .schd and .schl --- .../20250315225539_init.Designer.cs | 4037 --------- .../20250317063129_scheduled-commands.sql | 23 + .../20250317063309_init.Designer.cs | 4086 +++++++++ ...5225539_init.cs => 20250317063309_init.cs} | 38 +- .../PostgreSqlContextModelSnapshot.cs | 7409 +++++++++-------- .../Sqlite/20250315225536_init.Designer.cs | 3073 ------- .../20250317063119_scheduled-commands.sql | 22 + .../Sqlite/20250317063300_init.Designer.cs | 3109 +++++++ ...5225536_init.cs => 20250317063300_init.cs} | 38 +- .../Sqlite/SqliteContextModelSnapshot.cs | 5522 ++++++------ .../Scheduled/ScheduleCommandService.cs | 150 + .../Utility/Scheduled/ScheduledCommand.cs | 28 + .../Utility/Scheduled/ScheduledCommands.cs | 89 + src/EllieBot/_common/DoAsUserMessage.cs | 2 +- src/EllieBot/strings/aliases.yml | 14 +- .../strings/commands/commands.en-US.yml | 29 +- .../strings/responses/responses.en-US.json | 14 +- 17 files changed, 14143 insertions(+), 13540 deletions(-) delete mode 100644 src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs create mode 100644 src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql create mode 100644 src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs rename src/EllieBot/Migrations/PostgreSql/{20250315225539_init.cs => 20250317063309_init.cs} (98%) delete mode 100644 src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs create mode 100644 src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql create mode 100644 src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs rename src/EllieBot/Migrations/Sqlite/{20250315225536_init.cs => 20250317063300_init.cs} (98%) create mode 100644 src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs create mode 100644 src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs create mode 100644 src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs diff --git a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs deleted file mode 100644 index b047a58..0000000 --- a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs +++ /dev/null @@ -1,4037 +0,0 @@ -// <auto-generated /> -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using EllieBot.Db; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace EllieBot.Migrations.PostgreSql -{ - [DbContext(typeof(PostgreSqlContext))] - [Migration("20250315225539_init")] - partial class init - { - /// <inheritdoc /> - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "9.0.1") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Action") - .HasColumnType("integer") - .HasColumnName("action"); - - b.Property<int>("ActionDurationMinutes") - .HasColumnType("integer") - .HasColumnName("actiondurationminutes"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<TimeSpan>("MinAge") - .HasColumnType("interval") - .HasColumnName("minage"); - - b.Property<decimal?>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_antialtsetting"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_antialtsetting_guildid"); - - b.ToTable("antialtsetting", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Action") - .HasColumnType("integer") - .HasColumnName("action"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("PunishDuration") - .HasColumnType("integer") - .HasColumnName("punishduration"); - - b.Property<int>("Seconds") - .HasColumnType("integer") - .HasColumnName("seconds"); - - b.Property<int>("UserThreshold") - .HasColumnType("integer") - .HasColumnName("userthreshold"); - - b.HasKey("Id") - .HasName("pk_antiraidsetting"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_antiraidsetting_guildid"); - - b.ToTable("antiraidsetting", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("AntiSpamSettingId") - .HasColumnType("integer") - .HasColumnName("antispamsettingid"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.HasKey("Id") - .HasName("pk_antispamignore"); - - b.HasIndex("AntiSpamSettingId") - .HasDatabaseName("ix_antispamignore_antispamsettingid"); - - b.ToTable("antispamignore", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Action") - .HasColumnType("integer") - .HasColumnName("action"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("MessageThreshold") - .HasColumnType("integer") - .HasColumnName("messagethreshold"); - - b.Property<int>("MuteTime") - .HasColumnType("integer") - .HasColumnName("mutetime"); - - b.Property<decimal?>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_antispamsetting"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_antispamsetting_guildid"); - - b.ToTable("antispamsetting", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_todosarchive"); - - b.ToTable("todosarchive", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<string>("ChannelName") - .HasColumnType("text") - .HasColumnName("channelname"); - - b.Property<string>("CommandText") - .HasColumnType("text") - .HasColumnName("commandtext"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal?>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("GuildName") - .HasColumnType("text") - .HasColumnName("guildname"); - - b.Property<int>("Interval") - .HasColumnType("integer") - .HasColumnName("interval"); - - b.Property<decimal?>("VoiceChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("voicechannelid"); - - b.Property<string>("VoiceChannelName") - .HasColumnType("text") - .HasColumnName("voicechannelname"); - - b.HasKey("Id") - .HasName("pk_autocommands"); - - b.ToTable("autocommands", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_autopublishchannel"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_autopublishchannel_guildid"); - - b.ToTable("autopublishchannel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<bool>("AutoDelete") - .HasColumnType("boolean") - .HasColumnName("autodelete"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_autotranslatechannels"); - - b.HasIndex("ChannelId") - .IsUnique() - .HasDatabaseName("ix_autotranslatechannels_channelid"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_autotranslatechannels_guildid"); - - b.ToTable("autotranslatechannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("ChannelId") - .HasColumnType("integer") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Source") - .HasColumnType("text") - .HasColumnName("source"); - - b.Property<string>("Target") - .HasColumnType("text") - .HasColumnName("target"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_autotranslateusers"); - - b.HasAlternateKey("ChannelId", "UserId") - .HasName("ak_autotranslateusers_channelid_userid"); - - b.ToTable("autotranslateusers", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int?>("PruneDays") - .HasColumnType("integer") - .HasColumnName("prunedays"); - - b.Property<string>("Text") - .HasColumnType("text") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_bantemplates"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_bantemplates_guildid"); - - b.ToTable("bantemplates", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.BankUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("Balance") - .HasColumnType("bigint") - .HasColumnName("balance"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_bankusers"); - - b.HasIndex("UserId") - .IsUnique() - .HasDatabaseName("ix_bankusers_userid"); - - b.ToTable("bankusers", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("ItemId") - .HasColumnType("numeric(20,0)") - .HasColumnName("itemid"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_blacklist"); - - b.ToTable("blacklist", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("ButtonId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("character varying(200)") - .HasColumnName("buttonid"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<string>("Emote") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("character varying(100)") - .HasColumnName("emote"); - - b.Property<bool>("Exclusive") - .HasColumnType("boolean") - .HasColumnName("exclusive"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Label") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("character varying(50)") - .HasColumnName("label"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<int>("Position") - .HasColumnType("integer") - .HasColumnName("position"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_buttonrole"); - - b.HasAlternateKey("RoleId", "MessageId") - .HasName("ak_buttonrole_roleid_messageid"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_buttonrole_guildid"); - - b.ToTable("buttonrole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.Property<int>("ClubId") - .HasColumnType("integer") - .HasColumnName("clubid"); - - b.Property<int>("UserId") - .HasColumnType("integer") - .HasColumnName("userid"); - - b.HasKey("ClubId", "UserId") - .HasName("pk_clubapplicants"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_clubapplicants_userid"); - - b.ToTable("clubapplicants", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.Property<int>("ClubId") - .HasColumnType("integer") - .HasColumnName("clubid"); - - b.Property<int>("UserId") - .HasColumnType("integer") - .HasColumnName("userid"); - - b.HasKey("ClubId", "UserId") - .HasName("pk_clubbans"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_clubbans_userid"); - - b.ToTable("clubbans", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("BannerUrl") - .HasColumnType("text") - .HasColumnName("bannerurl"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Description") - .HasColumnType("text") - .HasColumnName("description"); - - b.Property<string>("ImageUrl") - .HasColumnType("text") - .HasColumnName("imageurl"); - - b.Property<string>("Name") - .HasMaxLength(20) - .HasColumnType("character varying(20)") - .HasColumnName("name"); - - b.Property<int?>("OwnerId") - .HasColumnType("integer") - .HasColumnName("ownerid"); - - b.Property<int>("Xp") - .HasColumnType("integer") - .HasColumnName("xp"); - - b.HasKey("Id") - .HasName("pk_clubs"); - - b.HasIndex("Name") - .IsUnique() - .HasDatabaseName("ix_clubs_name"); - - b.HasIndex("OwnerId") - .IsUnique() - .HasDatabaseName("ix_clubs_ownerid"); - - b.ToTable("clubs", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Mapping") - .HasColumnType("text") - .HasColumnName("mapping"); - - b.Property<string>("Trigger") - .HasColumnType("text") - .HasColumnName("trigger"); - - b.HasKey("Id") - .HasName("pk_commandalias"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_commandalias_guildid"); - - b.ToTable("commandalias", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("CommandName") - .HasColumnType("text") - .HasColumnName("commandname"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Seconds") - .HasColumnType("integer") - .HasColumnName("seconds"); - - b.HasKey("Id") - .HasName("pk_commandcooldown"); - - b.HasIndex("GuildId", "CommandName") - .IsUnique() - .HasDatabaseName("ix_commandcooldown_guildid_commandname"); - - b.ToTable("commandcooldown", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("Amount") - .HasColumnType("bigint") - .HasColumnName("amount"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Extra") - .IsRequired() - .HasColumnType("text") - .HasColumnName("extra"); - - b.Property<string>("Note") - .HasColumnType("text") - .HasColumnName("note"); - - b.Property<decimal?>("OtherId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("otherid") - .HasDefaultValueSql("NULL"); - - b.Property<string>("Type") - .IsRequired() - .HasColumnType("text") - .HasColumnName("type"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_currencytransactions"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_currencytransactions_userid"); - - b.ToTable("currencytransactions", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("State") - .HasColumnType("boolean") - .HasColumnName("state"); - - b.HasKey("Id") - .HasName("pk_delmsgoncmdchannel"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique() - .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid"); - - b.ToTable("delmsgoncmdchannel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("Command") - .HasColumnType("text") - .HasColumnName("command"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal?>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("Perm") - .HasColumnType("numeric(20,0)") - .HasColumnName("perm"); - - b.HasKey("Id") - .HasName("pk_discordpermoverrides"); - - b.HasIndex("GuildId", "Command") - .IsUnique() - .HasDatabaseName("ix_discordpermoverrides_guildid_command"); - - b.ToTable("discordpermoverrides", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("AvatarId") - .HasColumnType("text") - .HasColumnName("avatarid"); - - b.Property<int?>("ClubId") - .HasColumnType("integer") - .HasColumnName("clubid"); - - b.Property<long>("CurrencyAmount") - .ValueGeneratedOnAdd() - .HasColumnType("bigint") - .HasDefaultValue(0L) - .HasColumnName("currencyamount"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsClubAdmin") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(false) - .HasColumnName("isclubadmin"); - - b.Property<long>("TotalXp") - .ValueGeneratedOnAdd() - .HasColumnType("bigint") - .HasDefaultValue(0L) - .HasColumnName("totalxp"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_discorduser"); - - b.HasAlternateKey("UserId") - .HasName("ak_discorduser_userid"); - - b.HasIndex("ClubId") - .HasDatabaseName("ix_discorduser_clubid"); - - b.HasIndex("CurrencyAmount") - .HasDatabaseName("ix_discorduser_currencyamount"); - - b.HasIndex("TotalXp") - .HasDatabaseName("ix_discorduser_totalxp"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_discorduser_userid"); - - b.HasIndex("Username") - .HasDatabaseName("ix_discorduser_username"); - - b.ToTable("discorduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<string>("Url") - .HasColumnType("text") - .HasColumnName("url"); - - b.HasKey("Id") - .HasName("pk_feedsub"); - - b.HasIndex("GuildId", "Url") - .IsUnique() - .HasDatabaseName("ix_feedsub_guildid_url"); - - b.ToTable("feedsub", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.HasKey("Id") - .HasName("pk_filterchannelid"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filterchannelid_guildfilterconfigid"); - - b.ToTable("filterchannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.HasKey("Id") - .HasName("pk_filterlinkschannelid"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid"); - - b.ToTable("filterlinkschannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.HasKey("Id") - .HasName("pk_filterwordschannelid"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid"); - - b.ToTable("filterwordschannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.Property<string>("Word") - .HasColumnType("text") - .HasColumnName("word"); - - b.HasKey("Id") - .HasName("pk_filteredword"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filteredword_guildfilterconfigid"); - - b.ToTable("filteredword", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_flagtranslatechannel"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique() - .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid"); - - b.ToTable("flagtranslatechannel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<string>("PrettyName") - .HasColumnType("text") - .HasColumnName("prettyname"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_followedstream"); - - b.HasIndex("GuildId", "Username", "Type") - .HasDatabaseName("ix_followedstream_guildid_username_type"); - - b.ToTable("followedstream", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_gcchannelid"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique() - .HasDatabaseName("ix_gcchannelid_guildid_channelid"); - - b.ToTable("gcchannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("Bet") - .HasColumnType("numeric") - .HasColumnName("bet"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Feature") - .HasColumnType("text") - .HasColumnName("feature"); - - b.Property<decimal>("PaidOut") - .HasColumnType("numeric") - .HasColumnName("paidout"); - - b.HasKey("Id") - .HasName("pk_gamblingstats"); - - b.HasIndex("Feature") - .IsUnique() - .HasDatabaseName("ix_gamblingstats_feature"); - - b.ToTable("gamblingstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime>("EndsAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("endsat"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.HasKey("Id") - .HasName("pk_giveawaymodel"); - - b.ToTable("giveawaymodel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("GiveawayId") - .HasColumnType("integer") - .HasColumnName("giveawayid"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_giveawayuser"); - - b.HasIndex("GiveawayId", "UserId") - .IsUnique() - .HasDatabaseName("ix_giveawayuser_giveawayid_userid"); - - b.ToTable("giveawayuser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("ErrorColor") - .HasMaxLength(9) - .HasColumnType("character varying(9)") - .HasColumnName("errorcolor"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("OkColor") - .HasMaxLength(9) - .HasColumnType("character varying(9)") - .HasColumnName("okcolor"); - - b.Property<string>("PendingColor") - .HasMaxLength(9) - .HasColumnType("character varying(9)") - .HasColumnName("pendingcolor"); - - b.HasKey("Id") - .HasName("pk_guildcolors"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_guildcolors_guildid"); - - b.ToTable("guildcolors", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("AutoAssignRoleIds") - .HasColumnType("text") - .HasColumnName("autoassignroleids"); - - b.Property<bool>("CleverbotEnabled") - .HasColumnType("boolean") - .HasColumnName("cleverbotenabled"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("DeleteMessageOnCommand") - .HasColumnType("boolean") - .HasColumnName("deletemessageoncommand"); - - b.Property<bool>("DeleteStreamOnlineMessage") - .HasColumnType("boolean") - .HasColumnName("deletestreamonlinemessage"); - - b.Property<bool>("DisableGlobalExpressions") - .HasColumnType("boolean") - .HasColumnName("disableglobalexpressions"); - - b.Property<decimal?>("GameVoiceChannel") - .HasColumnType("numeric(20,0)") - .HasColumnName("gamevoicechannel"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Locale") - .HasColumnType("text") - .HasColumnName("locale"); - - b.Property<string>("MuteRoleName") - .HasColumnType("text") - .HasColumnName("muterolename"); - - b.Property<bool>("NotifyStreamOffline") - .HasColumnType("boolean") - .HasColumnName("notifystreamoffline"); - - b.Property<string>("PermissionRole") - .HasColumnType("text") - .HasColumnName("permissionrole"); - - b.Property<string>("Prefix") - .HasColumnType("text") - .HasColumnName("prefix"); - - b.Property<bool>("StickyRoles") - .HasColumnType("boolean") - .HasColumnName("stickyroles"); - - b.Property<string>("TimeZoneId") - .HasColumnType("text") - .HasColumnName("timezoneid"); - - b.Property<bool>("VerboseErrors") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(true) - .HasColumnName("verboseerrors"); - - b.Property<bool>("VerbosePermissions") - .HasColumnType("boolean") - .HasColumnName("verbosepermissions"); - - b.Property<int>("WarnExpireAction") - .HasColumnType("integer") - .HasColumnName("warnexpireaction"); - - b.Property<int>("WarnExpireHours") - .HasColumnType("integer") - .HasColumnName("warnexpirehours"); - - b.Property<bool>("WarningsInitialized") - .HasColumnType("boolean") - .HasColumnName("warningsinitialized"); - - b.HasKey("Id") - .HasName("pk_guildconfigs"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_guildconfigs_guildid"); - - b.HasIndex("WarnExpireHours") - .HasDatabaseName("ix_guildconfigs_warnexpirehours"); - - b.ToTable("guildconfigs", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<bool>("FilterInvites") - .HasColumnType("boolean") - .HasColumnName("filterinvites"); - - b.Property<bool>("FilterLinks") - .HasColumnType("boolean") - .HasColumnName("filterlinks"); - - b.Property<bool>("FilterWords") - .HasColumnType("boolean") - .HasColumnName("filterwords"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_guildfilterconfig"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_guildfilterconfig_guildid"); - - b.ToTable("guildfilterconfig", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => - { - b.Property<decimal>("GuildId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.HasKey("GuildId") - .HasName("pk_honeypotchannels"); - - b.ToTable("honeypotchannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("ItemType") - .HasColumnType("integer") - .HasColumnName("itemtype"); - - b.Property<decimal>("LogItemId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logitemid"); - - b.Property<int>("LogSettingId") - .HasColumnType("integer") - .HasColumnName("logsettingid"); - - b.HasKey("Id") - .HasName("pk_ignoredlogchannels"); - - b.HasIndex("LogSettingId", "LogItemId", "ItemType") - .IsUnique() - .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype"); - - b.ToTable("ignoredlogchannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_imageonlychannels"); - - b.HasIndex("ChannelId") - .IsUnique() - .HasDatabaseName("ix_imageonlychannels_channelid"); - - b.ToTable("imageonlychannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal?>("ChannelCreatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelcreatedid"); - - b.Property<decimal?>("ChannelDestroyedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channeldestroyedid"); - - b.Property<decimal?>("ChannelUpdatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelupdatedid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal?>("LogOtherId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logotherid"); - - b.Property<decimal?>("LogUserPresenceId") - .HasColumnType("numeric(20,0)") - .HasColumnName("loguserpresenceid"); - - b.Property<decimal?>("LogVoicePresenceId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logvoicepresenceid"); - - b.Property<decimal?>("LogVoicePresenceTTSId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logvoicepresencettsid"); - - b.Property<decimal?>("LogWarnsId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logwarnsid"); - - b.Property<decimal?>("MessageDeletedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messagedeletedid"); - - b.Property<decimal?>("MessageUpdatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageupdatedid"); - - b.Property<decimal?>("ThreadCreatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("threadcreatedid"); - - b.Property<decimal?>("ThreadDeletedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("threaddeletedid"); - - b.Property<decimal?>("UserBannedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userbannedid"); - - b.Property<decimal?>("UserJoinedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userjoinedid"); - - b.Property<decimal?>("UserLeftId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userleftid"); - - b.Property<decimal?>("UserMutedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("usermutedid"); - - b.Property<decimal?>("UserUnbannedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userunbannedid"); - - b.Property<decimal?>("UserUpdatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userupdatedid"); - - b.HasKey("Id") - .HasName("pk_logsettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_logsettings_guildid"); - - b.ToTable("logsettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<bool>("AutoDisconnect") - .HasColumnType("boolean") - .HasColumnName("autodisconnect"); - - b.Property<bool>("AutoPlay") - .HasColumnType("boolean") - .HasColumnName("autoplay"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal?>("MusicChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("musicchannelid"); - - b.Property<int>("PlayerRepeat") - .HasColumnType("integer") - .HasColumnName("playerrepeat"); - - b.Property<int>("QualityPreset") - .HasColumnType("integer") - .HasColumnName("qualitypreset"); - - b.Property<int>("Volume") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasDefaultValue(100) - .HasColumnName("volume"); - - b.HasKey("Id") - .HasName("pk_musicplayersettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_musicplayersettings_guildid"); - - b.ToTable("musicplayersettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("Author") - .HasColumnType("text") - .HasColumnName("author"); - - b.Property<decimal>("AuthorId") - .HasColumnType("numeric(20,0)") - .HasColumnName("authorid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.HasKey("Id") - .HasName("pk_musicplaylists"); - - b.ToTable("musicplaylists", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_muteduserid"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_muteduserid_guildid_userid"); - - b.ToTable("muteduserid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("Color") - .HasColumnType("bigint") - .HasColumnName("color"); - - b.Property<decimal>("OwnerId") - .HasColumnType("numeric(20,0)") - .HasColumnName("ownerid"); - - b.Property<int>("Position") - .HasColumnType("integer") - .HasColumnName("position"); - - b.Property<long>("Price") - .HasColumnType("bigint") - .HasColumnName("price"); - - b.Property<string>("Text") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_ncpixel"); - - b.HasAlternateKey("Position") - .HasName("ak_ncpixel_position"); - - b.HasIndex("OwnerId") - .HasDatabaseName("ix_ncpixel_ownerid"); - - b.ToTable("ncpixel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<bool>("AllowTarget") - .HasColumnType("boolean") - .HasColumnName("allowtarget"); - - b.Property<bool>("AutoDeleteTrigger") - .HasColumnType("boolean") - .HasColumnName("autodeletetrigger"); - - b.Property<bool>("ContainsAnywhere") - .HasColumnType("boolean") - .HasColumnName("containsanywhere"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("DmResponse") - .HasColumnType("boolean") - .HasColumnName("dmresponse"); - - b.Property<decimal?>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Reactions") - .HasColumnType("text") - .HasColumnName("reactions"); - - b.Property<string>("Response") - .HasColumnType("text") - .HasColumnName("response"); - - b.Property<string>("Trigger") - .HasColumnType("text") - .HasColumnName("trigger"); - - b.HasKey("Id") - .HasName("pk_expressions"); - - b.ToTable("expressions", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Notify", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal?>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .IsRequired() - .HasMaxLength(10000) - .HasColumnType("character varying(10000)") - .HasColumnName("message"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_notify"); - - b.HasAlternateKey("GuildId", "Type") - .HasName("ak_notify_guildid_type"); - - b.ToTable("notify", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => - { - b.Property<decimal>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<int>("AmountCents") - .HasColumnType("integer") - .HasColumnName("amountcents"); - - b.Property<DateTime>("LastCharge") - .HasColumnType("timestamp without time zone") - .HasColumnName("lastcharge"); - - b.Property<string>("UniquePlatformUserId") - .HasColumnType("text") - .HasColumnName("uniqueplatformuserid"); - - b.Property<DateTime>("ValidThru") - .HasColumnType("timestamp without time zone") - .HasColumnName("validthru"); - - b.HasKey("UserId") - .HasName("pk_patrons"); - - b.HasIndex("UniquePlatformUserId") - .IsUnique() - .HasDatabaseName("ix_patrons_uniqueplatformuserid"); - - b.ToTable("patrons", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildConfigId") - .HasColumnType("integer") - .HasColumnName("guildconfigid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Index") - .HasColumnType("integer") - .HasColumnName("index"); - - b.Property<bool>("IsCustomCommand") - .HasColumnType("boolean") - .HasColumnName("iscustomcommand"); - - b.Property<int>("PrimaryTarget") - .HasColumnType("integer") - .HasColumnName("primarytarget"); - - b.Property<decimal>("PrimaryTargetId") - .HasColumnType("numeric(20,0)") - .HasColumnName("primarytargetid"); - - b.Property<int>("SecondaryTarget") - .HasColumnType("integer") - .HasColumnName("secondarytarget"); - - b.Property<string>("SecondaryTargetName") - .HasColumnType("text") - .HasColumnName("secondarytargetname"); - - b.Property<bool>("State") - .HasColumnType("boolean") - .HasColumnName("state"); - - b.HasKey("Id") - .HasName("pk_permissions"); - - b.HasIndex("GuildConfigId") - .HasDatabaseName("ix_permissions_guildconfigid"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_permissions_guildid"); - - b.ToTable("permissions", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("Amount") - .HasColumnType("bigint") - .HasColumnName("amount"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<string>("Password") - .HasColumnType("text") - .HasColumnName("password"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_plantedcurrency"); - - b.HasIndex("ChannelId") - .HasDatabaseName("ix_plantedcurrency_channelid"); - - b.HasIndex("MessageId") - .IsUnique() - .HasDatabaseName("ix_plantedcurrency_messageid"); - - b.ToTable("plantedcurrency", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("MusicPlaylistId") - .HasColumnType("integer") - .HasColumnName("musicplaylistid"); - - b.Property<string>("Provider") - .HasColumnType("text") - .HasColumnName("provider"); - - b.Property<int>("ProviderType") - .HasColumnType("integer") - .HasColumnName("providertype"); - - b.Property<string>("Query") - .HasColumnType("text") - .HasColumnName("query"); - - b.Property<string>("Title") - .HasColumnType("text") - .HasColumnName("title"); - - b.Property<string>("Uri") - .HasColumnType("text") - .HasColumnName("uri"); - - b.HasKey("Id") - .HasName("pk_playlistsong"); - - b.HasIndex("MusicPlaylistId") - .HasDatabaseName("ix_playlistsong_musicplaylistid"); - - b.ToTable("playlistsong", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Quote", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("AuthorId") - .HasColumnType("numeric(20,0)") - .HasColumnName("authorid"); - - b.Property<string>("AuthorName") - .IsRequired() - .HasColumnType("text") - .HasColumnName("authorname"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Keyword") - .IsRequired() - .HasColumnType("text") - .HasColumnName("keyword"); - - b.Property<string>("Text") - .IsRequired() - .HasColumnType("text") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_quotes"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_quotes_guildid"); - - b.HasIndex("Keyword") - .HasDatabaseName("ix_quotes_keyword"); - - b.ToTable("quotes", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Emote") - .HasMaxLength(100) - .HasColumnType("character varying(100)") - .HasColumnName("emote"); - - b.Property<int>("Group") - .HasColumnType("integer") - .HasColumnName("group"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("LevelReq") - .HasColumnType("integer") - .HasColumnName("levelreq"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_reactionroles"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_reactionroles_guildid"); - - b.HasIndex("MessageId", "Emote") - .IsUnique() - .HasDatabaseName("ix_reactionroles_messageid_emote"); - - b.ToTable("reactionroles", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsPrivate") - .HasColumnType("boolean") - .HasColumnName("isprivate"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<decimal>("ServerId") - .HasColumnType("numeric(20,0)") - .HasColumnName("serverid"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<DateTime>("When") - .HasColumnType("timestamp without time zone") - .HasColumnName("when"); - - b.HasKey("Id") - .HasName("pk_reminders"); - - b.HasIndex("When") - .HasDatabaseName("ix_reminders_when"); - - b.ToTable("reminders", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<TimeSpan>("Interval") - .HasColumnType("interval") - .HasColumnName("interval"); - - b.Property<decimal?>("LastMessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("lastmessageid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<bool>("NoRedundant") - .HasColumnType("boolean") - .HasColumnName("noredundant"); - - b.Property<TimeSpan?>("StartTimeOfDay") - .HasColumnType("interval") - .HasColumnName("starttimeofday"); - - b.HasKey("Id") - .HasName("pk_repeaters"); - - b.ToTable("repeaters", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("AmountRewardedThisMonth") - .HasColumnType("bigint") - .HasColumnName("amountrewardedthismonth"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<DateTime>("LastReward") - .HasColumnType("timestamp without time zone") - .HasColumnName("lastreward"); - - b.Property<string>("PlatformUserId") - .HasColumnType("text") - .HasColumnName("platformuserid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_rewardedusers"); - - b.HasIndex("PlatformUserId") - .IsUnique() - .HasDatabaseName("ix_rewardedusers_platformuserid"); - - b.ToTable("rewardedusers", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Status") - .HasColumnType("text") - .HasColumnName("status"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_rotatingstatus"); - - b.ToTable("rotatingstatus", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("LevelReq") - .HasColumnType("integer") - .HasColumnName("levelreq"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<int>("SarGroupId") - .HasColumnType("integer") - .HasColumnName("sargroupid"); - - b.HasKey("Id") - .HasName("pk_sar"); - - b.HasAlternateKey("GuildId", "RoleId") - .HasName("ak_sar_guildid_roleid"); - - b.HasIndex("SarGroupId") - .HasDatabaseName("ix_sar_sargroupid"); - - b.ToTable("sar", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("IsEnabled") - .HasColumnType("boolean") - .HasColumnName("isenabled"); - - b.HasKey("Id") - .HasName("pk_sarautodelete"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_sarautodelete_guildid"); - - b.ToTable("sarautodelete", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("GroupNumber") - .HasColumnType("integer") - .HasColumnName("groupnumber"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("IsExclusive") - .HasColumnType("boolean") - .HasColumnName("isexclusive"); - - b.Property<string>("Name") - .HasMaxLength(100) - .HasColumnType("character varying(100)") - .HasColumnName("name"); - - b.Property<decimal?>("RoleReq") - .HasColumnType("numeric(20,0)") - .HasColumnName("rolereq"); - - b.HasKey("Id") - .HasName("pk_sargroup"); - - b.HasAlternateKey("GuildId", "GroupNumber") - .HasName("ak_sargroup_guildid_groupnumber"); - - b.ToTable("sargroup", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("AuthorId") - .HasColumnType("numeric(20,0)") - .HasColumnName("authorid"); - - b.Property<string>("Command") - .HasColumnType("text") - .HasColumnName("command"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Index") - .HasColumnType("integer") - .HasColumnName("index"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<int>("Price") - .HasColumnType("integer") - .HasColumnName("price"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<string>("RoleName") - .HasColumnType("text") - .HasColumnName("rolename"); - - b.Property<decimal?>("RoleRequirement") - .HasColumnType("numeric(20,0)") - .HasColumnName("rolerequirement"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_shopentry"); - - b.HasIndex("GuildId", "Index") - .IsUnique() - .HasDatabaseName("ix_shopentry_guildid_index"); - - b.ToTable("shopentry", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("ShopEntryId") - .HasColumnType("integer") - .HasColumnName("shopentryid"); - - b.Property<string>("Text") - .HasColumnType("text") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_shopentryitem"); - - b.HasIndex("ShopEntryId") - .HasDatabaseName("ix_shopentryitem_shopentryid"); - - b.ToTable("shopentryitem", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_slowmodeignoredrole"); - - b.HasIndex("GuildId", "RoleId") - .IsUnique() - .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid"); - - b.ToTable("slowmodeignoredrole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_slowmodeignoreduser"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid"); - - b.ToTable("slowmodeignoreduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("RoleIds") - .HasColumnType("text") - .HasColumnName("roleids"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_stickyroles"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_stickyroles_guildid_userid"); - - b.ToTable("stickyroles", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_streamonlinemessages"); - - b.ToTable("streamonlinemessages", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("integer") - .HasColumnName("streamrolesettingsid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_streamroleblacklisteduser"); - - b.HasIndex("StreamRoleSettingsId") - .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid"); - - b.ToTable("streamroleblacklisteduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("AddRoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("addroleid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("Enabled") - .HasColumnType("boolean") - .HasColumnName("enabled"); - - b.Property<decimal>("FromRoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("fromroleid"); - - b.Property<int>("GuildConfigId") - .HasColumnType("integer") - .HasColumnName("guildconfigid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Keyword") - .HasColumnType("text") - .HasColumnName("keyword"); - - b.HasKey("Id") - .HasName("pk_streamrolesettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_streamrolesettings_guildid"); - - b.ToTable("streamrolesettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("integer") - .HasColumnName("streamrolesettingsid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_streamrolewhitelisteduser"); - - b.HasIndex("StreamRoleSettingsId") - .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid"); - - b.ToTable("streamrolewhitelisteduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime>("ExpiresAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("expiresat"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("Remove") - .HasColumnType("boolean") - .HasColumnName("remove"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_temprole"); - - b.HasAlternateKey("GuildId", "UserId", "RoleId") - .HasName("ak_temprole_guildid_userid_roleid"); - - b.HasIndex("ExpiresAt") - .HasDatabaseName("ix_temprole_expiresat"); - - b.ToTable("temprole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("ArchiveId") - .HasColumnType("integer") - .HasColumnName("archiveid"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsDone") - .HasColumnType("boolean") - .HasColumnName("isdone"); - - b.Property<string>("Todo") - .HasColumnType("text") - .HasColumnName("todo"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_todos"); - - b.HasIndex("ArchiveId") - .HasDatabaseName("ix_todos_archiveid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_todos_userid"); - - b.ToTable("todos", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("unbanat"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_unbantimer"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_unbantimer_guildid_userid"); - - b.ToTable("unbantimer", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<DateTime>("UnmuteAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("unmuteat"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_unmutetimer"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_unmutetimer_guildid_userid"); - - b.ToTable("unmutetimer", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("unbanat"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_unroletimer"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_unroletimer_guildid_userid"); - - b.ToTable("unroletimer", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<long>("Xp") - .HasColumnType("bigint") - .HasColumnName("xp"); - - b.HasKey("Id") - .HasName("pk_userxpstats"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_userxpstats_guildid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_userxpstats_userid"); - - b.HasIndex("Xp") - .HasDatabaseName("ix_userxpstats_xp"); - - b.HasIndex("UserId", "GuildId") - .IsUnique() - .HasDatabaseName("ix_userxpstats_userid_guildid"); - - b.ToTable("userxpstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<decimal>("VoiceChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("voicechannelid"); - - b.HasKey("Id") - .HasName("pk_vcroleinfo"); - - b.HasIndex("GuildId", "VoiceChannelId") - .IsUnique() - .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid"); - - b.ToTable("vcroleinfo", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("AffinityId") - .HasColumnType("integer") - .HasColumnName("affinityid"); - - b.Property<int?>("ClaimerId") - .HasColumnType("integer") - .HasColumnName("claimerid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<long>("Price") - .HasColumnType("bigint") - .HasColumnName("price"); - - b.Property<int>("WaifuId") - .HasColumnType("integer") - .HasColumnName("waifuid"); - - b.HasKey("Id") - .HasName("pk_waifuinfo"); - - b.HasIndex("AffinityId") - .HasDatabaseName("ix_waifuinfo_affinityid"); - - b.HasIndex("ClaimerId") - .HasDatabaseName("ix_waifuinfo_claimerid"); - - b.HasIndex("Price") - .HasDatabaseName("ix_waifuinfo_price"); - - b.HasIndex("WaifuId") - .IsUnique() - .HasDatabaseName("ix_waifuinfo_waifuid"); - - b.ToTable("waifuinfo", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("ItemEmoji") - .HasColumnType("text") - .HasColumnName("itememoji"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<int?>("WaifuInfoId") - .HasColumnType("integer") - .HasColumnName("waifuinfoid"); - - b.HasKey("Id") - .HasName("pk_waifuitem"); - - b.HasIndex("WaifuInfoId") - .HasDatabaseName("ix_waifuitem_waifuinfoid"); - - b.ToTable("waifuitem", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("NewId") - .HasColumnType("integer") - .HasColumnName("newid"); - - b.Property<int?>("OldId") - .HasColumnType("integer") - .HasColumnName("oldid"); - - b.Property<int>("UpdateType") - .HasColumnType("integer") - .HasColumnName("updatetype"); - - b.Property<int>("UserId") - .HasColumnType("integer") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_waifuupdates"); - - b.HasIndex("NewId") - .HasDatabaseName("ix_waifuupdates_newid"); - - b.HasIndex("OldId") - .HasDatabaseName("ix_waifuupdates_oldid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_waifuupdates_userid"); - - b.ToTable("waifuupdates", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Warning", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("Forgiven") - .HasColumnType("boolean") - .HasColumnName("forgiven"); - - b.Property<string>("ForgivenBy") - .HasColumnType("text") - .HasColumnName("forgivenby"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Moderator") - .HasColumnType("text") - .HasColumnName("moderator"); - - b.Property<string>("Reason") - .HasColumnType("text") - .HasColumnName("reason"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<long>("Weight") - .ValueGeneratedOnAdd() - .HasColumnType("bigint") - .HasDefaultValue(1L) - .HasColumnName("weight"); - - b.HasKey("Id") - .HasName("pk_warnings"); - - b.HasIndex("DateAdded") - .HasDatabaseName("ix_warnings_dateadded"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_warnings_guildid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_warnings_userid"); - - b.ToTable("warnings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Count") - .HasColumnType("integer") - .HasColumnName("count"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Punishment") - .HasColumnType("integer") - .HasColumnName("punishment"); - - b.Property<decimal?>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<int>("Time") - .HasColumnType("integer") - .HasColumnName("time"); - - b.HasKey("Id") - .HasName("pk_warningpunishment"); - - b.HasAlternateKey("GuildId", "Count") - .HasName("ak_warningpunishment_guildid_count"); - - b.ToTable("warningpunishment", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Amount") - .HasColumnType("integer") - .HasColumnName("amount"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("Level") - .HasColumnType("integer") - .HasColumnName("level"); - - b.Property<int>("XpSettingsId") - .HasColumnType("integer") - .HasColumnName("xpsettingsid"); - - b.HasKey("Id") - .HasName("pk_xpcurrencyreward"); - - b.HasIndex("XpSettingsId") - .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid"); - - b.HasIndex("Level", "XpSettingsId") - .IsUnique() - .HasDatabaseName("ix_xpcurrencyreward_level_xpsettingsid"); - - b.ToTable("xpcurrencyreward", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("Level") - .HasColumnType("integer") - .HasColumnName("level"); - - b.Property<bool>("Remove") - .HasColumnType("boolean") - .HasColumnName("remove"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<int>("XpSettingsId") - .HasColumnType("integer") - .HasColumnName("xpsettingsid"); - - b.HasKey("Id") - .HasName("pk_xprolereward"); - - b.HasIndex("XpSettingsId", "Level") - .IsUnique() - .HasDatabaseName("ix_xprolereward_xpsettingsid_level"); - - b.ToTable("xprolereward", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_xpsettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_xpsettings_guildid"); - - b.ToTable("xpsettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsUsing") - .HasColumnType("boolean") - .HasColumnName("isusing"); - - b.Property<string>("ItemKey") - .IsRequired() - .HasColumnType("text") - .HasColumnName("itemkey"); - - b.Property<int>("ItemType") - .HasColumnType("integer") - .HasColumnName("itemtype"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_xpshopowneditem"); - - b.HasIndex("UserId", "ItemType", "ItemKey") - .IsUnique() - .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey"); - - b.ToTable("xpshopowneditem", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Count") - .HasColumnType("integer") - .HasColumnName("count"); - - b.Property<int>("FishId") - .HasColumnType("integer") - .HasColumnName("fishid"); - - b.Property<int>("MaxStars") - .HasColumnType("integer") - .HasColumnName("maxstars"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_fishcatch"); - - b.HasAlternateKey("UserId", "FishId") - .HasName("ak_fishcatch_userid_fishid"); - - b.ToTable("fishcatch", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("Bait") - .HasColumnType("integer") - .HasColumnName("bait"); - - b.Property<int?>("Pole") - .HasColumnType("integer") - .HasColumnName("pole"); - - b.Property<int>("Skill") - .HasColumnType("integer") - .HasColumnName("skill"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_userfishstats"); - - b.HasIndex("UserId") - .IsUnique() - .HasDatabaseName("ix_userfishstats_userid"); - - b.ToTable("userfishstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => - { - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("GuildId", "UserId", "RoleId") - .HasName("pk_userrole"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_userrole_guildid"); - - b.HasIndex("GuildId", "UserId") - .HasDatabaseName("ix_userrole_guildid_userid"); - - b.ToTable("userrole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<float>("Cooldown") - .HasColumnType("real") - .HasColumnName("cooldown"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("RateType") - .HasColumnType("integer") - .HasColumnName("ratetype"); - - b.Property<long>("XpAmount") - .HasColumnType("bigint") - .HasColumnName("xpamount"); - - b.HasKey("Id") - .HasName("pk_channelxpconfig"); - - b.HasAlternateKey("GuildId", "ChannelId", "RateType") - .HasName("ak_channelxpconfig_guildid_channelid_ratetype"); - - b.ToTable("channelxpconfig", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<float>("Cooldown") - .HasColumnType("real") - .HasColumnName("cooldown"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("RateType") - .HasColumnType("integer") - .HasColumnName("ratetype"); - - b.Property<long>("XpAmount") - .HasColumnType("bigint") - .HasColumnName("xpamount"); - - b.Property<string>("XpTemplateUrl") - .HasColumnType("text") - .HasColumnName("xptemplateurl"); - - b.HasKey("Id") - .HasName("pk_guildxpconfig"); - - b.HasAlternateKey("GuildId", "RateType") - .HasName("ak_guildxpconfig_guildid_ratetype"); - - b.ToTable("guildxpconfig", (string)null); - }); - - modelBuilder.Entity("EllieBot.Services.GreetSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("AutoDeleteTimer") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasDefaultValue(0) - .HasColumnName("autodeletetimer"); - - b.Property<decimal?>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<int>("GreetType") - .HasColumnType("integer") - .HasColumnName("greettype"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("IsEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(false) - .HasColumnName("isenabled"); - - b.Property<string>("MessageText") - .HasColumnType("text") - .HasColumnName("messagetext"); - - b.HasKey("Id") - .HasName("pk_greetsettings"); - - b.HasIndex("GuildId", "GreetType") - .IsUnique() - .HasDatabaseName("ix_greetsettings_guildid_greettype"); - - b.ToTable("greetsettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Services.Rakeback", b => - { - b.Property<decimal>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<decimal>("Amount") - .HasColumnType("numeric") - .HasColumnName("amount"); - - b.HasKey("UserId") - .HasName("pk_rakeback"); - - b.ToTable("rakeback", (string)null); - }); - - modelBuilder.Entity("EllieBot.Services.UserBetStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Game") - .HasColumnType("integer") - .HasColumnName("game"); - - b.Property<long>("LoseCount") - .HasColumnType("bigint") - .HasColumnName("losecount"); - - b.Property<long>("MaxBet") - .HasColumnType("bigint") - .HasColumnName("maxbet"); - - b.Property<long>("MaxWin") - .HasColumnType("bigint") - .HasColumnName("maxwin"); - - b.Property<decimal>("PaidOut") - .HasColumnType("numeric") - .HasColumnName("paidout"); - - b.Property<decimal>("TotalBet") - .HasColumnType("numeric") - .HasColumnName("totalbet"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<long>("WinCount") - .HasColumnType("bigint") - .HasColumnName("wincount"); - - b.HasKey("Id") - .HasName("pk_userbetstats"); - - b.HasIndex("MaxWin") - .HasDatabaseName("ix_userbetstats_maxwin"); - - b.HasIndex("UserId", "Game") - .IsUnique() - .HasDatabaseName("ix_userbetstats_userid_game"); - - b.ToTable("userbetstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) - .WithMany("IgnoredChannels") - .HasForeignKey("AntiSpamSettingId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") - .WithMany("Users") - .HasForeignKey("ChannelId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid"); - - b.Navigation("Channel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Applicants") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubapplicants_clubs_clubid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubapplicants_discorduser_userid"); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Bans") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubbans_clubs_clubid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubbans_discorduser_userid"); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") - .OnDelete(DeleteBehavior.SetNull) - .HasConstraintName("fk_clubs_discorduser_ownerid"); - - b.Navigation("Owner"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Members") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.NoAction) - .HasConstraintName("fk_discorduser_clubs_clubid"); - - b.Navigation("Club"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterInvitesChannelIds") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterLinksChannelIds") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterWordsChannelIds") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilteredWords") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.HasOne("EllieBot.Db.Models.GiveawayModel", null) - .WithMany("Participants") - .HasForeignKey("GiveawayId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") - .WithMany("LogIgnores") - .HasForeignKey("LogSettingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid"); - - b.Navigation("LogSetting"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.HasOne("EllieBot.Db.Models.GuildConfig", null) - .WithMany("Permissions") - .HasForeignKey("GuildConfigId") - .HasConstraintName("fk_permissions_guildconfigs_guildconfigid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) - .WithMany("Songs") - .HasForeignKey("MusicPlaylistId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.HasOne("EllieBot.Db.Models.SarGroup", null) - .WithMany("Roles") - .HasForeignKey("SarGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_sar_sargroup_sargroupid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.HasOne("EllieBot.Db.Models.ShopEntry", null) - .WithMany("Items") - .HasForeignKey("ShopEntryId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_shopentryitem_shopentry_shopentryid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Blacklist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~"); - - b.Navigation("StreamRoleSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Whitelist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~"); - - b.Navigation("StreamRoleSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) - .WithMany("Items") - .HasForeignKey("ArchiveId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_todos_todosarchive_archiveid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") - .WithMany() - .HasForeignKey("AffinityId") - .HasConstraintName("fk_waifuinfo_discorduser_affinityid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") - .WithMany() - .HasForeignKey("ClaimerId") - .HasConstraintName("fk_waifuinfo_discorduser_claimerid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_waifuinfo_discorduser_waifuid"); - - b.Navigation("Affinity"); - - b.Navigation("Claimer"); - - b.Navigation("Waifu"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") - .WithMany("Items") - .HasForeignKey("WaifuInfoId") - .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid"); - - b.Navigation("WaifuInfo"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "New") - .WithMany() - .HasForeignKey("NewId") - .HasConstraintName("fk_waifuupdates_discorduser_newid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") - .WithMany() - .HasForeignKey("OldId") - .HasConstraintName("fk_waifuupdates_discorduser_oldid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_waifuupdates_discorduser_userid"); - - b.Navigation("New"); - - b.Navigation("Old"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("CurrencyRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("RoleRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Navigation("IgnoredChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Navigation("Items"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Navigation("Users"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Navigation("Applicants"); - - b.Navigation("Bans"); - - b.Navigation("Members"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Navigation("Participants"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Navigation("Permissions"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Navigation("FilterInvitesChannelIds"); - - b.Navigation("FilterLinksChannelIds"); - - b.Navigation("FilterWordsChannelIds"); - - b.Navigation("FilteredWords"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Navigation("LogIgnores"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Navigation("Songs"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Navigation("Roles"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Navigation("Items"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Navigation("Blacklist"); - - b.Navigation("Whitelist"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Navigation("Items"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Navigation("CurrencyRewards"); - - b.Navigation("RoleRewards"); - }); -#pragma warning restore 612, 618 - } - } -} \ No newline at end of file diff --git a/src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql b/src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql new file mode 100644 index 0000000..4ff718e --- /dev/null +++ b/src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql @@ -0,0 +1,23 @@ +START TRANSACTION; +CREATE TABLE scheduledcommand ( + id integer GENERATED BY DEFAULT AS IDENTITY, + userid numeric(20,0) NOT NULL, + channelid numeric(20,0) NOT NULL, + guildid numeric(20,0) NOT NULL, + messageid numeric(20,0) NOT NULL, + text text NOT NULL, + "when" timestamp without time zone NOT NULL, + CONSTRAINT pk_scheduledcommand PRIMARY KEY (id) +); + +CREATE INDEX ix_scheduledcommand_guildid ON scheduledcommand (guildid); + +CREATE INDEX ix_scheduledcommand_userid ON scheduledcommand (userid); + +CREATE INDEX ix_scheduledcommand_when ON scheduledcommand ("when"); + +INSERT INTO "__EFMigrationsHistory" (migrationid, productversion) +VALUES ('20250317063129_scheduled-commands', '9.0.1'); + +COMMIT; + diff --git a/src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs new file mode 100644 index 0000000..b95382f --- /dev/null +++ b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs @@ -0,0 +1,4086 @@ +// <auto-generated /> +using System; +using EllieBot.Db; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace EllieBot.Migrations.PostgreSql +{ + [DbContext(typeof(PostgreSqlContext))] + [Migration("20250317063309_init")] + partial class init + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Action") + .HasColumnType("integer") + .HasColumnName("action"); + + b.Property<int>("ActionDurationMinutes") + .HasColumnType("integer") + .HasColumnName("actiondurationminutes"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<TimeSpan>("MinAge") + .HasColumnType("interval") + .HasColumnName("minage"); + + b.Property<decimal?>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_antialtsetting"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_antialtsetting_guildid"); + + b.ToTable("antialtsetting", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Action") + .HasColumnType("integer") + .HasColumnName("action"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("PunishDuration") + .HasColumnType("integer") + .HasColumnName("punishduration"); + + b.Property<int>("Seconds") + .HasColumnType("integer") + .HasColumnName("seconds"); + + b.Property<int>("UserThreshold") + .HasColumnType("integer") + .HasColumnName("userthreshold"); + + b.HasKey("Id") + .HasName("pk_antiraidsetting"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_antiraidsetting_guildid"); + + b.ToTable("antiraidsetting", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("AntiSpamSettingId") + .HasColumnType("integer") + .HasColumnName("antispamsettingid"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.HasKey("Id") + .HasName("pk_antispamignore"); + + b.HasIndex("AntiSpamSettingId") + .HasDatabaseName("ix_antispamignore_antispamsettingid"); + + b.ToTable("antispamignore", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Action") + .HasColumnType("integer") + .HasColumnName("action"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("MessageThreshold") + .HasColumnType("integer") + .HasColumnName("messagethreshold"); + + b.Property<int>("MuteTime") + .HasColumnType("integer") + .HasColumnName("mutetime"); + + b.Property<decimal?>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_antispamsetting"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_antispamsetting_guildid"); + + b.ToTable("antispamsetting", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_todosarchive"); + + b.ToTable("todosarchive", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<string>("ChannelName") + .HasColumnType("text") + .HasColumnName("channelname"); + + b.Property<string>("CommandText") + .HasColumnType("text") + .HasColumnName("commandtext"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal?>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("GuildName") + .HasColumnType("text") + .HasColumnName("guildname"); + + b.Property<int>("Interval") + .HasColumnType("integer") + .HasColumnName("interval"); + + b.Property<decimal?>("VoiceChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("voicechannelid"); + + b.Property<string>("VoiceChannelName") + .HasColumnType("text") + .HasColumnName("voicechannelname"); + + b.HasKey("Id") + .HasName("pk_autocommands"); + + b.ToTable("autocommands", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_autopublishchannel"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_autopublishchannel_guildid"); + + b.ToTable("autopublishchannel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<bool>("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("autodelete"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_autotranslatechannels"); + + b.HasIndex("ChannelId") + .IsUnique() + .HasDatabaseName("ix_autotranslatechannels_channelid"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_autotranslatechannels_guildid"); + + b.ToTable("autotranslatechannels", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("ChannelId") + .HasColumnType("integer") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Source") + .HasColumnType("text") + .HasColumnName("source"); + + b.Property<string>("Target") + .HasColumnType("text") + .HasColumnName("target"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_autotranslateusers"); + + b.HasAlternateKey("ChannelId", "UserId") + .HasName("ak_autotranslateusers_channelid_userid"); + + b.ToTable("autotranslateusers", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int?>("PruneDays") + .HasColumnType("integer") + .HasColumnName("prunedays"); + + b.Property<string>("Text") + .HasColumnType("text") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_bantemplates"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_bantemplates_guildid"); + + b.ToTable("bantemplates", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.BankUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("Balance") + .HasColumnType("bigint") + .HasColumnName("balance"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_bankusers"); + + b.HasIndex("UserId") + .IsUnique() + .HasDatabaseName("ix_bankusers_userid"); + + b.ToTable("bankusers", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("ItemId") + .HasColumnType("numeric(20,0)") + .HasColumnName("itemid"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_blacklist"); + + b.ToTable("blacklist", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("ButtonId") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("character varying(200)") + .HasColumnName("buttonid"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<string>("Emote") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("emote"); + + b.Property<bool>("Exclusive") + .HasColumnType("boolean") + .HasColumnName("exclusive"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Label") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("label"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<int>("Position") + .HasColumnType("integer") + .HasColumnName("position"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_buttonrole"); + + b.HasAlternateKey("RoleId", "MessageId") + .HasName("ak_buttonrole_roleid_messageid"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_buttonrole_guildid"); + + b.ToTable("buttonrole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => + { + b.Property<int>("ClubId") + .HasColumnType("integer") + .HasColumnName("clubid"); + + b.Property<int>("UserId") + .HasColumnType("integer") + .HasColumnName("userid"); + + b.HasKey("ClubId", "UserId") + .HasName("pk_clubapplicants"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_clubapplicants_userid"); + + b.ToTable("clubapplicants", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => + { + b.Property<int>("ClubId") + .HasColumnType("integer") + .HasColumnName("clubid"); + + b.Property<int>("UserId") + .HasColumnType("integer") + .HasColumnName("userid"); + + b.HasKey("ClubId", "UserId") + .HasName("pk_clubbans"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_clubbans_userid"); + + b.ToTable("clubbans", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("BannerUrl") + .HasColumnType("text") + .HasColumnName("bannerurl"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Description") + .HasColumnType("text") + .HasColumnName("description"); + + b.Property<string>("ImageUrl") + .HasColumnType("text") + .HasColumnName("imageurl"); + + b.Property<string>("Name") + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasColumnName("name"); + + b.Property<int?>("OwnerId") + .HasColumnType("integer") + .HasColumnName("ownerid"); + + b.Property<int>("Xp") + .HasColumnType("integer") + .HasColumnName("xp"); + + b.HasKey("Id") + .HasName("pk_clubs"); + + b.HasIndex("Name") + .IsUnique() + .HasDatabaseName("ix_clubs_name"); + + b.HasIndex("OwnerId") + .IsUnique() + .HasDatabaseName("ix_clubs_ownerid"); + + b.ToTable("clubs", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Mapping") + .HasColumnType("text") + .HasColumnName("mapping"); + + b.Property<string>("Trigger") + .HasColumnType("text") + .HasColumnName("trigger"); + + b.HasKey("Id") + .HasName("pk_commandalias"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_commandalias_guildid"); + + b.ToTable("commandalias", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("CommandName") + .HasColumnType("text") + .HasColumnName("commandname"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Seconds") + .HasColumnType("integer") + .HasColumnName("seconds"); + + b.HasKey("Id") + .HasName("pk_commandcooldown"); + + b.HasIndex("GuildId", "CommandName") + .IsUnique() + .HasDatabaseName("ix_commandcooldown_guildid_commandname"); + + b.ToTable("commandcooldown", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("Amount") + .HasColumnType("bigint") + .HasColumnName("amount"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Extra") + .IsRequired() + .HasColumnType("text") + .HasColumnName("extra"); + + b.Property<string>("Note") + .HasColumnType("text") + .HasColumnName("note"); + + b.Property<decimal?>("OtherId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("otherid") + .HasDefaultValueSql("NULL"); + + b.Property<string>("Type") + .IsRequired() + .HasColumnType("text") + .HasColumnName("type"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_currencytransactions"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_currencytransactions_userid"); + + b.ToTable("currencytransactions", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("State") + .HasColumnType("boolean") + .HasColumnName("state"); + + b.HasKey("Id") + .HasName("pk_delmsgoncmdchannel"); + + b.HasIndex("GuildId", "ChannelId") + .IsUnique() + .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid"); + + b.ToTable("delmsgoncmdchannel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("Command") + .HasColumnType("text") + .HasColumnName("command"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal?>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("Perm") + .HasColumnType("numeric(20,0)") + .HasColumnName("perm"); + + b.HasKey("Id") + .HasName("pk_discordpermoverrides"); + + b.HasIndex("GuildId", "Command") + .IsUnique() + .HasDatabaseName("ix_discordpermoverrides_guildid_command"); + + b.ToTable("discordpermoverrides", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("AvatarId") + .HasColumnType("text") + .HasColumnName("avatarid"); + + b.Property<int?>("ClubId") + .HasColumnType("integer") + .HasColumnName("clubid"); + + b.Property<long>("CurrencyAmount") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValue(0L) + .HasColumnName("currencyamount"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsClubAdmin") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("isclubadmin"); + + b.Property<long>("TotalXp") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValue(0L) + .HasColumnName("totalxp"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_discorduser"); + + b.HasAlternateKey("UserId") + .HasName("ak_discorduser_userid"); + + b.HasIndex("ClubId") + .HasDatabaseName("ix_discorduser_clubid"); + + b.HasIndex("CurrencyAmount") + .HasDatabaseName("ix_discorduser_currencyamount"); + + b.HasIndex("TotalXp") + .HasDatabaseName("ix_discorduser_totalxp"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_discorduser_userid"); + + b.HasIndex("Username") + .HasDatabaseName("ix_discorduser_username"); + + b.ToTable("discorduser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<bool>("AllowTarget") + .HasColumnType("boolean") + .HasColumnName("allowtarget"); + + b.Property<bool>("AutoDeleteTrigger") + .HasColumnType("boolean") + .HasColumnName("autodeletetrigger"); + + b.Property<bool>("ContainsAnywhere") + .HasColumnType("boolean") + .HasColumnName("containsanywhere"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("DmResponse") + .HasColumnType("boolean") + .HasColumnName("dmresponse"); + + b.Property<decimal?>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Reactions") + .HasColumnType("text") + .HasColumnName("reactions"); + + b.Property<string>("Response") + .HasColumnType("text") + .HasColumnName("response"); + + b.Property<string>("Trigger") + .HasColumnType("text") + .HasColumnName("trigger"); + + b.HasKey("Id") + .HasName("pk_expressions"); + + b.ToTable("expressions", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<string>("Url") + .HasColumnType("text") + .HasColumnName("url"); + + b.HasKey("Id") + .HasName("pk_feedsub"); + + b.HasIndex("GuildId", "Url") + .IsUnique() + .HasDatabaseName("ix_feedsub_guildid_url"); + + b.ToTable("feedsub", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.HasKey("Id") + .HasName("pk_filterchannelid"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filterchannelid_guildfilterconfigid"); + + b.ToTable("filterchannelid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.HasKey("Id") + .HasName("pk_filterlinkschannelid"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid"); + + b.ToTable("filterlinkschannelid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.HasKey("Id") + .HasName("pk_filterwordschannelid"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid"); + + b.ToTable("filterwordschannelid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.Property<string>("Word") + .HasColumnType("text") + .HasColumnName("word"); + + b.HasKey("Id") + .HasName("pk_filteredword"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filteredword_guildfilterconfigid"); + + b.ToTable("filteredword", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_flagtranslatechannel"); + + b.HasIndex("GuildId", "ChannelId") + .IsUnique() + .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid"); + + b.ToTable("flagtranslatechannel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<string>("PrettyName") + .HasColumnType("text") + .HasColumnName("prettyname"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_followedstream"); + + b.HasIndex("GuildId", "Username", "Type") + .HasDatabaseName("ix_followedstream_guildid_username_type"); + + b.ToTable("followedstream", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_gcchannelid"); + + b.HasIndex("GuildId", "ChannelId") + .IsUnique() + .HasDatabaseName("ix_gcchannelid_guildid_channelid"); + + b.ToTable("gcchannelid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("Bet") + .HasColumnType("numeric") + .HasColumnName("bet"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Feature") + .HasColumnType("text") + .HasColumnName("feature"); + + b.Property<decimal>("PaidOut") + .HasColumnType("numeric") + .HasColumnName("paidout"); + + b.HasKey("Id") + .HasName("pk_gamblingstats"); + + b.HasIndex("Feature") + .IsUnique() + .HasDatabaseName("ix_gamblingstats_feature"); + + b.ToTable("gamblingstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime>("EndsAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("endsat"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.HasKey("Id") + .HasName("pk_giveawaymodel"); + + b.ToTable("giveawaymodel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("GiveawayId") + .HasColumnType("integer") + .HasColumnName("giveawayid"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_giveawayuser"); + + b.HasIndex("GiveawayId", "UserId") + .IsUnique() + .HasDatabaseName("ix_giveawayuser_giveawayid_userid"); + + b.ToTable("giveawayuser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("ErrorColor") + .HasMaxLength(9) + .HasColumnType("character varying(9)") + .HasColumnName("errorcolor"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("OkColor") + .HasMaxLength(9) + .HasColumnType("character varying(9)") + .HasColumnName("okcolor"); + + b.Property<string>("PendingColor") + .HasMaxLength(9) + .HasColumnType("character varying(9)") + .HasColumnName("pendingcolor"); + + b.HasKey("Id") + .HasName("pk_guildcolors"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_guildcolors_guildid"); + + b.ToTable("guildcolors", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("AutoAssignRoleIds") + .HasColumnType("text") + .HasColumnName("autoassignroleids"); + + b.Property<bool>("CleverbotEnabled") + .HasColumnType("boolean") + .HasColumnName("cleverbotenabled"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("DeleteMessageOnCommand") + .HasColumnType("boolean") + .HasColumnName("deletemessageoncommand"); + + b.Property<bool>("DeleteStreamOnlineMessage") + .HasColumnType("boolean") + .HasColumnName("deletestreamonlinemessage"); + + b.Property<bool>("DisableGlobalExpressions") + .HasColumnType("boolean") + .HasColumnName("disableglobalexpressions"); + + b.Property<decimal?>("GameVoiceChannel") + .HasColumnType("numeric(20,0)") + .HasColumnName("gamevoicechannel"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Locale") + .HasColumnType("text") + .HasColumnName("locale"); + + b.Property<string>("MuteRoleName") + .HasColumnType("text") + .HasColumnName("muterolename"); + + b.Property<bool>("NotifyStreamOffline") + .HasColumnType("boolean") + .HasColumnName("notifystreamoffline"); + + b.Property<string>("PermissionRole") + .HasColumnType("text") + .HasColumnName("permissionrole"); + + b.Property<string>("Prefix") + .HasColumnType("text") + .HasColumnName("prefix"); + + b.Property<bool>("StickyRoles") + .HasColumnType("boolean") + .HasColumnName("stickyroles"); + + b.Property<string>("TimeZoneId") + .HasColumnType("text") + .HasColumnName("timezoneid"); + + b.Property<bool>("VerboseErrors") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(true) + .HasColumnName("verboseerrors"); + + b.Property<bool>("VerbosePermissions") + .HasColumnType("boolean") + .HasColumnName("verbosepermissions"); + + b.Property<int>("WarnExpireAction") + .HasColumnType("integer") + .HasColumnName("warnexpireaction"); + + b.Property<int>("WarnExpireHours") + .HasColumnType("integer") + .HasColumnName("warnexpirehours"); + + b.Property<bool>("WarningsInitialized") + .HasColumnType("boolean") + .HasColumnName("warningsinitialized"); + + b.HasKey("Id") + .HasName("pk_guildconfigs"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_guildconfigs_guildid"); + + b.HasIndex("WarnExpireHours") + .HasDatabaseName("ix_guildconfigs_warnexpirehours"); + + b.ToTable("guildconfigs", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<bool>("FilterInvites") + .HasColumnType("boolean") + .HasColumnName("filterinvites"); + + b.Property<bool>("FilterLinks") + .HasColumnType("boolean") + .HasColumnName("filterlinks"); + + b.Property<bool>("FilterWords") + .HasColumnType("boolean") + .HasColumnName("filterwords"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_guildfilterconfig"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_guildfilterconfig_guildid"); + + b.ToTable("guildfilterconfig", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => + { + b.Property<decimal>("GuildId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.HasKey("GuildId") + .HasName("pk_honeypotchannels"); + + b.ToTable("honeypotchannels", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("ItemType") + .HasColumnType("integer") + .HasColumnName("itemtype"); + + b.Property<decimal>("LogItemId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logitemid"); + + b.Property<int>("LogSettingId") + .HasColumnType("integer") + .HasColumnName("logsettingid"); + + b.HasKey("Id") + .HasName("pk_ignoredlogchannels"); + + b.HasIndex("LogSettingId", "LogItemId", "ItemType") + .IsUnique() + .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype"); + + b.ToTable("ignoredlogchannels", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_imageonlychannels"); + + b.HasIndex("ChannelId") + .IsUnique() + .HasDatabaseName("ix_imageonlychannels_channelid"); + + b.ToTable("imageonlychannels", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal?>("ChannelCreatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelcreatedid"); + + b.Property<decimal?>("ChannelDestroyedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channeldestroyedid"); + + b.Property<decimal?>("ChannelUpdatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelupdatedid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal?>("LogOtherId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logotherid"); + + b.Property<decimal?>("LogUserPresenceId") + .HasColumnType("numeric(20,0)") + .HasColumnName("loguserpresenceid"); + + b.Property<decimal?>("LogVoicePresenceId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logvoicepresenceid"); + + b.Property<decimal?>("LogVoicePresenceTTSId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logvoicepresencettsid"); + + b.Property<decimal?>("LogWarnsId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logwarnsid"); + + b.Property<decimal?>("MessageDeletedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messagedeletedid"); + + b.Property<decimal?>("MessageUpdatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageupdatedid"); + + b.Property<decimal?>("ThreadCreatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("threadcreatedid"); + + b.Property<decimal?>("ThreadDeletedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("threaddeletedid"); + + b.Property<decimal?>("UserBannedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userbannedid"); + + b.Property<decimal?>("UserJoinedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userjoinedid"); + + b.Property<decimal?>("UserLeftId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userleftid"); + + b.Property<decimal?>("UserMutedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("usermutedid"); + + b.Property<decimal?>("UserUnbannedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userunbannedid"); + + b.Property<decimal?>("UserUpdatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userupdatedid"); + + b.HasKey("Id") + .HasName("pk_logsettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_logsettings_guildid"); + + b.ToTable("logsettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<bool>("AutoDisconnect") + .HasColumnType("boolean") + .HasColumnName("autodisconnect"); + + b.Property<bool>("AutoPlay") + .HasColumnType("boolean") + .HasColumnName("autoplay"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal?>("MusicChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("musicchannelid"); + + b.Property<int>("PlayerRepeat") + .HasColumnType("integer") + .HasColumnName("playerrepeat"); + + b.Property<int>("QualityPreset") + .HasColumnType("integer") + .HasColumnName("qualitypreset"); + + b.Property<int>("Volume") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(100) + .HasColumnName("volume"); + + b.HasKey("Id") + .HasName("pk_musicplayersettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_musicplayersettings_guildid"); + + b.ToTable("musicplayersettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("Author") + .HasColumnType("text") + .HasColumnName("author"); + + b.Property<decimal>("AuthorId") + .HasColumnType("numeric(20,0)") + .HasColumnName("authorid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("pk_musicplaylists"); + + b.ToTable("musicplaylists", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_muteduserid"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_muteduserid_guildid_userid"); + + b.ToTable("muteduserid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("Color") + .HasColumnType("bigint") + .HasColumnName("color"); + + b.Property<decimal>("OwnerId") + .HasColumnType("numeric(20,0)") + .HasColumnName("ownerid"); + + b.Property<int>("Position") + .HasColumnType("integer") + .HasColumnName("position"); + + b.Property<long>("Price") + .HasColumnType("bigint") + .HasColumnName("price"); + + b.Property<string>("Text") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_ncpixel"); + + b.HasAlternateKey("Position") + .HasName("ak_ncpixel_position"); + + b.HasIndex("OwnerId") + .HasDatabaseName("ix_ncpixel_ownerid"); + + b.ToTable("ncpixel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Notify", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal?>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Message") + .IsRequired() + .HasMaxLength(10000) + .HasColumnType("character varying(10000)") + .HasColumnName("message"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_notify"); + + b.HasAlternateKey("GuildId", "Type") + .HasName("ak_notify_guildid_type"); + + b.ToTable("notify", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => + { + b.Property<decimal>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<int>("AmountCents") + .HasColumnType("integer") + .HasColumnName("amountcents"); + + b.Property<DateTime>("LastCharge") + .HasColumnType("timestamp without time zone") + .HasColumnName("lastcharge"); + + b.Property<string>("UniquePlatformUserId") + .HasColumnType("text") + .HasColumnName("uniqueplatformuserid"); + + b.Property<DateTime>("ValidThru") + .HasColumnType("timestamp without time zone") + .HasColumnName("validthru"); + + b.HasKey("UserId") + .HasName("pk_patrons"); + + b.HasIndex("UniquePlatformUserId") + .IsUnique() + .HasDatabaseName("ix_patrons_uniqueplatformuserid"); + + b.ToTable("patrons", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildConfigId") + .HasColumnType("integer") + .HasColumnName("guildconfigid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Index") + .HasColumnType("integer") + .HasColumnName("index"); + + b.Property<bool>("IsCustomCommand") + .HasColumnType("boolean") + .HasColumnName("iscustomcommand"); + + b.Property<int>("PrimaryTarget") + .HasColumnType("integer") + .HasColumnName("primarytarget"); + + b.Property<decimal>("PrimaryTargetId") + .HasColumnType("numeric(20,0)") + .HasColumnName("primarytargetid"); + + b.Property<int>("SecondaryTarget") + .HasColumnType("integer") + .HasColumnName("secondarytarget"); + + b.Property<string>("SecondaryTargetName") + .HasColumnType("text") + .HasColumnName("secondarytargetname"); + + b.Property<bool>("State") + .HasColumnType("boolean") + .HasColumnName("state"); + + b.HasKey("Id") + .HasName("pk_permissions"); + + b.HasIndex("GuildConfigId") + .HasDatabaseName("ix_permissions_guildconfigid"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_permissions_guildid"); + + b.ToTable("permissions", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("Amount") + .HasColumnType("bigint") + .HasColumnName("amount"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<string>("Password") + .HasColumnType("text") + .HasColumnName("password"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_plantedcurrency"); + + b.HasIndex("ChannelId") + .HasDatabaseName("ix_plantedcurrency_channelid"); + + b.HasIndex("MessageId") + .IsUnique() + .HasDatabaseName("ix_plantedcurrency_messageid"); + + b.ToTable("plantedcurrency", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("MusicPlaylistId") + .HasColumnType("integer") + .HasColumnName("musicplaylistid"); + + b.Property<string>("Provider") + .HasColumnType("text") + .HasColumnName("provider"); + + b.Property<int>("ProviderType") + .HasColumnType("integer") + .HasColumnName("providertype"); + + b.Property<string>("Query") + .HasColumnType("text") + .HasColumnName("query"); + + b.Property<string>("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.Property<string>("Uri") + .HasColumnType("text") + .HasColumnName("uri"); + + b.HasKey("Id") + .HasName("pk_playlistsong"); + + b.HasIndex("MusicPlaylistId") + .HasDatabaseName("ix_playlistsong_musicplaylistid"); + + b.ToTable("playlistsong", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Quote", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("AuthorId") + .HasColumnType("numeric(20,0)") + .HasColumnName("authorid"); + + b.Property<string>("AuthorName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("authorname"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Keyword") + .IsRequired() + .HasColumnType("text") + .HasColumnName("keyword"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("text") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_quotes"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_quotes_guildid"); + + b.HasIndex("Keyword") + .HasDatabaseName("ix_quotes_keyword"); + + b.ToTable("quotes", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Emote") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("emote"); + + b.Property<int>("Group") + .HasColumnType("integer") + .HasColumnName("group"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("LevelReq") + .HasColumnType("integer") + .HasColumnName("levelreq"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_reactionroles"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_reactionroles_guildid"); + + b.HasIndex("MessageId", "Emote") + .IsUnique() + .HasDatabaseName("ix_reactionroles_messageid_emote"); + + b.ToTable("reactionroles", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsPrivate") + .HasColumnType("boolean") + .HasColumnName("isprivate"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<decimal>("ServerId") + .HasColumnType("numeric(20,0)") + .HasColumnName("serverid"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<DateTime>("When") + .HasColumnType("timestamp without time zone") + .HasColumnName("when"); + + b.HasKey("Id") + .HasName("pk_reminders"); + + b.HasIndex("When") + .HasDatabaseName("ix_reminders_when"); + + b.ToTable("reminders", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<TimeSpan>("Interval") + .HasColumnType("interval") + .HasColumnName("interval"); + + b.Property<decimal?>("LastMessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("lastmessageid"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<bool>("NoRedundant") + .HasColumnType("boolean") + .HasColumnName("noredundant"); + + b.Property<TimeSpan?>("StartTimeOfDay") + .HasColumnType("interval") + .HasColumnName("starttimeofday"); + + b.HasKey("Id") + .HasName("pk_repeaters"); + + b.ToTable("repeaters", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("AmountRewardedThisMonth") + .HasColumnType("bigint") + .HasColumnName("amountrewardedthismonth"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<DateTime>("LastReward") + .HasColumnType("timestamp without time zone") + .HasColumnName("lastreward"); + + b.Property<string>("PlatformUserId") + .HasColumnType("text") + .HasColumnName("platformuserid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_rewardedusers"); + + b.HasIndex("PlatformUserId") + .IsUnique() + .HasDatabaseName("ix_rewardedusers_platformuserid"); + + b.ToTable("rewardedusers", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Status") + .HasColumnType("text") + .HasColumnName("status"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_rotatingstatus"); + + b.ToTable("rotatingstatus", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("LevelReq") + .HasColumnType("integer") + .HasColumnName("levelreq"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<int>("SarGroupId") + .HasColumnType("integer") + .HasColumnName("sargroupid"); + + b.HasKey("Id") + .HasName("pk_sar"); + + b.HasAlternateKey("GuildId", "RoleId") + .HasName("ak_sar_guildid_roleid"); + + b.HasIndex("SarGroupId") + .HasDatabaseName("ix_sar_sargroupid"); + + b.ToTable("sar", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("IsEnabled") + .HasColumnType("boolean") + .HasColumnName("isenabled"); + + b.HasKey("Id") + .HasName("pk_sarautodelete"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_sarautodelete_guildid"); + + b.ToTable("sarautodelete", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("GroupNumber") + .HasColumnType("integer") + .HasColumnName("groupnumber"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("IsExclusive") + .HasColumnType("boolean") + .HasColumnName("isexclusive"); + + b.Property<string>("Name") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("name"); + + b.Property<decimal?>("RoleReq") + .HasColumnType("numeric(20,0)") + .HasColumnName("rolereq"); + + b.HasKey("Id") + .HasName("pk_sargroup"); + + b.HasAlternateKey("GuildId", "GroupNumber") + .HasName("ak_sargroup_guildid_groupnumber"); + + b.ToTable("sargroup", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("AuthorId") + .HasColumnType("numeric(20,0)") + .HasColumnName("authorid"); + + b.Property<string>("Command") + .HasColumnType("text") + .HasColumnName("command"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Index") + .HasColumnType("integer") + .HasColumnName("index"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<int>("Price") + .HasColumnType("integer") + .HasColumnName("price"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<string>("RoleName") + .HasColumnType("text") + .HasColumnName("rolename"); + + b.Property<decimal?>("RoleRequirement") + .HasColumnType("numeric(20,0)") + .HasColumnName("rolerequirement"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_shopentry"); + + b.HasIndex("GuildId", "Index") + .IsUnique() + .HasDatabaseName("ix_shopentry_guildid_index"); + + b.ToTable("shopentry", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("ShopEntryId") + .HasColumnType("integer") + .HasColumnName("shopentryid"); + + b.Property<string>("Text") + .HasColumnType("text") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_shopentryitem"); + + b.HasIndex("ShopEntryId") + .HasDatabaseName("ix_shopentryitem_shopentryid"); + + b.ToTable("shopentryitem", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_slowmodeignoredrole"); + + b.HasIndex("GuildId", "RoleId") + .IsUnique() + .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid"); + + b.ToTable("slowmodeignoredrole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_slowmodeignoreduser"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid"); + + b.ToTable("slowmodeignoreduser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("RoleIds") + .HasColumnType("text") + .HasColumnName("roleids"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_stickyroles"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_stickyroles_guildid_userid"); + + b.ToTable("stickyroles", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_streamonlinemessages"); + + b.ToTable("streamonlinemessages", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("integer") + .HasColumnName("streamrolesettingsid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_streamroleblacklisteduser"); + + b.HasIndex("StreamRoleSettingsId") + .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid"); + + b.ToTable("streamroleblacklisteduser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("AddRoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("addroleid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("Enabled") + .HasColumnType("boolean") + .HasColumnName("enabled"); + + b.Property<decimal>("FromRoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("fromroleid"); + + b.Property<int>("GuildConfigId") + .HasColumnType("integer") + .HasColumnName("guildconfigid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Keyword") + .HasColumnType("text") + .HasColumnName("keyword"); + + b.HasKey("Id") + .HasName("pk_streamrolesettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_streamrolesettings_guildid"); + + b.ToTable("streamrolesettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("integer") + .HasColumnName("streamrolesettingsid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_streamrolewhitelisteduser"); + + b.HasIndex("StreamRoleSettingsId") + .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid"); + + b.ToTable("streamrolewhitelisteduser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime>("ExpiresAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("expiresat"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("Remove") + .HasColumnType("boolean") + .HasColumnName("remove"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_temprole"); + + b.HasAlternateKey("GuildId", "UserId", "RoleId") + .HasName("ak_temprole_guildid_userid_roleid"); + + b.HasIndex("ExpiresAt") + .HasDatabaseName("ix_temprole_expiresat"); + + b.ToTable("temprole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("ArchiveId") + .HasColumnType("integer") + .HasColumnName("archiveid"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsDone") + .HasColumnType("boolean") + .HasColumnName("isdone"); + + b.Property<string>("Todo") + .HasColumnType("text") + .HasColumnName("todo"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_todos"); + + b.HasIndex("ArchiveId") + .HasDatabaseName("ix_todos_archiveid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_todos_userid"); + + b.ToTable("todos", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("unbanat"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_unbantimer"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_unbantimer_guildid_userid"); + + b.ToTable("unbantimer", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<DateTime>("UnmuteAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("unmuteat"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_unmutetimer"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_unmutetimer_guildid_userid"); + + b.ToTable("unmutetimer", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("unbanat"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_unroletimer"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_unroletimer_guildid_userid"); + + b.ToTable("unroletimer", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<long>("Xp") + .HasColumnType("bigint") + .HasColumnName("xp"); + + b.HasKey("Id") + .HasName("pk_userxpstats"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_userxpstats_guildid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_userxpstats_userid"); + + b.HasIndex("Xp") + .HasDatabaseName("ix_userxpstats_xp"); + + b.HasIndex("UserId", "GuildId") + .IsUnique() + .HasDatabaseName("ix_userxpstats_userid_guildid"); + + b.ToTable("userxpstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<decimal>("VoiceChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("voicechannelid"); + + b.HasKey("Id") + .HasName("pk_vcroleinfo"); + + b.HasIndex("GuildId", "VoiceChannelId") + .IsUnique() + .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid"); + + b.ToTable("vcroleinfo", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("AffinityId") + .HasColumnType("integer") + .HasColumnName("affinityid"); + + b.Property<int?>("ClaimerId") + .HasColumnType("integer") + .HasColumnName("claimerid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<long>("Price") + .HasColumnType("bigint") + .HasColumnName("price"); + + b.Property<int>("WaifuId") + .HasColumnType("integer") + .HasColumnName("waifuid"); + + b.HasKey("Id") + .HasName("pk_waifuinfo"); + + b.HasIndex("AffinityId") + .HasDatabaseName("ix_waifuinfo_affinityid"); + + b.HasIndex("ClaimerId") + .HasDatabaseName("ix_waifuinfo_claimerid"); + + b.HasIndex("Price") + .HasDatabaseName("ix_waifuinfo_price"); + + b.HasIndex("WaifuId") + .IsUnique() + .HasDatabaseName("ix_waifuinfo_waifuid"); + + b.ToTable("waifuinfo", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("ItemEmoji") + .HasColumnType("text") + .HasColumnName("itememoji"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<int?>("WaifuInfoId") + .HasColumnType("integer") + .HasColumnName("waifuinfoid"); + + b.HasKey("Id") + .HasName("pk_waifuitem"); + + b.HasIndex("WaifuInfoId") + .HasDatabaseName("ix_waifuitem_waifuinfoid"); + + b.ToTable("waifuitem", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("NewId") + .HasColumnType("integer") + .HasColumnName("newid"); + + b.Property<int?>("OldId") + .HasColumnType("integer") + .HasColumnName("oldid"); + + b.Property<int>("UpdateType") + .HasColumnType("integer") + .HasColumnName("updatetype"); + + b.Property<int>("UserId") + .HasColumnType("integer") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_waifuupdates"); + + b.HasIndex("NewId") + .HasDatabaseName("ix_waifuupdates_newid"); + + b.HasIndex("OldId") + .HasDatabaseName("ix_waifuupdates_oldid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_waifuupdates_userid"); + + b.ToTable("waifuupdates", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Warning", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("Forgiven") + .HasColumnType("boolean") + .HasColumnName("forgiven"); + + b.Property<string>("ForgivenBy") + .HasColumnType("text") + .HasColumnName("forgivenby"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Moderator") + .HasColumnType("text") + .HasColumnName("moderator"); + + b.Property<string>("Reason") + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<long>("Weight") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValue(1L) + .HasColumnName("weight"); + + b.HasKey("Id") + .HasName("pk_warnings"); + + b.HasIndex("DateAdded") + .HasDatabaseName("ix_warnings_dateadded"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_warnings_guildid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_warnings_userid"); + + b.ToTable("warnings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Count") + .HasColumnType("integer") + .HasColumnName("count"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Punishment") + .HasColumnType("integer") + .HasColumnName("punishment"); + + b.Property<decimal?>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<int>("Time") + .HasColumnType("integer") + .HasColumnName("time"); + + b.HasKey("Id") + .HasName("pk_warningpunishment"); + + b.HasAlternateKey("GuildId", "Count") + .HasName("ak_warningpunishment_guildid_count"); + + b.ToTable("warningpunishment", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Amount") + .HasColumnType("integer") + .HasColumnName("amount"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property<int>("XpSettingsId") + .HasColumnType("integer") + .HasColumnName("xpsettingsid"); + + b.HasKey("Id") + .HasName("pk_xpcurrencyreward"); + + b.HasIndex("XpSettingsId") + .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid"); + + b.HasIndex("Level", "XpSettingsId") + .IsUnique() + .HasDatabaseName("ix_xpcurrencyreward_level_xpsettingsid"); + + b.ToTable("xpcurrencyreward", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property<bool>("Remove") + .HasColumnType("boolean") + .HasColumnName("remove"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<int>("XpSettingsId") + .HasColumnType("integer") + .HasColumnName("xpsettingsid"); + + b.HasKey("Id") + .HasName("pk_xprolereward"); + + b.HasIndex("XpSettingsId", "Level") + .IsUnique() + .HasDatabaseName("ix_xprolereward_xpsettingsid_level"); + + b.ToTable("xprolereward", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_xpsettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_xpsettings_guildid"); + + b.ToTable("xpsettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsUsing") + .HasColumnType("boolean") + .HasColumnName("isusing"); + + b.Property<string>("ItemKey") + .IsRequired() + .HasColumnType("text") + .HasColumnName("itemkey"); + + b.Property<int>("ItemType") + .HasColumnType("integer") + .HasColumnName("itemtype"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_xpshopowneditem"); + + b.HasIndex("UserId", "ItemType", "ItemKey") + .IsUnique() + .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey"); + + b.ToTable("xpshopowneditem", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Count") + .HasColumnType("integer") + .HasColumnName("count"); + + b.Property<int>("FishId") + .HasColumnType("integer") + .HasColumnName("fishid"); + + b.Property<int>("MaxStars") + .HasColumnType("integer") + .HasColumnName("maxstars"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_fishcatch"); + + b.HasAlternateKey("UserId", "FishId") + .HasName("ak_fishcatch_userid_fishid"); + + b.ToTable("fishcatch", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("Bait") + .HasColumnType("integer") + .HasColumnName("bait"); + + b.Property<int?>("Pole") + .HasColumnType("integer") + .HasColumnName("pole"); + + b.Property<int>("Skill") + .HasColumnType("integer") + .HasColumnName("skill"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_userfishstats"); + + b.HasIndex("UserId") + .IsUnique() + .HasDatabaseName("ix_userfishstats_userid"); + + b.ToTable("userfishstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("text") + .HasColumnName("text"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<DateTime>("When") + .HasColumnType("timestamp without time zone") + .HasColumnName("when"); + + b.HasKey("Id") + .HasName("pk_scheduledcommand"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_scheduledcommand_guildid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_scheduledcommand_userid"); + + b.HasIndex("When") + .HasDatabaseName("ix_scheduledcommand_when"); + + b.ToTable("scheduledcommand", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => + { + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("GuildId", "UserId", "RoleId") + .HasName("pk_userrole"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_userrole_guildid"); + + b.HasIndex("GuildId", "UserId") + .HasDatabaseName("ix_userrole_guildid_userid"); + + b.ToTable("userrole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<float>("Cooldown") + .HasColumnType("real") + .HasColumnName("cooldown"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("RateType") + .HasColumnType("integer") + .HasColumnName("ratetype"); + + b.Property<long>("XpAmount") + .HasColumnType("bigint") + .HasColumnName("xpamount"); + + b.HasKey("Id") + .HasName("pk_channelxpconfig"); + + b.HasAlternateKey("GuildId", "ChannelId", "RateType") + .HasName("ak_channelxpconfig_guildid_channelid_ratetype"); + + b.ToTable("channelxpconfig", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<float>("Cooldown") + .HasColumnType("real") + .HasColumnName("cooldown"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("RateType") + .HasColumnType("integer") + .HasColumnName("ratetype"); + + b.Property<long>("XpAmount") + .HasColumnType("bigint") + .HasColumnName("xpamount"); + + b.Property<string>("XpTemplateUrl") + .HasColumnType("text") + .HasColumnName("xptemplateurl"); + + b.HasKey("Id") + .HasName("pk_guildxpconfig"); + + b.HasAlternateKey("GuildId", "RateType") + .HasName("ak_guildxpconfig_guildid_ratetype"); + + b.ToTable("guildxpconfig", (string)null); + }); + + modelBuilder.Entity("EllieBot.Services.GreetSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("AutoDeleteTimer") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("autodeletetimer"); + + b.Property<decimal?>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<int>("GreetType") + .HasColumnType("integer") + .HasColumnName("greettype"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("IsEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("isenabled"); + + b.Property<string>("MessageText") + .HasColumnType("text") + .HasColumnName("messagetext"); + + b.HasKey("Id") + .HasName("pk_greetsettings"); + + b.HasIndex("GuildId", "GreetType") + .IsUnique() + .HasDatabaseName("ix_greetsettings_guildid_greettype"); + + b.ToTable("greetsettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Services.Rakeback", b => + { + b.Property<decimal>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<decimal>("Amount") + .HasColumnType("numeric") + .HasColumnName("amount"); + + b.HasKey("UserId") + .HasName("pk_rakeback"); + + b.ToTable("rakeback", (string)null); + }); + + modelBuilder.Entity("EllieBot.Services.UserBetStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Game") + .HasColumnType("integer") + .HasColumnName("game"); + + b.Property<long>("LoseCount") + .HasColumnType("bigint") + .HasColumnName("losecount"); + + b.Property<long>("MaxBet") + .HasColumnType("bigint") + .HasColumnName("maxbet"); + + b.Property<long>("MaxWin") + .HasColumnType("bigint") + .HasColumnName("maxwin"); + + b.Property<decimal>("PaidOut") + .HasColumnType("numeric") + .HasColumnName("paidout"); + + b.Property<decimal>("TotalBet") + .HasColumnType("numeric") + .HasColumnName("totalbet"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<long>("WinCount") + .HasColumnType("bigint") + .HasColumnName("wincount"); + + b.HasKey("Id") + .HasName("pk_userbetstats"); + + b.HasIndex("MaxWin") + .HasDatabaseName("ix_userbetstats_maxwin"); + + b.HasIndex("UserId", "Game") + .IsUnique() + .HasDatabaseName("ix_userbetstats_userid_game"); + + b.ToTable("userbetstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => + { + b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) + .WithMany("IgnoredChannels") + .HasForeignKey("AntiSpamSettingId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => + { + b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") + .WithMany("Users") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Applicants") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubapplicants_clubs_clubid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubapplicants_discorduser_userid"); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Bans") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubbans_clubs_clubid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubbans_discorduser_userid"); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("fk_clubs_discorduser_ownerid"); + + b.Navigation("Owner"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Members") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.NoAction) + .HasConstraintName("fk_discorduser_clubs_clubid"); + + b.Navigation("Club"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterInvitesChannelIds") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterLinksChannelIds") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterWordsChannelIds") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilteredWords") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.HasOne("EllieBot.Db.Models.GiveawayModel", null) + .WithMany("Participants") + .HasForeignKey("GiveawayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") + .WithMany("LogIgnores") + .HasForeignKey("LogSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid"); + + b.Navigation("LogSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.HasOne("EllieBot.Db.Models.GuildConfig", null) + .WithMany("Permissions") + .HasForeignKey("GuildConfigId") + .HasConstraintName("fk_permissions_guildconfigs_guildconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) + .WithMany("Songs") + .HasForeignKey("MusicPlaylistId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.HasOne("EllieBot.Db.Models.SarGroup", null) + .WithMany("Roles") + .HasForeignKey("SarGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_sar_sargroup_sargroupid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.HasOne("EllieBot.Db.Models.ShopEntry", null) + .WithMany("Items") + .HasForeignKey("ShopEntryId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_shopentryitem_shopentry_shopentryid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Blacklist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~"); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Whitelist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~"); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) + .WithMany("Items") + .HasForeignKey("ArchiveId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_todos_todosarchive_archiveid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") + .WithMany() + .HasForeignKey("AffinityId") + .HasConstraintName("fk_waifuinfo_discorduser_affinityid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") + .WithMany() + .HasForeignKey("ClaimerId") + .HasConstraintName("fk_waifuinfo_discorduser_claimerid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_waifuinfo_discorduser_waifuid"); + + b.Navigation("Affinity"); + + b.Navigation("Claimer"); + + b.Navigation("Waifu"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") + .WithMany("Items") + .HasForeignKey("WaifuInfoId") + .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid"); + + b.Navigation("WaifuInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "New") + .WithMany() + .HasForeignKey("NewId") + .HasConstraintName("fk_waifuupdates_discorduser_newid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") + .WithMany() + .HasForeignKey("OldId") + .HasConstraintName("fk_waifuupdates_discorduser_oldid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_waifuupdates_discorduser_userid"); + + b.Navigation("New"); + + b.Navigation("Old"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("CurrencyRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("RoleRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => + { + b.Navigation("IgnoredChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => + { + b.Navigation("Users"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.Navigation("Applicants"); + + b.Navigation("Bans"); + + b.Navigation("Members"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => + { + b.Navigation("Participants"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => + { + b.Navigation("Permissions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => + { + b.Navigation("FilterInvitesChannelIds"); + + b.Navigation("FilterLinksChannelIds"); + + b.Navigation("FilterWordsChannelIds"); + + b.Navigation("FilteredWords"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => + { + b.Navigation("LogIgnores"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => + { + b.Navigation("Songs"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => + { + b.Navigation("Blacklist"); + + b.Navigation("Whitelist"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => + { + b.Navigation("CurrencyRewards"); + + b.Navigation("RoleRewards"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.cs b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.cs similarity index 98% rename from src/EllieBot/Migrations/PostgreSql/20250315225539_init.cs rename to src/EllieBot/Migrations/PostgreSql/20250317063309_init.cs index 3e0f8d2..d1ca439 100644 --- a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.cs +++ b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.cs @@ -855,6 +855,24 @@ namespace EllieBot.Migrations.PostgreSql table.UniqueConstraint("ak_sargroup_guildid_groupnumber", x => new { x.guildid, x.groupnumber }); }); + migrationBuilder.CreateTable( + name: "scheduledcommand", + columns: table => new + { + id = table.Column<int>(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + userid = table.Column<decimal>(type: "numeric(20,0)", nullable: false), + channelid = table.Column<decimal>(type: "numeric(20,0)", nullable: false), + guildid = table.Column<decimal>(type: "numeric(20,0)", nullable: false), + messageid = table.Column<decimal>(type: "numeric(20,0)", nullable: false), + text = table.Column<string>(type: "text", nullable: false), + when = table.Column<DateTime>(type: "timestamp without time zone", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_scheduledcommand", x => x.id); + }); + migrationBuilder.CreateTable( name: "shopentry", columns: table => new @@ -2048,6 +2066,21 @@ namespace EllieBot.Migrations.PostgreSql column: "guildid", unique: true); + migrationBuilder.CreateIndex( + name: "ix_scheduledcommand_guildid", + table: "scheduledcommand", + column: "guildid"); + + migrationBuilder.CreateIndex( + name: "ix_scheduledcommand_userid", + table: "scheduledcommand", + column: "userid"); + + migrationBuilder.CreateIndex( + name: "ix_scheduledcommand_when", + table: "scheduledcommand", + column: "when"); + migrationBuilder.CreateIndex( name: "ix_shopentry_guildid_index", table: "shopentry", @@ -2472,6 +2505,9 @@ namespace EllieBot.Migrations.PostgreSql migrationBuilder.DropTable( name: "sarautodelete"); + migrationBuilder.DropTable( + name: "scheduledcommand"); + migrationBuilder.DropTable( name: "shopentryitem"); @@ -2590,4 +2626,4 @@ namespace EllieBot.Migrations.PostgreSql name: "discorduser"); } } -} \ No newline at end of file +} diff --git a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs index fc8795f..36d701a 100644 --- a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs +++ b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs @@ -23,4012 +23,4061 @@ namespace EllieBot.Migrations.PostgreSql NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<int>("Action") - .HasColumnType("integer") - .HasColumnName("action"); + b.Property<int>("Action") + .HasColumnType("integer") + .HasColumnName("action"); - b.Property<int>("ActionDurationMinutes") - .HasColumnType("integer") - .HasColumnName("actiondurationminutes"); + b.Property<int>("ActionDurationMinutes") + .HasColumnType("integer") + .HasColumnName("actiondurationminutes"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<TimeSpan>("MinAge") - .HasColumnType("interval") - .HasColumnName("minage"); + b.Property<TimeSpan>("MinAge") + .HasColumnType("interval") + .HasColumnName("minage"); - b.Property<decimal?>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); + b.Property<decimal?>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); - b.HasKey("Id") - .HasName("pk_antialtsetting"); + b.HasKey("Id") + .HasName("pk_antialtsetting"); - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_antialtsetting_guildid"); + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_antialtsetting_guildid"); - b.ToTable("antialtsetting", (string)null); - }); + b.ToTable("antialtsetting", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<int>("Action") - .HasColumnType("integer") - .HasColumnName("action"); + b.Property<int>("Action") + .HasColumnType("integer") + .HasColumnName("action"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<int>("PunishDuration") - .HasColumnType("integer") - .HasColumnName("punishduration"); + b.Property<int>("PunishDuration") + .HasColumnType("integer") + .HasColumnName("punishduration"); - b.Property<int>("Seconds") - .HasColumnType("integer") - .HasColumnName("seconds"); + b.Property<int>("Seconds") + .HasColumnType("integer") + .HasColumnName("seconds"); - b.Property<int>("UserThreshold") - .HasColumnType("integer") - .HasColumnName("userthreshold"); + b.Property<int>("UserThreshold") + .HasColumnType("integer") + .HasColumnName("userthreshold"); - b.HasKey("Id") - .HasName("pk_antiraidsetting"); + b.HasKey("Id") + .HasName("pk_antiraidsetting"); - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_antiraidsetting_guildid"); + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_antiraidsetting_guildid"); - b.ToTable("antiraidsetting", (string)null); - }); + b.ToTable("antiraidsetting", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<int?>("AntiSpamSettingId") - .HasColumnType("integer") - .HasColumnName("antispamsettingid"); + b.Property<int?>("AntiSpamSettingId") + .HasColumnType("integer") + .HasColumnName("antispamsettingid"); - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.HasKey("Id") - .HasName("pk_antispamignore"); + b.HasKey("Id") + .HasName("pk_antispamignore"); - b.HasIndex("AntiSpamSettingId") - .HasDatabaseName("ix_antispamignore_antispamsettingid"); + b.HasIndex("AntiSpamSettingId") + .HasDatabaseName("ix_antispamignore_antispamsettingid"); - b.ToTable("antispamignore", (string)null); - }); + b.ToTable("antispamignore", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<int>("Action") - .HasColumnType("integer") - .HasColumnName("action"); + b.Property<int>("Action") + .HasColumnType("integer") + .HasColumnName("action"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<int>("MessageThreshold") - .HasColumnType("integer") - .HasColumnName("messagethreshold"); + b.Property<int>("MessageThreshold") + .HasColumnType("integer") + .HasColumnName("messagethreshold"); - b.Property<int>("MuteTime") - .HasColumnType("integer") - .HasColumnName("mutetime"); + b.Property<int>("MuteTime") + .HasColumnType("integer") + .HasColumnName("mutetime"); - b.Property<decimal?>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); + b.Property<decimal?>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); - b.HasKey("Id") - .HasName("pk_antispamsetting"); + b.HasKey("Id") + .HasName("pk_antispamsetting"); - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_antispamsetting_guildid"); + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_antispamsetting_guildid"); - b.ToTable("antispamsetting", (string)null); - }); + b.ToTable("antispamsetting", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); - b.HasKey("Id") - .HasName("pk_todosarchive"); + b.HasKey("Id") + .HasName("pk_todosarchive"); - b.ToTable("todosarchive", (string)null); - }); + b.ToTable("todosarchive", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<string>("ChannelName") - .HasColumnType("text") - .HasColumnName("channelname"); + b.Property<string>("ChannelName") + .HasColumnType("text") + .HasColumnName("channelname"); - b.Property<string>("CommandText") - .HasColumnType("text") - .HasColumnName("commandtext"); + b.Property<string>("CommandText") + .HasColumnType("text") + .HasColumnName("commandtext"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal?>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal?>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<string>("GuildName") - .HasColumnType("text") - .HasColumnName("guildname"); + b.Property<string>("GuildName") + .HasColumnType("text") + .HasColumnName("guildname"); - b.Property<int>("Interval") - .HasColumnType("integer") - .HasColumnName("interval"); + b.Property<int>("Interval") + .HasColumnType("integer") + .HasColumnName("interval"); - b.Property<decimal?>("VoiceChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("voicechannelid"); + b.Property<decimal?>("VoiceChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("voicechannelid"); - b.Property<string>("VoiceChannelName") - .HasColumnType("text") - .HasColumnName("voicechannelname"); + b.Property<string>("VoiceChannelName") + .HasColumnType("text") + .HasColumnName("voicechannelname"); - b.HasKey("Id") - .HasName("pk_autocommands"); + b.HasKey("Id") + .HasName("pk_autocommands"); - b.ToTable("autocommands", (string)null); - }); + b.ToTable("autocommands", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.HasKey("Id") - .HasName("pk_autopublishchannel"); + b.HasKey("Id") + .HasName("pk_autopublishchannel"); - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_autopublishchannel_guildid"); + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_autopublishchannel_guildid"); - b.ToTable("autopublishchannel", (string)null); - }); + b.ToTable("autopublishchannel", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<bool>("AutoDelete") - .HasColumnType("boolean") - .HasColumnName("autodelete"); + b.Property<bool>("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("autodelete"); - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.HasKey("Id") - .HasName("pk_autotranslatechannels"); + b.HasKey("Id") + .HasName("pk_autotranslatechannels"); - b.HasIndex("ChannelId") - .IsUnique() - .HasDatabaseName("ix_autotranslatechannels_channelid"); + b.HasIndex("ChannelId") + .IsUnique() + .HasDatabaseName("ix_autotranslatechannels_channelid"); - b.HasIndex("GuildId") - .HasDatabaseName("ix_autotranslatechannels_guildid"); + b.HasIndex("GuildId") + .HasDatabaseName("ix_autotranslatechannels_guildid"); - b.ToTable("autotranslatechannels", (string)null); - }); + b.ToTable("autotranslatechannels", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<int>("ChannelId") - .HasColumnType("integer") - .HasColumnName("channelid"); + b.Property<int>("ChannelId") + .HasColumnType("integer") + .HasColumnName("channelid"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<string>("Source") - .HasColumnType("text") - .HasColumnName("source"); + b.Property<string>("Source") + .HasColumnType("text") + .HasColumnName("source"); - b.Property<string>("Target") - .HasColumnType("text") - .HasColumnName("target"); + b.Property<string>("Target") + .HasColumnType("text") + .HasColumnName("target"); - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); - b.HasKey("Id") - .HasName("pk_autotranslateusers"); + b.HasKey("Id") + .HasName("pk_autotranslateusers"); - b.HasAlternateKey("ChannelId", "UserId") - .HasName("ak_autotranslateusers_channelid_userid"); + b.HasAlternateKey("ChannelId", "UserId") + .HasName("ak_autotranslateusers_channelid_userid"); - b.ToTable("autotranslateusers", (string)null); - }); + b.ToTable("autotranslateusers", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<int?>("PruneDays") - .HasColumnType("integer") - .HasColumnName("prunedays"); + b.Property<int?>("PruneDays") + .HasColumnType("integer") + .HasColumnName("prunedays"); - b.Property<string>("Text") - .HasColumnType("text") - .HasColumnName("text"); + b.Property<string>("Text") + .HasColumnType("text") + .HasColumnName("text"); - b.HasKey("Id") - .HasName("pk_bantemplates"); + b.HasKey("Id") + .HasName("pk_bantemplates"); - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_bantemplates_guildid"); + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_bantemplates_guildid"); - b.ToTable("bantemplates", (string)null); - }); + b.ToTable("bantemplates", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.BankUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<long>("Balance") - .HasColumnType("bigint") - .HasColumnName("balance"); + b.Property<long>("Balance") + .HasColumnType("bigint") + .HasColumnName("balance"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); - b.HasKey("Id") - .HasName("pk_bankusers"); + b.HasKey("Id") + .HasName("pk_bankusers"); - b.HasIndex("UserId") - .IsUnique() - .HasDatabaseName("ix_bankusers_userid"); + b.HasIndex("UserId") + .IsUnique() + .HasDatabaseName("ix_bankusers_userid"); - b.ToTable("bankusers", (string)null); - }); + b.ToTable("bankusers", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("ItemId") - .HasColumnType("numeric(20,0)") - .HasColumnName("itemid"); + b.Property<decimal>("ItemId") + .HasColumnType("numeric(20,0)") + .HasColumnName("itemid"); - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); - b.HasKey("Id") - .HasName("pk_blacklist"); + b.HasKey("Id") + .HasName("pk_blacklist"); - b.ToTable("blacklist", (string)null); - }); + b.ToTable("blacklist", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<string>("ButtonId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("character varying(200)") - .HasColumnName("buttonid"); + b.Property<string>("ButtonId") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("character varying(200)") + .HasColumnName("buttonid"); - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<string>("Emote") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("character varying(100)") - .HasColumnName("emote"); + b.Property<string>("Emote") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("emote"); - b.Property<bool>("Exclusive") - .HasColumnType("boolean") - .HasColumnName("exclusive"); + b.Property<bool>("Exclusive") + .HasColumnType("boolean") + .HasColumnName("exclusive"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<string>("Label") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("character varying(50)") - .HasColumnName("label"); + b.Property<string>("Label") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("label"); - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); - b.Property<int>("Position") - .HasColumnType("integer") - .HasColumnName("position"); + b.Property<int>("Position") + .HasColumnType("integer") + .HasColumnName("position"); - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); - b.HasKey("Id") - .HasName("pk_buttonrole"); + b.HasKey("Id") + .HasName("pk_buttonrole"); - b.HasAlternateKey("RoleId", "MessageId") - .HasName("ak_buttonrole_roleid_messageid"); + b.HasAlternateKey("RoleId", "MessageId") + .HasName("ak_buttonrole_roleid_messageid"); - b.HasIndex("GuildId") - .HasDatabaseName("ix_buttonrole_guildid"); + b.HasIndex("GuildId") + .HasDatabaseName("ix_buttonrole_guildid"); - b.ToTable("buttonrole", (string)null); - }); + b.ToTable("buttonrole", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.Property<int>("ClubId") - .HasColumnType("integer") - .HasColumnName("clubid"); + { + b.Property<int>("ClubId") + .HasColumnType("integer") + .HasColumnName("clubid"); - b.Property<int>("UserId") - .HasColumnType("integer") - .HasColumnName("userid"); + b.Property<int>("UserId") + .HasColumnType("integer") + .HasColumnName("userid"); - b.HasKey("ClubId", "UserId") - .HasName("pk_clubapplicants"); + b.HasKey("ClubId", "UserId") + .HasName("pk_clubapplicants"); - b.HasIndex("UserId") - .HasDatabaseName("ix_clubapplicants_userid"); + b.HasIndex("UserId") + .HasDatabaseName("ix_clubapplicants_userid"); - b.ToTable("clubapplicants", (string)null); - }); + b.ToTable("clubapplicants", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.Property<int>("ClubId") - .HasColumnType("integer") - .HasColumnName("clubid"); + { + b.Property<int>("ClubId") + .HasColumnType("integer") + .HasColumnName("clubid"); - b.Property<int>("UserId") - .HasColumnType("integer") - .HasColumnName("userid"); + b.Property<int>("UserId") + .HasColumnType("integer") + .HasColumnName("userid"); - b.HasKey("ClubId", "UserId") - .HasName("pk_clubbans"); + b.HasKey("ClubId", "UserId") + .HasName("pk_clubbans"); - b.HasIndex("UserId") - .HasDatabaseName("ix_clubbans_userid"); + b.HasIndex("UserId") + .HasDatabaseName("ix_clubbans_userid"); - b.ToTable("clubbans", (string)null); - }); + b.ToTable("clubbans", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<string>("BannerUrl") - .HasColumnType("text") - .HasColumnName("bannerurl"); + b.Property<string>("BannerUrl") + .HasColumnType("text") + .HasColumnName("bannerurl"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<string>("Description") - .HasColumnType("text") - .HasColumnName("description"); + b.Property<string>("Description") + .HasColumnType("text") + .HasColumnName("description"); - b.Property<string>("ImageUrl") - .HasColumnType("text") - .HasColumnName("imageurl"); + b.Property<string>("ImageUrl") + .HasColumnType("text") + .HasColumnName("imageurl"); - b.Property<string>("Name") - .HasMaxLength(20) - .HasColumnType("character varying(20)") - .HasColumnName("name"); + b.Property<string>("Name") + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasColumnName("name"); - b.Property<int?>("OwnerId") - .HasColumnType("integer") - .HasColumnName("ownerid"); + b.Property<int?>("OwnerId") + .HasColumnType("integer") + .HasColumnName("ownerid"); - b.Property<int>("Xp") - .HasColumnType("integer") - .HasColumnName("xp"); + b.Property<int>("Xp") + .HasColumnType("integer") + .HasColumnName("xp"); - b.HasKey("Id") - .HasName("pk_clubs"); + b.HasKey("Id") + .HasName("pk_clubs"); - b.HasIndex("Name") - .IsUnique() - .HasDatabaseName("ix_clubs_name"); + b.HasIndex("Name") + .IsUnique() + .HasDatabaseName("ix_clubs_name"); - b.HasIndex("OwnerId") - .IsUnique() - .HasDatabaseName("ix_clubs_ownerid"); + b.HasIndex("OwnerId") + .IsUnique() + .HasDatabaseName("ix_clubs_ownerid"); - b.ToTable("clubs", (string)null); - }); + b.ToTable("clubs", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<string>("Mapping") - .HasColumnType("text") - .HasColumnName("mapping"); + b.Property<string>("Mapping") + .HasColumnType("text") + .HasColumnName("mapping"); - b.Property<string>("Trigger") - .HasColumnType("text") - .HasColumnName("trigger"); + b.Property<string>("Trigger") + .HasColumnType("text") + .HasColumnName("trigger"); - b.HasKey("Id") - .HasName("pk_commandalias"); + b.HasKey("Id") + .HasName("pk_commandalias"); - b.HasIndex("GuildId") - .HasDatabaseName("ix_commandalias_guildid"); + b.HasIndex("GuildId") + .HasDatabaseName("ix_commandalias_guildid"); - b.ToTable("commandalias", (string)null); - }); + b.ToTable("commandalias", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<string>("CommandName") - .HasColumnType("text") - .HasColumnName("commandname"); + b.Property<string>("CommandName") + .HasColumnType("text") + .HasColumnName("commandname"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<int>("Seconds") - .HasColumnType("integer") - .HasColumnName("seconds"); + b.Property<int>("Seconds") + .HasColumnType("integer") + .HasColumnName("seconds"); - b.HasKey("Id") - .HasName("pk_commandcooldown"); + b.HasKey("Id") + .HasName("pk_commandcooldown"); - b.HasIndex("GuildId", "CommandName") - .IsUnique() - .HasDatabaseName("ix_commandcooldown_guildid_commandname"); + b.HasIndex("GuildId", "CommandName") + .IsUnique() + .HasDatabaseName("ix_commandcooldown_guildid_commandname"); - b.ToTable("commandcooldown", (string)null); - }); + b.ToTable("commandcooldown", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<long>("Amount") - .HasColumnType("bigint") - .HasColumnName("amount"); + b.Property<long>("Amount") + .HasColumnType("bigint") + .HasColumnName("amount"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<string>("Extra") - .IsRequired() - .HasColumnType("text") - .HasColumnName("extra"); + b.Property<string>("Extra") + .IsRequired() + .HasColumnType("text") + .HasColumnName("extra"); - b.Property<string>("Note") - .HasColumnType("text") - .HasColumnName("note"); + b.Property<string>("Note") + .HasColumnType("text") + .HasColumnName("note"); - b.Property<decimal?>("OtherId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("otherid") - .HasDefaultValueSql("NULL"); + b.Property<decimal?>("OtherId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("otherid") + .HasDefaultValueSql("NULL"); - b.Property<string>("Type") - .IsRequired() - .HasColumnType("text") - .HasColumnName("type"); + b.Property<string>("Type") + .IsRequired() + .HasColumnType("text") + .HasColumnName("type"); - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); - b.HasKey("Id") - .HasName("pk_currencytransactions"); + b.HasKey("Id") + .HasName("pk_currencytransactions"); - b.HasIndex("UserId") - .HasDatabaseName("ix_currencytransactions_userid"); + b.HasIndex("UserId") + .HasDatabaseName("ix_currencytransactions_userid"); - b.ToTable("currencytransactions", (string)null); - }); + b.ToTable("currencytransactions", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<bool>("State") - .HasColumnType("boolean") - .HasColumnName("state"); + b.Property<bool>("State") + .HasColumnType("boolean") + .HasColumnName("state"); - b.HasKey("Id") - .HasName("pk_delmsgoncmdchannel"); + b.HasKey("Id") + .HasName("pk_delmsgoncmdchannel"); - b.HasIndex("GuildId", "ChannelId") - .IsUnique() - .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid"); + b.HasIndex("GuildId", "ChannelId") + .IsUnique() + .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid"); - b.ToTable("delmsgoncmdchannel", (string)null); - }); + b.ToTable("delmsgoncmdchannel", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<string>("Command") - .HasColumnType("text") - .HasColumnName("command"); + b.Property<string>("Command") + .HasColumnType("text") + .HasColumnName("command"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<decimal?>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal?>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<decimal>("Perm") - .HasColumnType("numeric(20,0)") - .HasColumnName("perm"); + b.Property<decimal>("Perm") + .HasColumnType("numeric(20,0)") + .HasColumnName("perm"); - b.HasKey("Id") - .HasName("pk_discordpermoverrides"); + b.HasKey("Id") + .HasName("pk_discordpermoverrides"); - b.HasIndex("GuildId", "Command") - .IsUnique() - .HasDatabaseName("ix_discordpermoverrides_guildid_command"); + b.HasIndex("GuildId", "Command") + .IsUnique() + .HasDatabaseName("ix_discordpermoverrides_guildid_command"); - b.ToTable("discordpermoverrides", (string)null); - }); + b.ToTable("discordpermoverrides", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<string>("AvatarId") - .HasColumnType("text") - .HasColumnName("avatarid"); + b.Property<string>("AvatarId") + .HasColumnType("text") + .HasColumnName("avatarid"); - b.Property<int?>("ClubId") - .HasColumnType("integer") - .HasColumnName("clubid"); + b.Property<int?>("ClubId") + .HasColumnType("integer") + .HasColumnName("clubid"); - b.Property<long>("CurrencyAmount") - .ValueGeneratedOnAdd() - .HasColumnType("bigint") - .HasDefaultValue(0L) - .HasColumnName("currencyamount"); + b.Property<long>("CurrencyAmount") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValue(0L) + .HasColumnName("currencyamount"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<bool>("IsClubAdmin") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(false) - .HasColumnName("isclubadmin"); + b.Property<bool>("IsClubAdmin") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("isclubadmin"); - b.Property<long>("TotalXp") - .ValueGeneratedOnAdd() - .HasColumnType("bigint") - .HasDefaultValue(0L) - .HasColumnName("totalxp"); + b.Property<long>("TotalXp") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValue(0L) + .HasColumnName("totalxp"); - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); - b.HasKey("Id") - .HasName("pk_discorduser"); + b.HasKey("Id") + .HasName("pk_discorduser"); - b.HasAlternateKey("UserId") - .HasName("ak_discorduser_userid"); + b.HasAlternateKey("UserId") + .HasName("ak_discorduser_userid"); - b.HasIndex("ClubId") - .HasDatabaseName("ix_discorduser_clubid"); + b.HasIndex("ClubId") + .HasDatabaseName("ix_discorduser_clubid"); - b.HasIndex("CurrencyAmount") - .HasDatabaseName("ix_discorduser_currencyamount"); + b.HasIndex("CurrencyAmount") + .HasDatabaseName("ix_discorduser_currencyamount"); - b.HasIndex("TotalXp") - .HasDatabaseName("ix_discorduser_totalxp"); + b.HasIndex("TotalXp") + .HasDatabaseName("ix_discorduser_totalxp"); - b.HasIndex("UserId") - .HasDatabaseName("ix_discorduser_userid"); + b.HasIndex("UserId") + .HasDatabaseName("ix_discorduser_userid"); - b.HasIndex("Username") - .HasDatabaseName("ix_discorduser_username"); + b.HasIndex("Username") + .HasDatabaseName("ix_discorduser_username"); - b.ToTable("discorduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<string>("Url") - .HasColumnType("text") - .HasColumnName("url"); - - b.HasKey("Id") - .HasName("pk_feedsub"); - - b.HasIndex("GuildId", "Url") - .IsUnique() - .HasDatabaseName("ix_feedsub_guildid_url"); - - b.ToTable("feedsub", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.HasKey("Id") - .HasName("pk_filterchannelid"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filterchannelid_guildfilterconfigid"); - - b.ToTable("filterchannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.HasKey("Id") - .HasName("pk_filterlinkschannelid"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid"); - - b.ToTable("filterlinkschannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.HasKey("Id") - .HasName("pk_filterwordschannelid"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid"); - - b.ToTable("filterwordschannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("integer") - .HasColumnName("guildfilterconfigid"); - - b.Property<string>("Word") - .HasColumnType("text") - .HasColumnName("word"); - - b.HasKey("Id") - .HasName("pk_filteredword"); - - b.HasIndex("GuildFilterConfigId") - .HasDatabaseName("ix_filteredword_guildfilterconfigid"); - - b.ToTable("filteredword", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_flagtranslatechannel"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique() - .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid"); - - b.ToTable("flagtranslatechannel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<string>("PrettyName") - .HasColumnType("text") - .HasColumnName("prettyname"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_followedstream"); - - b.HasIndex("GuildId", "Username", "Type") - .HasDatabaseName("ix_followedstream_guildid_username_type"); - - b.ToTable("followedstream", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_gcchannelid"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique() - .HasDatabaseName("ix_gcchannelid_guildid_channelid"); - - b.ToTable("gcchannelid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("Bet") - .HasColumnType("numeric") - .HasColumnName("bet"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Feature") - .HasColumnType("text") - .HasColumnName("feature"); - - b.Property<decimal>("PaidOut") - .HasColumnType("numeric") - .HasColumnName("paidout"); - - b.HasKey("Id") - .HasName("pk_gamblingstats"); - - b.HasIndex("Feature") - .IsUnique() - .HasDatabaseName("ix_gamblingstats_feature"); - - b.ToTable("gamblingstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime>("EndsAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("endsat"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.HasKey("Id") - .HasName("pk_giveawaymodel"); - - b.ToTable("giveawaymodel", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("GiveawayId") - .HasColumnType("integer") - .HasColumnName("giveawayid"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_giveawayuser"); - - b.HasIndex("GiveawayId", "UserId") - .IsUnique() - .HasDatabaseName("ix_giveawayuser_giveawayid_userid"); - - b.ToTable("giveawayuser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("ErrorColor") - .HasMaxLength(9) - .HasColumnType("character varying(9)") - .HasColumnName("errorcolor"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("OkColor") - .HasMaxLength(9) - .HasColumnType("character varying(9)") - .HasColumnName("okcolor"); - - b.Property<string>("PendingColor") - .HasMaxLength(9) - .HasColumnType("character varying(9)") - .HasColumnName("pendingcolor"); - - b.HasKey("Id") - .HasName("pk_guildcolors"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_guildcolors_guildid"); - - b.ToTable("guildcolors", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("AutoAssignRoleIds") - .HasColumnType("text") - .HasColumnName("autoassignroleids"); - - b.Property<bool>("CleverbotEnabled") - .HasColumnType("boolean") - .HasColumnName("cleverbotenabled"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("DeleteMessageOnCommand") - .HasColumnType("boolean") - .HasColumnName("deletemessageoncommand"); - - b.Property<bool>("DeleteStreamOnlineMessage") - .HasColumnType("boolean") - .HasColumnName("deletestreamonlinemessage"); - - b.Property<bool>("DisableGlobalExpressions") - .HasColumnType("boolean") - .HasColumnName("disableglobalexpressions"); - - b.Property<decimal?>("GameVoiceChannel") - .HasColumnType("numeric(20,0)") - .HasColumnName("gamevoicechannel"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Locale") - .HasColumnType("text") - .HasColumnName("locale"); - - b.Property<string>("MuteRoleName") - .HasColumnType("text") - .HasColumnName("muterolename"); - - b.Property<bool>("NotifyStreamOffline") - .HasColumnType("boolean") - .HasColumnName("notifystreamoffline"); - - b.Property<string>("PermissionRole") - .HasColumnType("text") - .HasColumnName("permissionrole"); - - b.Property<string>("Prefix") - .HasColumnType("text") - .HasColumnName("prefix"); - - b.Property<bool>("StickyRoles") - .HasColumnType("boolean") - .HasColumnName("stickyroles"); - - b.Property<string>("TimeZoneId") - .HasColumnType("text") - .HasColumnName("timezoneid"); - - b.Property<bool>("VerboseErrors") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(true) - .HasColumnName("verboseerrors"); - - b.Property<bool>("VerbosePermissions") - .HasColumnType("boolean") - .HasColumnName("verbosepermissions"); - - b.Property<int>("WarnExpireAction") - .HasColumnType("integer") - .HasColumnName("warnexpireaction"); - - b.Property<int>("WarnExpireHours") - .HasColumnType("integer") - .HasColumnName("warnexpirehours"); - - b.Property<bool>("WarningsInitialized") - .HasColumnType("boolean") - .HasColumnName("warningsinitialized"); - - b.HasKey("Id") - .HasName("pk_guildconfigs"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_guildconfigs_guildid"); - - b.HasIndex("WarnExpireHours") - .HasDatabaseName("ix_guildconfigs_warnexpirehours"); - - b.ToTable("guildconfigs", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<bool>("FilterInvites") - .HasColumnType("boolean") - .HasColumnName("filterinvites"); - - b.Property<bool>("FilterLinks") - .HasColumnType("boolean") - .HasColumnName("filterlinks"); - - b.Property<bool>("FilterWords") - .HasColumnType("boolean") - .HasColumnName("filterwords"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_guildfilterconfig"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_guildfilterconfig_guildid"); - - b.ToTable("guildfilterconfig", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => - { - b.Property<decimal>("GuildId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.HasKey("GuildId") - .HasName("pk_honeypotchannels"); - - b.ToTable("honeypotchannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("ItemType") - .HasColumnType("integer") - .HasColumnName("itemtype"); - - b.Property<decimal>("LogItemId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logitemid"); - - b.Property<int>("LogSettingId") - .HasColumnType("integer") - .HasColumnName("logsettingid"); - - b.HasKey("Id") - .HasName("pk_ignoredlogchannels"); - - b.HasIndex("LogSettingId", "LogItemId", "ItemType") - .IsUnique() - .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype"); - - b.ToTable("ignoredlogchannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_imageonlychannels"); - - b.HasIndex("ChannelId") - .IsUnique() - .HasDatabaseName("ix_imageonlychannels_channelid"); - - b.ToTable("imageonlychannels", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal?>("ChannelCreatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelcreatedid"); - - b.Property<decimal?>("ChannelDestroyedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channeldestroyedid"); - - b.Property<decimal?>("ChannelUpdatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelupdatedid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal?>("LogOtherId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logotherid"); - - b.Property<decimal?>("LogUserPresenceId") - .HasColumnType("numeric(20,0)") - .HasColumnName("loguserpresenceid"); - - b.Property<decimal?>("LogVoicePresenceId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logvoicepresenceid"); - - b.Property<decimal?>("LogVoicePresenceTTSId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logvoicepresencettsid"); - - b.Property<decimal?>("LogWarnsId") - .HasColumnType("numeric(20,0)") - .HasColumnName("logwarnsid"); - - b.Property<decimal?>("MessageDeletedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messagedeletedid"); - - b.Property<decimal?>("MessageUpdatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageupdatedid"); - - b.Property<decimal?>("ThreadCreatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("threadcreatedid"); - - b.Property<decimal?>("ThreadDeletedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("threaddeletedid"); - - b.Property<decimal?>("UserBannedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userbannedid"); - - b.Property<decimal?>("UserJoinedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userjoinedid"); - - b.Property<decimal?>("UserLeftId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userleftid"); - - b.Property<decimal?>("UserMutedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("usermutedid"); - - b.Property<decimal?>("UserUnbannedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userunbannedid"); - - b.Property<decimal?>("UserUpdatedId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userupdatedid"); - - b.HasKey("Id") - .HasName("pk_logsettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_logsettings_guildid"); - - b.ToTable("logsettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<bool>("AutoDisconnect") - .HasColumnType("boolean") - .HasColumnName("autodisconnect"); - - b.Property<bool>("AutoPlay") - .HasColumnType("boolean") - .HasColumnName("autoplay"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal?>("MusicChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("musicchannelid"); - - b.Property<int>("PlayerRepeat") - .HasColumnType("integer") - .HasColumnName("playerrepeat"); - - b.Property<int>("QualityPreset") - .HasColumnType("integer") - .HasColumnName("qualitypreset"); - - b.Property<int>("Volume") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasDefaultValue(100) - .HasColumnName("volume"); - - b.HasKey("Id") - .HasName("pk_musicplayersettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_musicplayersettings_guildid"); - - b.ToTable("musicplayersettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<string>("Author") - .HasColumnType("text") - .HasColumnName("author"); - - b.Property<decimal>("AuthorId") - .HasColumnType("numeric(20,0)") - .HasColumnName("authorid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.HasKey("Id") - .HasName("pk_musicplaylists"); - - b.ToTable("musicplaylists", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_muteduserid"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_muteduserid_guildid_userid"); - - b.ToTable("muteduserid", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("Color") - .HasColumnType("bigint") - .HasColumnName("color"); - - b.Property<decimal>("OwnerId") - .HasColumnType("numeric(20,0)") - .HasColumnName("ownerid"); - - b.Property<int>("Position") - .HasColumnType("integer") - .HasColumnName("position"); - - b.Property<long>("Price") - .HasColumnType("bigint") - .HasColumnName("price"); - - b.Property<string>("Text") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_ncpixel"); - - b.HasAlternateKey("Position") - .HasName("ak_ncpixel_position"); - - b.HasIndex("OwnerId") - .HasDatabaseName("ix_ncpixel_ownerid"); - - b.ToTable("ncpixel", (string)null); - }); + b.ToTable("discorduser", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<bool>("AllowTarget") - .HasColumnType("boolean") - .HasColumnName("allowtarget"); + b.Property<bool>("AllowTarget") + .HasColumnType("boolean") + .HasColumnName("allowtarget"); - b.Property<bool>("AutoDeleteTrigger") - .HasColumnType("boolean") - .HasColumnName("autodeletetrigger"); + b.Property<bool>("AutoDeleteTrigger") + .HasColumnType("boolean") + .HasColumnName("autodeletetrigger"); - b.Property<bool>("ContainsAnywhere") - .HasColumnType("boolean") - .HasColumnName("containsanywhere"); + b.Property<bool>("ContainsAnywhere") + .HasColumnType("boolean") + .HasColumnName("containsanywhere"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<bool>("DmResponse") - .HasColumnType("boolean") - .HasColumnName("dmresponse"); + b.Property<bool>("DmResponse") + .HasColumnType("boolean") + .HasColumnName("dmresponse"); - b.Property<decimal?>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<decimal?>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<string>("Reactions") - .HasColumnType("text") - .HasColumnName("reactions"); + b.Property<string>("Reactions") + .HasColumnType("text") + .HasColumnName("reactions"); - b.Property<string>("Response") - .HasColumnType("text") - .HasColumnName("response"); + b.Property<string>("Response") + .HasColumnType("text") + .HasColumnName("response"); - b.Property<string>("Trigger") - .HasColumnType("text") - .HasColumnName("trigger"); + b.Property<string>("Trigger") + .HasColumnType("text") + .HasColumnName("trigger"); - b.HasKey("Id") - .HasName("pk_expressions"); + b.HasKey("Id") + .HasName("pk_expressions"); - b.ToTable("expressions", (string)null); - }); + b.ToTable("expressions", (string)null); + }); - modelBuilder.Entity("EllieBot.Db.Models.Notify", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); + modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Property<decimal?>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Property<string>("Message") - .IsRequired() - .HasMaxLength(10000) - .HasColumnType("character varying(10000)") - .HasColumnName("message"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); - b.HasKey("Id") - .HasName("pk_notify"); + b.Property<string>("Url") + .HasColumnType("text") + .HasColumnName("url"); - b.HasAlternateKey("GuildId", "Type") - .HasName("ak_notify_guildid_type"); + b.HasKey("Id") + .HasName("pk_feedsub"); - b.ToTable("notify", (string)null); - }); + b.HasIndex("GuildId", "Url") + .IsUnique() + .HasDatabaseName("ix_feedsub_guildid_url"); - modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => - { - b.Property<decimal>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<int>("AmountCents") - .HasColumnType("integer") - .HasColumnName("amountcents"); - - b.Property<DateTime>("LastCharge") - .HasColumnType("timestamp without time zone") - .HasColumnName("lastcharge"); - - b.Property<string>("UniquePlatformUserId") - .HasColumnType("text") - .HasColumnName("uniqueplatformuserid"); - - b.Property<DateTime>("ValidThru") - .HasColumnType("timestamp without time zone") - .HasColumnName("validthru"); - - b.HasKey("UserId") - .HasName("pk_patrons"); - - b.HasIndex("UniquePlatformUserId") - .IsUnique() - .HasDatabaseName("ix_patrons_uniqueplatformuserid"); - - b.ToTable("patrons", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("GuildConfigId") - .HasColumnType("integer") - .HasColumnName("guildconfigid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Index") - .HasColumnType("integer") - .HasColumnName("index"); - - b.Property<bool>("IsCustomCommand") - .HasColumnType("boolean") - .HasColumnName("iscustomcommand"); - - b.Property<int>("PrimaryTarget") - .HasColumnType("integer") - .HasColumnName("primarytarget"); - - b.Property<decimal>("PrimaryTargetId") - .HasColumnType("numeric(20,0)") - .HasColumnName("primarytargetid"); - - b.Property<int>("SecondaryTarget") - .HasColumnType("integer") - .HasColumnName("secondarytarget"); - - b.Property<string>("SecondaryTargetName") - .HasColumnType("text") - .HasColumnName("secondarytargetname"); - - b.Property<bool>("State") - .HasColumnType("boolean") - .HasColumnName("state"); - - b.HasKey("Id") - .HasName("pk_permissions"); - - b.HasIndex("GuildConfigId") - .HasDatabaseName("ix_permissions_guildconfigid"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_permissions_guildid"); - - b.ToTable("permissions", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("Amount") - .HasColumnType("bigint") - .HasColumnName("amount"); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<string>("Password") - .HasColumnType("text") - .HasColumnName("password"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_plantedcurrency"); - - b.HasIndex("ChannelId") - .HasDatabaseName("ix_plantedcurrency_channelid"); - - b.HasIndex("MessageId") - .IsUnique() - .HasDatabaseName("ix_plantedcurrency_messageid"); - - b.ToTable("plantedcurrency", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("MusicPlaylistId") - .HasColumnType("integer") - .HasColumnName("musicplaylistid"); - - b.Property<string>("Provider") - .HasColumnType("text") - .HasColumnName("provider"); - - b.Property<int>("ProviderType") - .HasColumnType("integer") - .HasColumnName("providertype"); - - b.Property<string>("Query") - .HasColumnType("text") - .HasColumnName("query"); - - b.Property<string>("Title") - .HasColumnType("text") - .HasColumnName("title"); - - b.Property<string>("Uri") - .HasColumnType("text") - .HasColumnName("uri"); - - b.HasKey("Id") - .HasName("pk_playlistsong"); - - b.HasIndex("MusicPlaylistId") - .HasDatabaseName("ix_playlistsong_musicplaylistid"); - - b.ToTable("playlistsong", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Quote", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("AuthorId") - .HasColumnType("numeric(20,0)") - .HasColumnName("authorid"); - - b.Property<string>("AuthorName") - .IsRequired() - .HasColumnType("text") - .HasColumnName("authorname"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Keyword") - .IsRequired() - .HasColumnType("text") - .HasColumnName("keyword"); - - b.Property<string>("Text") - .IsRequired() - .HasColumnType("text") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_quotes"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_quotes_guildid"); - - b.HasIndex("Keyword") - .HasDatabaseName("ix_quotes_keyword"); - - b.ToTable("quotes", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Emote") - .HasMaxLength(100) - .HasColumnType("character varying(100)") - .HasColumnName("emote"); - - b.Property<int>("Group") - .HasColumnType("integer") - .HasColumnName("group"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("LevelReq") - .HasColumnType("integer") - .HasColumnName("levelreq"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_reactionroles"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_reactionroles_guildid"); - - b.HasIndex("MessageId", "Emote") - .IsUnique() - .HasDatabaseName("ix_reactionroles_messageid_emote"); - - b.ToTable("reactionroles", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsPrivate") - .HasColumnType("boolean") - .HasColumnName("isprivate"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<decimal>("ServerId") - .HasColumnType("numeric(20,0)") - .HasColumnName("serverid"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<DateTime>("When") - .HasColumnType("timestamp without time zone") - .HasColumnName("when"); - - b.HasKey("Id") - .HasName("pk_reminders"); - - b.HasIndex("When") - .HasDatabaseName("ix_reminders_when"); - - b.ToTable("reminders", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<TimeSpan>("Interval") - .HasColumnType("interval") - .HasColumnName("interval"); - - b.Property<decimal?>("LastMessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("lastmessageid"); - - b.Property<string>("Message") - .HasColumnType("text") - .HasColumnName("message"); - - b.Property<bool>("NoRedundant") - .HasColumnType("boolean") - .HasColumnName("noredundant"); - - b.Property<TimeSpan?>("StartTimeOfDay") - .HasColumnType("interval") - .HasColumnName("starttimeofday"); - - b.HasKey("Id") - .HasName("pk_repeaters"); - - b.ToTable("repeaters", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<long>("AmountRewardedThisMonth") - .HasColumnType("bigint") - .HasColumnName("amountrewardedthismonth"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<DateTime>("LastReward") - .HasColumnType("timestamp without time zone") - .HasColumnName("lastreward"); - - b.Property<string>("PlatformUserId") - .HasColumnType("text") - .HasColumnName("platformuserid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_rewardedusers"); - - b.HasIndex("PlatformUserId") - .IsUnique() - .HasDatabaseName("ix_rewardedusers_platformuserid"); - - b.ToTable("rewardedusers", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("Status") - .HasColumnType("text") - .HasColumnName("status"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_rotatingstatus"); - - b.ToTable("rotatingstatus", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("LevelReq") - .HasColumnType("integer") - .HasColumnName("levelreq"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<int>("SarGroupId") - .HasColumnType("integer") - .HasColumnName("sargroupid"); - - b.HasKey("Id") - .HasName("pk_sar"); - - b.HasAlternateKey("GuildId", "RoleId") - .HasName("ak_sar_guildid_roleid"); - - b.HasIndex("SarGroupId") - .HasDatabaseName("ix_sar_sargroupid"); - - b.ToTable("sar", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("IsEnabled") - .HasColumnType("boolean") - .HasColumnName("isenabled"); - - b.HasKey("Id") - .HasName("pk_sarautodelete"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_sarautodelete_guildid"); - - b.ToTable("sarautodelete", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("GroupNumber") - .HasColumnType("integer") - .HasColumnName("groupnumber"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("IsExclusive") - .HasColumnType("boolean") - .HasColumnName("isexclusive"); - - b.Property<string>("Name") - .HasMaxLength(100) - .HasColumnType("character varying(100)") - .HasColumnName("name"); - - b.Property<decimal?>("RoleReq") - .HasColumnType("numeric(20,0)") - .HasColumnName("rolereq"); - - b.HasKey("Id") - .HasName("pk_sargroup"); - - b.HasAlternateKey("GuildId", "GroupNumber") - .HasName("ak_sargroup_guildid_groupnumber"); - - b.ToTable("sargroup", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("AuthorId") - .HasColumnType("numeric(20,0)") - .HasColumnName("authorid"); - - b.Property<string>("Command") - .HasColumnType("text") - .HasColumnName("command"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Index") - .HasColumnType("integer") - .HasColumnName("index"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<int>("Price") - .HasColumnType("integer") - .HasColumnName("price"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<string>("RoleName") - .HasColumnType("text") - .HasColumnName("rolename"); - - b.Property<decimal?>("RoleRequirement") - .HasColumnType("numeric(20,0)") - .HasColumnName("rolerequirement"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_shopentry"); - - b.HasIndex("GuildId", "Index") - .IsUnique() - .HasDatabaseName("ix_shopentry_guildid_index"); - - b.ToTable("shopentry", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("ShopEntryId") - .HasColumnType("integer") - .HasColumnName("shopentryid"); - - b.Property<string>("Text") - .HasColumnType("text") - .HasColumnName("text"); - - b.HasKey("Id") - .HasName("pk_shopentryitem"); - - b.HasIndex("ShopEntryId") - .HasDatabaseName("ix_shopentryitem_shopentryid"); - - b.ToTable("shopentryitem", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("Id") - .HasName("pk_slowmodeignoredrole"); - - b.HasIndex("GuildId", "RoleId") - .IsUnique() - .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid"); - - b.ToTable("slowmodeignoredrole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_slowmodeignoreduser"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid"); - - b.ToTable("slowmodeignoreduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("RoleIds") - .HasColumnType("text") - .HasColumnName("roleids"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_stickyroles"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_stickyroles_guildid_userid"); - - b.ToTable("stickyroles", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("MessageId") - .HasColumnType("numeric(20,0)") - .HasColumnName("messageid"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<int>("Type") - .HasColumnType("integer") - .HasColumnName("type"); - - b.HasKey("Id") - .HasName("pk_streamonlinemessages"); - - b.ToTable("streamonlinemessages", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("integer") - .HasColumnName("streamrolesettingsid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_streamroleblacklisteduser"); - - b.HasIndex("StreamRoleSettingsId") - .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid"); - - b.ToTable("streamroleblacklisteduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("AddRoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("addroleid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("Enabled") - .HasColumnType("boolean") - .HasColumnName("enabled"); - - b.Property<decimal>("FromRoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("fromroleid"); - - b.Property<int>("GuildConfigId") - .HasColumnType("integer") - .HasColumnName("guildconfigid"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Keyword") - .HasColumnType("text") - .HasColumnName("keyword"); - - b.HasKey("Id") - .HasName("pk_streamrolesettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_streamrolesettings_guildid"); - - b.ToTable("streamrolesettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("integer") - .HasColumnName("streamrolesettingsid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<string>("Username") - .HasColumnType("text") - .HasColumnName("username"); - - b.HasKey("Id") - .HasName("pk_streamrolewhitelisteduser"); - - b.HasIndex("StreamRoleSettingsId") - .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid"); - - b.ToTable("streamrolewhitelisteduser", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime>("ExpiresAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("expiresat"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("Remove") - .HasColumnType("boolean") - .HasColumnName("remove"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_temprole"); - - b.HasAlternateKey("GuildId", "UserId", "RoleId") - .HasName("ak_temprole_guildid_userid_roleid"); - - b.HasIndex("ExpiresAt") - .HasDatabaseName("ix_temprole_expiresat"); - - b.ToTable("temprole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("ArchiveId") - .HasColumnType("integer") - .HasColumnName("archiveid"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsDone") - .HasColumnType("boolean") - .HasColumnName("isdone"); - - b.Property<string>("Todo") - .HasColumnType("text") - .HasColumnName("todo"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_todos"); - - b.HasIndex("ArchiveId") - .HasDatabaseName("ix_todos_archiveid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_todos_userid"); - - b.ToTable("todos", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("unbanat"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_unbantimer"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_unbantimer_guildid_userid"); - - b.ToTable("unbantimer", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<DateTime>("UnmuteAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("unmuteat"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_unmutetimer"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_unmutetimer_guildid_userid"); - - b.ToTable("unmutetimer", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("timestamp without time zone") - .HasColumnName("unbanat"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_unroletimer"); - - b.HasIndex("GuildId", "UserId") - .IsUnique() - .HasDatabaseName("ix_unroletimer_guildid_userid"); - - b.ToTable("unroletimer", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<long>("Xp") - .HasColumnType("bigint") - .HasColumnName("xp"); - - b.HasKey("Id") - .HasName("pk_userxpstats"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_userxpstats_guildid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_userxpstats_userid"); - - b.HasIndex("Xp") - .HasDatabaseName("ix_userxpstats_xp"); - - b.HasIndex("UserId", "GuildId") - .IsUnique() - .HasDatabaseName("ix_userxpstats_userid_guildid"); - - b.ToTable("userxpstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<decimal>("VoiceChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("voicechannelid"); - - b.HasKey("Id") - .HasName("pk_vcroleinfo"); - - b.HasIndex("GuildId", "VoiceChannelId") - .IsUnique() - .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid"); - - b.ToTable("vcroleinfo", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("AffinityId") - .HasColumnType("integer") - .HasColumnName("affinityid"); - - b.Property<int?>("ClaimerId") - .HasColumnType("integer") - .HasColumnName("claimerid"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<long>("Price") - .HasColumnType("bigint") - .HasColumnName("price"); - - b.Property<int>("WaifuId") - .HasColumnType("integer") - .HasColumnName("waifuid"); - - b.HasKey("Id") - .HasName("pk_waifuinfo"); - - b.HasIndex("AffinityId") - .HasDatabaseName("ix_waifuinfo_affinityid"); - - b.HasIndex("ClaimerId") - .HasDatabaseName("ix_waifuinfo_claimerid"); - - b.HasIndex("Price") - .HasDatabaseName("ix_waifuinfo_price"); - - b.HasIndex("WaifuId") - .IsUnique() - .HasDatabaseName("ix_waifuinfo_waifuid"); - - b.ToTable("waifuinfo", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<string>("ItemEmoji") - .HasColumnType("text") - .HasColumnName("itememoji"); - - b.Property<string>("Name") - .HasColumnType("text") - .HasColumnName("name"); - - b.Property<int?>("WaifuInfoId") - .HasColumnType("integer") - .HasColumnName("waifuinfoid"); - - b.HasKey("Id") - .HasName("pk_waifuitem"); - - b.HasIndex("WaifuInfoId") - .HasDatabaseName("ix_waifuitem_waifuinfoid"); - - b.ToTable("waifuitem", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int?>("NewId") - .HasColumnType("integer") - .HasColumnName("newid"); - - b.Property<int?>("OldId") - .HasColumnType("integer") - .HasColumnName("oldid"); - - b.Property<int>("UpdateType") - .HasColumnType("integer") - .HasColumnName("updatetype"); - - b.Property<int>("UserId") - .HasColumnType("integer") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_waifuupdates"); - - b.HasIndex("NewId") - .HasDatabaseName("ix_waifuupdates_newid"); - - b.HasIndex("OldId") - .HasDatabaseName("ix_waifuupdates_oldid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_waifuupdates_userid"); - - b.ToTable("waifuupdates", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Warning", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("Forgiven") - .HasColumnType("boolean") - .HasColumnName("forgiven"); - - b.Property<string>("ForgivenBy") - .HasColumnType("text") - .HasColumnName("forgivenby"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<string>("Moderator") - .HasColumnType("text") - .HasColumnName("moderator"); - - b.Property<string>("Reason") - .HasColumnType("text") - .HasColumnName("reason"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<long>("Weight") - .ValueGeneratedOnAdd() - .HasColumnType("bigint") - .HasDefaultValue(1L) - .HasColumnName("weight"); - - b.HasKey("Id") - .HasName("pk_warnings"); - - b.HasIndex("DateAdded") - .HasDatabaseName("ix_warnings_dateadded"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_warnings_guildid"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_warnings_userid"); - - b.ToTable("warnings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Count") - .HasColumnType("integer") - .HasColumnName("count"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("Punishment") - .HasColumnType("integer") - .HasColumnName("punishment"); - - b.Property<decimal?>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<int>("Time") - .HasColumnType("integer") - .HasColumnName("time"); - - b.HasKey("Id") - .HasName("pk_warningpunishment"); - - b.HasAlternateKey("GuildId", "Count") - .HasName("ak_warningpunishment_guildid_count"); - - b.ToTable("warningpunishment", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Amount") - .HasColumnType("integer") - .HasColumnName("amount"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("Level") - .HasColumnType("integer") - .HasColumnName("level"); - - b.Property<int>("XpSettingsId") - .HasColumnType("integer") - .HasColumnName("xpsettingsid"); - - b.HasKey("Id") - .HasName("pk_xpcurrencyreward"); - - b.HasIndex("XpSettingsId") - .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid"); - - b.HasIndex("Level", "XpSettingsId") - .IsUnique() - .HasDatabaseName("ix_xpcurrencyreward_level_xpsettingsid"); - - b.ToTable("xpcurrencyreward", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<int>("Level") - .HasColumnType("integer") - .HasColumnName("level"); - - b.Property<bool>("Remove") - .HasColumnType("boolean") - .HasColumnName("remove"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.Property<int>("XpSettingsId") - .HasColumnType("integer") - .HasColumnName("xpsettingsid"); - - b.HasKey("Id") - .HasName("pk_xprolereward"); - - b.HasIndex("XpSettingsId", "Level") - .IsUnique() - .HasDatabaseName("ix_xprolereward_xpsettingsid_level"); - - b.ToTable("xprolereward", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.HasKey("Id") - .HasName("pk_xpsettings"); - - b.HasIndex("GuildId") - .IsUnique() - .HasDatabaseName("ix_xpsettings_guildid"); - - b.ToTable("xpsettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("timestamp without time zone") - .HasColumnName("dateadded"); - - b.Property<bool>("IsUsing") - .HasColumnType("boolean") - .HasColumnName("isusing"); - - b.Property<string>("ItemKey") - .IsRequired() - .HasColumnType("text") - .HasColumnName("itemkey"); - - b.Property<int>("ItemType") - .HasColumnType("integer") - .HasColumnName("itemtype"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_xpshopowneditem"); - - b.HasIndex("UserId", "ItemType", "ItemKey") - .IsUnique() - .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey"); - - b.ToTable("xpshopowneditem", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Count") - .HasColumnType("integer") - .HasColumnName("count"); - - b.Property<int>("FishId") - .HasColumnType("integer") - .HasColumnName("fishid"); - - b.Property<int>("MaxStars") - .HasColumnType("integer") - .HasColumnName("maxstars"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_fishcatch"); - - b.HasAlternateKey("UserId", "FishId") - .HasName("ak_fishcatch_userid_fishid"); - - b.ToTable("fishcatch", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int?>("Bait") - .HasColumnType("integer") - .HasColumnName("bait"); - - b.Property<int?>("Pole") - .HasColumnType("integer") - .HasColumnName("pole"); - - b.Property<int>("Skill") - .HasColumnType("integer") - .HasColumnName("skill"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.HasKey("Id") - .HasName("pk_userfishstats"); - - b.HasIndex("UserId") - .IsUnique() - .HasDatabaseName("ix_userfishstats_userid"); - - b.ToTable("userfishstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => - { - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<decimal>("RoleId") - .HasColumnType("numeric(20,0)") - .HasColumnName("roleid"); - - b.HasKey("GuildId", "UserId", "RoleId") - .HasName("pk_userrole"); - - b.HasIndex("GuildId") - .HasDatabaseName("ix_userrole_guildid"); - - b.HasIndex("GuildId", "UserId") - .HasDatabaseName("ix_userrole_guildid_userid"); - - b.ToTable("userrole", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<decimal>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<float>("Cooldown") - .HasColumnType("real") - .HasColumnName("cooldown"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("RateType") - .HasColumnType("integer") - .HasColumnName("ratetype"); - - b.Property<long>("XpAmount") - .HasColumnType("bigint") - .HasColumnName("xpamount"); - - b.HasKey("Id") - .HasName("pk_channelxpconfig"); - - b.HasAlternateKey("GuildId", "ChannelId", "RateType") - .HasName("ak_channelxpconfig_guildid_channelid_ratetype"); - - b.ToTable("channelxpconfig", (string)null); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<float>("Cooldown") - .HasColumnType("real") - .HasColumnName("cooldown"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<int>("RateType") - .HasColumnType("integer") - .HasColumnName("ratetype"); - - b.Property<long>("XpAmount") - .HasColumnType("bigint") - .HasColumnName("xpamount"); - - b.Property<string>("XpTemplateUrl") - .HasColumnType("text") - .HasColumnName("xptemplateurl"); - - b.HasKey("Id") - .HasName("pk_guildxpconfig"); - - b.HasAlternateKey("GuildId", "RateType") - .HasName("ak_guildxpconfig_guildid_ratetype"); - - b.ToTable("guildxpconfig", (string)null); - }); - - modelBuilder.Entity("EllieBot.Services.GreetSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("AutoDeleteTimer") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasDefaultValue(0) - .HasColumnName("autodeletetimer"); - - b.Property<decimal?>("ChannelId") - .HasColumnType("numeric(20,0)") - .HasColumnName("channelid"); - - b.Property<int>("GreetType") - .HasColumnType("integer") - .HasColumnName("greettype"); - - b.Property<decimal>("GuildId") - .HasColumnType("numeric(20,0)") - .HasColumnName("guildid"); - - b.Property<bool>("IsEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(false) - .HasColumnName("isenabled"); - - b.Property<string>("MessageText") - .HasColumnType("text") - .HasColumnName("messagetext"); - - b.HasKey("Id") - .HasName("pk_greetsettings"); - - b.HasIndex("GuildId", "GreetType") - .IsUnique() - .HasDatabaseName("ix_greetsettings_guildid_greettype"); - - b.ToTable("greetsettings", (string)null); - }); - - modelBuilder.Entity("EllieBot.Services.Rakeback", b => - { - b.Property<decimal>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<decimal>("Amount") - .HasColumnType("numeric") - .HasColumnName("amount"); - - b.HasKey("UserId") - .HasName("pk_rakeback"); - - b.ToTable("rakeback", (string)null); - }); - - modelBuilder.Entity("EllieBot.Services.UserBetStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - - b.Property<int>("Game") - .HasColumnType("integer") - .HasColumnName("game"); - - b.Property<long>("LoseCount") - .HasColumnType("bigint") - .HasColumnName("losecount"); - - b.Property<long>("MaxBet") - .HasColumnType("bigint") - .HasColumnName("maxbet"); - - b.Property<long>("MaxWin") - .HasColumnType("bigint") - .HasColumnName("maxwin"); - - b.Property<decimal>("PaidOut") - .HasColumnType("numeric") - .HasColumnName("paidout"); - - b.Property<decimal>("TotalBet") - .HasColumnType("numeric") - .HasColumnName("totalbet"); - - b.Property<decimal>("UserId") - .HasColumnType("numeric(20,0)") - .HasColumnName("userid"); - - b.Property<long>("WinCount") - .HasColumnType("bigint") - .HasColumnName("wincount"); - - b.HasKey("Id") - .HasName("pk_userbetstats"); - - b.HasIndex("MaxWin") - .HasDatabaseName("ix_userbetstats_maxwin"); - - b.HasIndex("UserId", "Game") - .IsUnique() - .HasDatabaseName("ix_userbetstats_userid_game"); - - b.ToTable("userbetstats", (string)null); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) - .WithMany("IgnoredChannels") - .HasForeignKey("AntiSpamSettingId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") - .WithMany("Users") - .HasForeignKey("ChannelId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid"); - - b.Navigation("Channel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Applicants") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubapplicants_clubs_clubid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubapplicants_discorduser_userid"); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Bans") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubbans_clubs_clubid"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_clubbans_discorduser_userid"); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") - .OnDelete(DeleteBehavior.SetNull) - .HasConstraintName("fk_clubs_discorduser_ownerid"); - - b.Navigation("Owner"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Members") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.NoAction) - .HasConstraintName("fk_discorduser_clubs_clubid"); - - b.Navigation("Club"); - }); + b.ToTable("feedsub", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterInvitesChannelIds") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.HasKey("Id") + .HasName("pk_filterchannelid"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filterchannelid_guildfilterconfigid"); + + b.ToTable("filterchannelid", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterLinksChannelIds") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.HasKey("Id") + .HasName("pk_filterlinkschannelid"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid"); + + b.ToTable("filterlinkschannelid", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterWordsChannelIds") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); + + b.HasKey("Id") + .HasName("pk_filterwordschannelid"); + + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid"); + + b.ToTable("filterwordschannelid", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilteredWords") - .HasForeignKey("GuildFilterConfigId") - .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.HasOne("EllieBot.Db.Models.GiveawayModel", null) - .WithMany("Participants") - .HasForeignKey("GiveawayId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid"); - }); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") - .WithMany("LogIgnores") - .HasForeignKey("LogSettingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - b.Navigation("LogSetting"); - }); + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("integer") + .HasColumnName("guildfilterconfigid"); - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.HasOne("EllieBot.Db.Models.GuildConfig", null) - .WithMany("Permissions") - .HasForeignKey("GuildConfigId") - .HasConstraintName("fk_permissions_guildconfigs_guildconfigid"); - }); + b.Property<string>("Word") + .HasColumnType("text") + .HasColumnName("word"); - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) - .WithMany("Songs") - .HasForeignKey("MusicPlaylistId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid"); - }); + b.HasKey("Id") + .HasName("pk_filteredword"); - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.HasOne("EllieBot.Db.Models.SarGroup", null) - .WithMany("Roles") - .HasForeignKey("SarGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_sar_sargroup_sargroupid"); - }); + b.HasIndex("GuildFilterConfigId") + .HasDatabaseName("ix_filteredword_guildfilterconfigid"); - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.HasOne("EllieBot.Db.Models.ShopEntry", null) - .WithMany("Items") - .HasForeignKey("ShopEntryId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_shopentryitem_shopentry_shopentryid"); - }); + b.ToTable("filteredword", (string)null); + }); - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Blacklist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~"); + modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - b.Navigation("StreamRoleSettings"); - }); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Whitelist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~"); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - b.Navigation("StreamRoleSettings"); - }); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) - .WithMany("Items") - .HasForeignKey("ArchiveId") - .OnDelete(DeleteBehavior.Cascade) - .HasConstraintName("fk_todos_todosarchive_archiveid"); - }); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") - .WithMany() - .HasForeignKey("AffinityId") - .HasConstraintName("fk_waifuinfo_discorduser_affinityid"); + b.HasKey("Id") + .HasName("pk_flagtranslatechannel"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") - .WithMany() - .HasForeignKey("ClaimerId") - .HasConstraintName("fk_waifuinfo_discorduser_claimerid"); + b.HasIndex("GuildId", "ChannelId") + .IsUnique() + .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_waifuinfo_discorduser_waifuid"); + b.ToTable("flagtranslatechannel", (string)null); + }); - b.Navigation("Affinity"); + modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - b.Navigation("Claimer"); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Navigation("Waifu"); - }); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") - .WithMany("Items") - .HasForeignKey("WaifuInfoId") - .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid"); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - b.Navigation("WaifuInfo"); - }); + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "New") - .WithMany() - .HasForeignKey("NewId") - .HasConstraintName("fk_waifuupdates_discorduser_newid"); + b.Property<string>("PrettyName") + .HasColumnType("text") + .HasColumnName("prettyname"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") - .WithMany() - .HasForeignKey("OldId") - .HasConstraintName("fk_waifuupdates_discorduser_oldid"); + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_waifuupdates_discorduser_userid"); + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); - b.Navigation("New"); + b.HasKey("Id") + .HasName("pk_followedstream"); - b.Navigation("Old"); + b.HasIndex("GuildId", "Username", "Type") + .HasDatabaseName("ix_followedstream_guildid_username_type"); - b.Navigation("User"); - }); + b.ToTable("followedstream", (string)null); + }); - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("CurrencyRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid"); - }); + modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("RoleRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid"); - }); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Navigation("IgnoredChannels"); - }); + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); - modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Navigation("Items"); - }); + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Navigation("Users"); - }); + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Navigation("Applicants"); + b.HasKey("Id") + .HasName("pk_gcchannelid"); - b.Navigation("Bans"); + b.HasIndex("GuildId", "ChannelId") + .IsUnique() + .HasDatabaseName("ix_gcchannelid_guildid_channelid"); - b.Navigation("Members"); - }); + b.ToTable("gcchannelid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("Bet") + .HasColumnType("numeric") + .HasColumnName("bet"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Feature") + .HasColumnType("text") + .HasColumnName("feature"); + + b.Property<decimal>("PaidOut") + .HasColumnType("numeric") + .HasColumnName("paidout"); + + b.HasKey("Id") + .HasName("pk_gamblingstats"); + + b.HasIndex("Feature") + .IsUnique() + .HasDatabaseName("ix_gamblingstats_feature"); + + b.ToTable("gamblingstats", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Navigation("Participants"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime>("EndsAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("endsat"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.HasKey("Id") + .HasName("pk_giveawaymodel"); + + b.ToTable("giveawaymodel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("GiveawayId") + .HasColumnType("integer") + .HasColumnName("giveawayid"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_giveawayuser"); + + b.HasIndex("GiveawayId", "UserId") + .IsUnique() + .HasDatabaseName("ix_giveawayuser_giveawayid_userid"); + + b.ToTable("giveawayuser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("ErrorColor") + .HasMaxLength(9) + .HasColumnType("character varying(9)") + .HasColumnName("errorcolor"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("OkColor") + .HasMaxLength(9) + .HasColumnType("character varying(9)") + .HasColumnName("okcolor"); + + b.Property<string>("PendingColor") + .HasMaxLength(9) + .HasColumnType("character varying(9)") + .HasColumnName("pendingcolor"); + + b.HasKey("Id") + .HasName("pk_guildcolors"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_guildcolors_guildid"); + + b.ToTable("guildcolors", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Navigation("Permissions"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("AutoAssignRoleIds") + .HasColumnType("text") + .HasColumnName("autoassignroleids"); + + b.Property<bool>("CleverbotEnabled") + .HasColumnType("boolean") + .HasColumnName("cleverbotenabled"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("DeleteMessageOnCommand") + .HasColumnType("boolean") + .HasColumnName("deletemessageoncommand"); + + b.Property<bool>("DeleteStreamOnlineMessage") + .HasColumnType("boolean") + .HasColumnName("deletestreamonlinemessage"); + + b.Property<bool>("DisableGlobalExpressions") + .HasColumnType("boolean") + .HasColumnName("disableglobalexpressions"); + + b.Property<decimal?>("GameVoiceChannel") + .HasColumnType("numeric(20,0)") + .HasColumnName("gamevoicechannel"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Locale") + .HasColumnType("text") + .HasColumnName("locale"); + + b.Property<string>("MuteRoleName") + .HasColumnType("text") + .HasColumnName("muterolename"); + + b.Property<bool>("NotifyStreamOffline") + .HasColumnType("boolean") + .HasColumnName("notifystreamoffline"); + + b.Property<string>("PermissionRole") + .HasColumnType("text") + .HasColumnName("permissionrole"); + + b.Property<string>("Prefix") + .HasColumnType("text") + .HasColumnName("prefix"); + + b.Property<bool>("StickyRoles") + .HasColumnType("boolean") + .HasColumnName("stickyroles"); + + b.Property<string>("TimeZoneId") + .HasColumnType("text") + .HasColumnName("timezoneid"); + + b.Property<bool>("VerboseErrors") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(true) + .HasColumnName("verboseerrors"); + + b.Property<bool>("VerbosePermissions") + .HasColumnType("boolean") + .HasColumnName("verbosepermissions"); + + b.Property<int>("WarnExpireAction") + .HasColumnType("integer") + .HasColumnName("warnexpireaction"); + + b.Property<int>("WarnExpireHours") + .HasColumnType("integer") + .HasColumnName("warnexpirehours"); + + b.Property<bool>("WarningsInitialized") + .HasColumnType("boolean") + .HasColumnName("warningsinitialized"); + + b.HasKey("Id") + .HasName("pk_guildconfigs"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_guildconfigs_guildid"); + + b.HasIndex("WarnExpireHours") + .HasDatabaseName("ix_guildconfigs_warnexpirehours"); + + b.ToTable("guildconfigs", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Navigation("FilterInvitesChannelIds"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - b.Navigation("FilterLinksChannelIds"); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); - b.Navigation("FilterWordsChannelIds"); + b.Property<bool>("FilterInvites") + .HasColumnType("boolean") + .HasColumnName("filterinvites"); - b.Navigation("FilteredWords"); - }); + b.Property<bool>("FilterLinks") + .HasColumnType("boolean") + .HasColumnName("filterlinks"); + + b.Property<bool>("FilterWords") + .HasColumnType("boolean") + .HasColumnName("filterwords"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_guildfilterconfig"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_guildfilterconfig_guildid"); + + b.ToTable("guildfilterconfig", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => + { + b.Property<decimal>("GuildId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.HasKey("GuildId") + .HasName("pk_honeypotchannels"); + + b.ToTable("honeypotchannels", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("ItemType") + .HasColumnType("integer") + .HasColumnName("itemtype"); + + b.Property<decimal>("LogItemId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logitemid"); + + b.Property<int>("LogSettingId") + .HasColumnType("integer") + .HasColumnName("logsettingid"); + + b.HasKey("Id") + .HasName("pk_ignoredlogchannels"); + + b.HasIndex("LogSettingId", "LogItemId", "ItemType") + .IsUnique() + .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype"); + + b.ToTable("ignoredlogchannels", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_imageonlychannels"); + + b.HasIndex("ChannelId") + .IsUnique() + .HasDatabaseName("ix_imageonlychannels_channelid"); + + b.ToTable("imageonlychannels", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Navigation("LogIgnores"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal?>("ChannelCreatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelcreatedid"); + + b.Property<decimal?>("ChannelDestroyedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channeldestroyedid"); + + b.Property<decimal?>("ChannelUpdatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelupdatedid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal?>("LogOtherId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logotherid"); + + b.Property<decimal?>("LogUserPresenceId") + .HasColumnType("numeric(20,0)") + .HasColumnName("loguserpresenceid"); + + b.Property<decimal?>("LogVoicePresenceId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logvoicepresenceid"); + + b.Property<decimal?>("LogVoicePresenceTTSId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logvoicepresencettsid"); + + b.Property<decimal?>("LogWarnsId") + .HasColumnType("numeric(20,0)") + .HasColumnName("logwarnsid"); + + b.Property<decimal?>("MessageDeletedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messagedeletedid"); + + b.Property<decimal?>("MessageUpdatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageupdatedid"); + + b.Property<decimal?>("ThreadCreatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("threadcreatedid"); + + b.Property<decimal?>("ThreadDeletedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("threaddeletedid"); + + b.Property<decimal?>("UserBannedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userbannedid"); + + b.Property<decimal?>("UserJoinedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userjoinedid"); + + b.Property<decimal?>("UserLeftId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userleftid"); + + b.Property<decimal?>("UserMutedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("usermutedid"); + + b.Property<decimal?>("UserUnbannedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userunbannedid"); + + b.Property<decimal?>("UserUpdatedId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userupdatedid"); + + b.HasKey("Id") + .HasName("pk_logsettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_logsettings_guildid"); + + b.ToTable("logsettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<bool>("AutoDisconnect") + .HasColumnType("boolean") + .HasColumnName("autodisconnect"); + + b.Property<bool>("AutoPlay") + .HasColumnType("boolean") + .HasColumnName("autoplay"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal?>("MusicChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("musicchannelid"); + + b.Property<int>("PlayerRepeat") + .HasColumnType("integer") + .HasColumnName("playerrepeat"); + + b.Property<int>("QualityPreset") + .HasColumnType("integer") + .HasColumnName("qualitypreset"); + + b.Property<int>("Volume") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(100) + .HasColumnName("volume"); + + b.HasKey("Id") + .HasName("pk_musicplayersettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_musicplayersettings_guildid"); + + b.ToTable("musicplayersettings", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Navigation("Songs"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<string>("Author") + .HasColumnType("text") + .HasColumnName("author"); + + b.Property<decimal>("AuthorId") + .HasColumnType("numeric(20,0)") + .HasColumnName("authorid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("pk_musicplaylists"); + + b.ToTable("musicplaylists", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_muteduserid"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_muteduserid_guildid_userid"); + + b.ToTable("muteduserid", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("Color") + .HasColumnType("bigint") + .HasColumnName("color"); + + b.Property<decimal>("OwnerId") + .HasColumnType("numeric(20,0)") + .HasColumnName("ownerid"); + + b.Property<int>("Position") + .HasColumnType("integer") + .HasColumnName("position"); + + b.Property<long>("Price") + .HasColumnType("bigint") + .HasColumnName("price"); + + b.Property<string>("Text") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_ncpixel"); + + b.HasAlternateKey("Position") + .HasName("ak_ncpixel_position"); + + b.HasIndex("OwnerId") + .HasDatabaseName("ix_ncpixel_ownerid"); + + b.ToTable("ncpixel", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Notify", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal?>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Message") + .IsRequired() + .HasMaxLength(10000) + .HasColumnType("character varying(10000)") + .HasColumnName("message"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_notify"); + + b.HasAlternateKey("GuildId", "Type") + .HasName("ak_notify_guildid_type"); + + b.ToTable("notify", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => + { + b.Property<decimal>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<int>("AmountCents") + .HasColumnType("integer") + .HasColumnName("amountcents"); + + b.Property<DateTime>("LastCharge") + .HasColumnType("timestamp without time zone") + .HasColumnName("lastcharge"); + + b.Property<string>("UniquePlatformUserId") + .HasColumnType("text") + .HasColumnName("uniqueplatformuserid"); + + b.Property<DateTime>("ValidThru") + .HasColumnType("timestamp without time zone") + .HasColumnName("validthru"); + + b.HasKey("UserId") + .HasName("pk_patrons"); + + b.HasIndex("UniquePlatformUserId") + .IsUnique() + .HasDatabaseName("ix_patrons_uniqueplatformuserid"); + + b.ToTable("patrons", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("GuildConfigId") + .HasColumnType("integer") + .HasColumnName("guildconfigid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Index") + .HasColumnType("integer") + .HasColumnName("index"); + + b.Property<bool>("IsCustomCommand") + .HasColumnType("boolean") + .HasColumnName("iscustomcommand"); + + b.Property<int>("PrimaryTarget") + .HasColumnType("integer") + .HasColumnName("primarytarget"); + + b.Property<decimal>("PrimaryTargetId") + .HasColumnType("numeric(20,0)") + .HasColumnName("primarytargetid"); + + b.Property<int>("SecondaryTarget") + .HasColumnType("integer") + .HasColumnName("secondarytarget"); + + b.Property<string>("SecondaryTargetName") + .HasColumnType("text") + .HasColumnName("secondarytargetname"); + + b.Property<bool>("State") + .HasColumnType("boolean") + .HasColumnName("state"); + + b.HasKey("Id") + .HasName("pk_permissions"); + + b.HasIndex("GuildConfigId") + .HasDatabaseName("ix_permissions_guildconfigid"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_permissions_guildid"); + + b.ToTable("permissions", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("Amount") + .HasColumnType("bigint") + .HasColumnName("amount"); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<string>("Password") + .HasColumnType("text") + .HasColumnName("password"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_plantedcurrency"); + + b.HasIndex("ChannelId") + .HasDatabaseName("ix_plantedcurrency_channelid"); + + b.HasIndex("MessageId") + .IsUnique() + .HasDatabaseName("ix_plantedcurrency_messageid"); + + b.ToTable("plantedcurrency", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("MusicPlaylistId") + .HasColumnType("integer") + .HasColumnName("musicplaylistid"); + + b.Property<string>("Provider") + .HasColumnType("text") + .HasColumnName("provider"); + + b.Property<int>("ProviderType") + .HasColumnType("integer") + .HasColumnName("providertype"); + + b.Property<string>("Query") + .HasColumnType("text") + .HasColumnName("query"); + + b.Property<string>("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.Property<string>("Uri") + .HasColumnType("text") + .HasColumnName("uri"); + + b.HasKey("Id") + .HasName("pk_playlistsong"); + + b.HasIndex("MusicPlaylistId") + .HasDatabaseName("ix_playlistsong_musicplaylistid"); + + b.ToTable("playlistsong", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Quote", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("AuthorId") + .HasColumnType("numeric(20,0)") + .HasColumnName("authorid"); + + b.Property<string>("AuthorName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("authorname"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Keyword") + .IsRequired() + .HasColumnType("text") + .HasColumnName("keyword"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("text") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_quotes"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_quotes_guildid"); + + b.HasIndex("Keyword") + .HasDatabaseName("ix_quotes_keyword"); + + b.ToTable("quotes", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Emote") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("emote"); + + b.Property<int>("Group") + .HasColumnType("integer") + .HasColumnName("group"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("LevelReq") + .HasColumnType("integer") + .HasColumnName("levelreq"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_reactionroles"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_reactionroles_guildid"); + + b.HasIndex("MessageId", "Emote") + .IsUnique() + .HasDatabaseName("ix_reactionroles_messageid_emote"); + + b.ToTable("reactionroles", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsPrivate") + .HasColumnType("boolean") + .HasColumnName("isprivate"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<decimal>("ServerId") + .HasColumnType("numeric(20,0)") + .HasColumnName("serverid"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<DateTime>("When") + .HasColumnType("timestamp without time zone") + .HasColumnName("when"); + + b.HasKey("Id") + .HasName("pk_reminders"); + + b.HasIndex("When") + .HasDatabaseName("ix_reminders_when"); + + b.ToTable("reminders", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<TimeSpan>("Interval") + .HasColumnType("interval") + .HasColumnName("interval"); + + b.Property<decimal?>("LastMessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("lastmessageid"); + + b.Property<string>("Message") + .HasColumnType("text") + .HasColumnName("message"); + + b.Property<bool>("NoRedundant") + .HasColumnType("boolean") + .HasColumnName("noredundant"); + + b.Property<TimeSpan?>("StartTimeOfDay") + .HasColumnType("interval") + .HasColumnName("starttimeofday"); + + b.HasKey("Id") + .HasName("pk_repeaters"); + + b.ToTable("repeaters", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<long>("AmountRewardedThisMonth") + .HasColumnType("bigint") + .HasColumnName("amountrewardedthismonth"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<DateTime>("LastReward") + .HasColumnType("timestamp without time zone") + .HasColumnName("lastreward"); + + b.Property<string>("PlatformUserId") + .HasColumnType("text") + .HasColumnName("platformuserid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_rewardedusers"); + + b.HasIndex("PlatformUserId") + .IsUnique() + .HasDatabaseName("ix_rewardedusers_platformuserid"); + + b.ToTable("rewardedusers", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("Status") + .HasColumnType("text") + .HasColumnName("status"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_rotatingstatus"); + + b.ToTable("rotatingstatus", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("LevelReq") + .HasColumnType("integer") + .HasColumnName("levelreq"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<int>("SarGroupId") + .HasColumnType("integer") + .HasColumnName("sargroupid"); + + b.HasKey("Id") + .HasName("pk_sar"); + + b.HasAlternateKey("GuildId", "RoleId") + .HasName("ak_sar_guildid_roleid"); + + b.HasIndex("SarGroupId") + .HasDatabaseName("ix_sar_sargroupid"); + + b.ToTable("sar", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("IsEnabled") + .HasColumnType("boolean") + .HasColumnName("isenabled"); + + b.HasKey("Id") + .HasName("pk_sarautodelete"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_sarautodelete_guildid"); + + b.ToTable("sarautodelete", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Navigation("Roles"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("GroupNumber") + .HasColumnType("integer") + .HasColumnName("groupnumber"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("IsExclusive") + .HasColumnType("boolean") + .HasColumnName("isexclusive"); + + b.Property<string>("Name") + .HasMaxLength(100) + .HasColumnType("character varying(100)") + .HasColumnName("name"); + + b.Property<decimal?>("RoleReq") + .HasColumnType("numeric(20,0)") + .HasColumnName("rolereq"); + + b.HasKey("Id") + .HasName("pk_sargroup"); + + b.HasAlternateKey("GuildId", "GroupNumber") + .HasName("ak_sargroup_guildid_groupnumber"); + + b.ToTable("sargroup", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Navigation("Items"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("AuthorId") + .HasColumnType("numeric(20,0)") + .HasColumnName("authorid"); + + b.Property<string>("Command") + .HasColumnType("text") + .HasColumnName("command"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Index") + .HasColumnType("integer") + .HasColumnName("index"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<int>("Price") + .HasColumnType("integer") + .HasColumnName("price"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<string>("RoleName") + .HasColumnType("text") + .HasColumnName("rolename"); + + b.Property<decimal?>("RoleRequirement") + .HasColumnType("numeric(20,0)") + .HasColumnName("rolerequirement"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_shopentry"); + + b.HasIndex("GuildId", "Index") + .IsUnique() + .HasDatabaseName("ix_shopentry_guildid_index"); + + b.ToTable("shopentry", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("ShopEntryId") + .HasColumnType("integer") + .HasColumnName("shopentryid"); + + b.Property<string>("Text") + .HasColumnType("text") + .HasColumnName("text"); + + b.HasKey("Id") + .HasName("pk_shopentryitem"); + + b.HasIndex("ShopEntryId") + .HasDatabaseName("ix_shopentryitem_shopentryid"); + + b.ToTable("shopentryitem", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("Id") + .HasName("pk_slowmodeignoredrole"); + + b.HasIndex("GuildId", "RoleId") + .IsUnique() + .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid"); + + b.ToTable("slowmodeignoredrole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_slowmodeignoreduser"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid"); + + b.ToTable("slowmodeignoreduser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("RoleIds") + .HasColumnType("text") + .HasColumnName("roleids"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_stickyroles"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_stickyroles_guildid_userid"); + + b.ToTable("stickyroles", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<int>("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("Id") + .HasName("pk_streamonlinemessages"); + + b.ToTable("streamonlinemessages", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("integer") + .HasColumnName("streamrolesettingsid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_streamroleblacklisteduser"); + + b.HasIndex("StreamRoleSettingsId") + .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid"); + + b.ToTable("streamroleblacklisteduser", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Navigation("Blacklist"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - b.Navigation("Whitelist"); - }); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("AddRoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("addroleid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("Enabled") + .HasColumnType("boolean") + .HasColumnName("enabled"); + + b.Property<decimal>("FromRoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("fromroleid"); + + b.Property<int>("GuildConfigId") + .HasColumnType("integer") + .HasColumnName("guildconfigid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Keyword") + .HasColumnType("text") + .HasColumnName("keyword"); + + b.HasKey("Id") + .HasName("pk_streamrolesettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_streamrolesettings_guildid"); + + b.ToTable("streamrolesettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("integer") + .HasColumnName("streamrolesettingsid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_streamrolewhitelisteduser"); + + b.HasIndex("StreamRoleSettingsId") + .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid"); + + b.ToTable("streamrolewhitelisteduser", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime>("ExpiresAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("expiresat"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("Remove") + .HasColumnType("boolean") + .HasColumnName("remove"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_temprole"); + + b.HasAlternateKey("GuildId", "UserId", "RoleId") + .HasName("ak_temprole_guildid_userid_roleid"); + + b.HasIndex("ExpiresAt") + .HasDatabaseName("ix_temprole_expiresat"); + + b.ToTable("temprole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("ArchiveId") + .HasColumnType("integer") + .HasColumnName("archiveid"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsDone") + .HasColumnType("boolean") + .HasColumnName("isdone"); + + b.Property<string>("Todo") + .HasColumnType("text") + .HasColumnName("todo"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_todos"); + + b.HasIndex("ArchiveId") + .HasDatabaseName("ix_todos_archiveid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_todos_userid"); + + b.ToTable("todos", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("unbanat"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_unbantimer"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_unbantimer_guildid_userid"); + + b.ToTable("unbantimer", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<DateTime>("UnmuteAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("unmuteat"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_unmutetimer"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_unmutetimer_guildid_userid"); + + b.ToTable("unmutetimer", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("timestamp without time zone") + .HasColumnName("unbanat"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_unroletimer"); + + b.HasIndex("GuildId", "UserId") + .IsUnique() + .HasDatabaseName("ix_unroletimer_guildid_userid"); + + b.ToTable("unroletimer", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<long>("Xp") + .HasColumnType("bigint") + .HasColumnName("xp"); + + b.HasKey("Id") + .HasName("pk_userxpstats"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_userxpstats_guildid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_userxpstats_userid"); + + b.HasIndex("Xp") + .HasDatabaseName("ix_userxpstats_xp"); + + b.HasIndex("UserId", "GuildId") + .IsUnique() + .HasDatabaseName("ix_userxpstats_userid_guildid"); + + b.ToTable("userxpstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<decimal>("VoiceChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("voicechannelid"); + + b.HasKey("Id") + .HasName("pk_vcroleinfo"); + + b.HasIndex("GuildId", "VoiceChannelId") + .IsUnique() + .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid"); + + b.ToTable("vcroleinfo", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Navigation("Items"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("AffinityId") + .HasColumnType("integer") + .HasColumnName("affinityid"); + + b.Property<int?>("ClaimerId") + .HasColumnType("integer") + .HasColumnName("claimerid"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<long>("Price") + .HasColumnType("bigint") + .HasColumnName("price"); + + b.Property<int>("WaifuId") + .HasColumnType("integer") + .HasColumnName("waifuid"); + + b.HasKey("Id") + .HasName("pk_waifuinfo"); + + b.HasIndex("AffinityId") + .HasDatabaseName("ix_waifuinfo_affinityid"); + + b.HasIndex("ClaimerId") + .HasDatabaseName("ix_waifuinfo_claimerid"); + + b.HasIndex("Price") + .HasDatabaseName("ix_waifuinfo_price"); + + b.HasIndex("WaifuId") + .IsUnique() + .HasDatabaseName("ix_waifuinfo_waifuid"); + + b.ToTable("waifuinfo", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<string>("ItemEmoji") + .HasColumnType("text") + .HasColumnName("itememoji"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<int?>("WaifuInfoId") + .HasColumnType("integer") + .HasColumnName("waifuinfoid"); + + b.HasKey("Id") + .HasName("pk_waifuitem"); + + b.HasIndex("WaifuInfoId") + .HasDatabaseName("ix_waifuitem_waifuinfoid"); + + b.ToTable("waifuitem", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int?>("NewId") + .HasColumnType("integer") + .HasColumnName("newid"); + + b.Property<int?>("OldId") + .HasColumnType("integer") + .HasColumnName("oldid"); + + b.Property<int>("UpdateType") + .HasColumnType("integer") + .HasColumnName("updatetype"); + + b.Property<int>("UserId") + .HasColumnType("integer") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_waifuupdates"); + + b.HasIndex("NewId") + .HasDatabaseName("ix_waifuupdates_newid"); + + b.HasIndex("OldId") + .HasDatabaseName("ix_waifuupdates_oldid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_waifuupdates_userid"); + + b.ToTable("waifuupdates", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Warning", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("Forgiven") + .HasColumnType("boolean") + .HasColumnName("forgiven"); + + b.Property<string>("ForgivenBy") + .HasColumnType("text") + .HasColumnName("forgivenby"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<string>("Moderator") + .HasColumnType("text") + .HasColumnName("moderator"); + + b.Property<string>("Reason") + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<long>("Weight") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasDefaultValue(1L) + .HasColumnName("weight"); + + b.HasKey("Id") + .HasName("pk_warnings"); + + b.HasIndex("DateAdded") + .HasDatabaseName("ix_warnings_dateadded"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_warnings_guildid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_warnings_userid"); + + b.ToTable("warnings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Count") + .HasColumnType("integer") + .HasColumnName("count"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("Punishment") + .HasColumnType("integer") + .HasColumnName("punishment"); + + b.Property<decimal?>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<int>("Time") + .HasColumnType("integer") + .HasColumnName("time"); + + b.HasKey("Id") + .HasName("pk_warningpunishment"); + + b.HasAlternateKey("GuildId", "Count") + .HasName("ak_warningpunishment_guildid_count"); + + b.ToTable("warningpunishment", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Amount") + .HasColumnType("integer") + .HasColumnName("amount"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property<int>("XpSettingsId") + .HasColumnType("integer") + .HasColumnName("xpsettingsid"); + + b.HasKey("Id") + .HasName("pk_xpcurrencyreward"); + + b.HasIndex("XpSettingsId") + .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid"); + + b.HasIndex("Level", "XpSettingsId") + .IsUnique() + .HasDatabaseName("ix_xpcurrencyreward_level_xpsettingsid"); + + b.ToTable("xpcurrencyreward", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<int>("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property<bool>("Remove") + .HasColumnType("boolean") + .HasColumnName("remove"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.Property<int>("XpSettingsId") + .HasColumnType("integer") + .HasColumnName("xpsettingsid"); + + b.HasKey("Id") + .HasName("pk_xprolereward"); + + b.HasIndex("XpSettingsId", "Level") + .IsUnique() + .HasDatabaseName("ix_xprolereward_xpsettingsid_level"); + + b.ToTable("xprolereward", (string)null); + }); modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Navigation("CurrencyRewards"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); - b.Navigation("RoleRewards"); - }); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.HasKey("Id") + .HasName("pk_xpsettings"); + + b.HasIndex("GuildId") + .IsUnique() + .HasDatabaseName("ix_xpsettings_guildid"); + + b.ToTable("xpsettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("timestamp without time zone") + .HasColumnName("dateadded"); + + b.Property<bool>("IsUsing") + .HasColumnType("boolean") + .HasColumnName("isusing"); + + b.Property<string>("ItemKey") + .IsRequired() + .HasColumnType("text") + .HasColumnName("itemkey"); + + b.Property<int>("ItemType") + .HasColumnType("integer") + .HasColumnName("itemtype"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_xpshopowneditem"); + + b.HasIndex("UserId", "ItemType", "ItemKey") + .IsUnique() + .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey"); + + b.ToTable("xpshopowneditem", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Count") + .HasColumnType("integer") + .HasColumnName("count"); + + b.Property<int>("FishId") + .HasColumnType("integer") + .HasColumnName("fishid"); + + b.Property<int>("MaxStars") + .HasColumnType("integer") + .HasColumnName("maxstars"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_fishcatch"); + + b.HasAlternateKey("UserId", "FishId") + .HasName("ak_fishcatch_userid_fishid"); + + b.ToTable("fishcatch", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int?>("Bait") + .HasColumnType("integer") + .HasColumnName("bait"); + + b.Property<int?>("Pole") + .HasColumnType("integer") + .HasColumnName("pole"); + + b.Property<int>("Skill") + .HasColumnType("integer") + .HasColumnName("skill"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.HasKey("Id") + .HasName("pk_userfishstats"); + + b.HasIndex("UserId") + .IsUnique() + .HasDatabaseName("ix_userfishstats_userid"); + + b.ToTable("userfishstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("MessageId") + .HasColumnType("numeric(20,0)") + .HasColumnName("messageid"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("text") + .HasColumnName("text"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<DateTime>("When") + .HasColumnType("timestamp without time zone") + .HasColumnName("when"); + + b.HasKey("Id") + .HasName("pk_scheduledcommand"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_scheduledcommand_guildid"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_scheduledcommand_userid"); + + b.HasIndex("When") + .HasDatabaseName("ix_scheduledcommand_when"); + + b.ToTable("scheduledcommand", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => + { + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<decimal>("RoleId") + .HasColumnType("numeric(20,0)") + .HasColumnName("roleid"); + + b.HasKey("GuildId", "UserId", "RoleId") + .HasName("pk_userrole"); + + b.HasIndex("GuildId") + .HasDatabaseName("ix_userrole_guildid"); + + b.HasIndex("GuildId", "UserId") + .HasDatabaseName("ix_userrole_guildid_userid"); + + b.ToTable("userrole", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<decimal>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<float>("Cooldown") + .HasColumnType("real") + .HasColumnName("cooldown"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("RateType") + .HasColumnType("integer") + .HasColumnName("ratetype"); + + b.Property<long>("XpAmount") + .HasColumnType("bigint") + .HasColumnName("xpamount"); + + b.HasKey("Id") + .HasName("pk_channelxpconfig"); + + b.HasAlternateKey("GuildId", "ChannelId", "RateType") + .HasName("ak_channelxpconfig_guildid_channelid_ratetype"); + + b.ToTable("channelxpconfig", (string)null); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<float>("Cooldown") + .HasColumnType("real") + .HasColumnName("cooldown"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<int>("RateType") + .HasColumnType("integer") + .HasColumnName("ratetype"); + + b.Property<long>("XpAmount") + .HasColumnType("bigint") + .HasColumnName("xpamount"); + + b.Property<string>("XpTemplateUrl") + .HasColumnType("text") + .HasColumnName("xptemplateurl"); + + b.HasKey("Id") + .HasName("pk_guildxpconfig"); + + b.HasAlternateKey("GuildId", "RateType") + .HasName("ak_guildxpconfig_guildid_ratetype"); + + b.ToTable("guildxpconfig", (string)null); + }); + + modelBuilder.Entity("EllieBot.Services.GreetSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("AutoDeleteTimer") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("autodeletetimer"); + + b.Property<decimal?>("ChannelId") + .HasColumnType("numeric(20,0)") + .HasColumnName("channelid"); + + b.Property<int>("GreetType") + .HasColumnType("integer") + .HasColumnName("greettype"); + + b.Property<decimal>("GuildId") + .HasColumnType("numeric(20,0)") + .HasColumnName("guildid"); + + b.Property<bool>("IsEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("isenabled"); + + b.Property<string>("MessageText") + .HasColumnType("text") + .HasColumnName("messagetext"); + + b.HasKey("Id") + .HasName("pk_greetsettings"); + + b.HasIndex("GuildId", "GreetType") + .IsUnique() + .HasDatabaseName("ix_greetsettings_guildid_greettype"); + + b.ToTable("greetsettings", (string)null); + }); + + modelBuilder.Entity("EllieBot.Services.Rakeback", b => + { + b.Property<decimal>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<decimal>("Amount") + .HasColumnType("numeric") + .HasColumnName("amount"); + + b.HasKey("UserId") + .HasName("pk_rakeback"); + + b.ToTable("rakeback", (string)null); + }); + + modelBuilder.Entity("EllieBot.Services.UserBetStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); + + b.Property<int>("Game") + .HasColumnType("integer") + .HasColumnName("game"); + + b.Property<long>("LoseCount") + .HasColumnType("bigint") + .HasColumnName("losecount"); + + b.Property<long>("MaxBet") + .HasColumnType("bigint") + .HasColumnName("maxbet"); + + b.Property<long>("MaxWin") + .HasColumnType("bigint") + .HasColumnName("maxwin"); + + b.Property<decimal>("PaidOut") + .HasColumnType("numeric") + .HasColumnName("paidout"); + + b.Property<decimal>("TotalBet") + .HasColumnType("numeric") + .HasColumnName("totalbet"); + + b.Property<decimal>("UserId") + .HasColumnType("numeric(20,0)") + .HasColumnName("userid"); + + b.Property<long>("WinCount") + .HasColumnType("bigint") + .HasColumnName("wincount"); + + b.HasKey("Id") + .HasName("pk_userbetstats"); + + b.HasIndex("MaxWin") + .HasDatabaseName("ix_userbetstats_maxwin"); + + b.HasIndex("UserId", "Game") + .IsUnique() + .HasDatabaseName("ix_userbetstats_userid_game"); + + b.ToTable("userbetstats", (string)null); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => + { + b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) + .WithMany("IgnoredChannels") + .HasForeignKey("AntiSpamSettingId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => + { + b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") + .WithMany("Users") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Applicants") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubapplicants_clubs_clubid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubapplicants_discorduser_userid"); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Bans") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubbans_clubs_clubid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_clubbans_discorduser_userid"); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("fk_clubs_discorduser_ownerid"); + + b.Navigation("Owner"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Members") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.NoAction) + .HasConstraintName("fk_discorduser_clubs_clubid"); + + b.Navigation("Club"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterInvitesChannelIds") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterLinksChannelIds") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterWordsChannelIds") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilteredWords") + .HasForeignKey("GuildFilterConfigId") + .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.HasOne("EllieBot.Db.Models.GiveawayModel", null) + .WithMany("Participants") + .HasForeignKey("GiveawayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") + .WithMany("LogIgnores") + .HasForeignKey("LogSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid"); + + b.Navigation("LogSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.HasOne("EllieBot.Db.Models.GuildConfig", null) + .WithMany("Permissions") + .HasForeignKey("GuildConfigId") + .HasConstraintName("fk_permissions_guildconfigs_guildconfigid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) + .WithMany("Songs") + .HasForeignKey("MusicPlaylistId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.HasOne("EllieBot.Db.Models.SarGroup", null) + .WithMany("Roles") + .HasForeignKey("SarGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_sar_sargroup_sargroupid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.HasOne("EllieBot.Db.Models.ShopEntry", null) + .WithMany("Items") + .HasForeignKey("ShopEntryId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_shopentryitem_shopentry_shopentryid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Blacklist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~"); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Whitelist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~"); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) + .WithMany("Items") + .HasForeignKey("ArchiveId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("fk_todos_todosarchive_archiveid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") + .WithMany() + .HasForeignKey("AffinityId") + .HasConstraintName("fk_waifuinfo_discorduser_affinityid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") + .WithMany() + .HasForeignKey("ClaimerId") + .HasConstraintName("fk_waifuinfo_discorduser_claimerid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_waifuinfo_discorduser_waifuid"); + + b.Navigation("Affinity"); + + b.Navigation("Claimer"); + + b.Navigation("Waifu"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") + .WithMany("Items") + .HasForeignKey("WaifuInfoId") + .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid"); + + b.Navigation("WaifuInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "New") + .WithMany() + .HasForeignKey("NewId") + .HasConstraintName("fk_waifuupdates_discorduser_newid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") + .WithMany() + .HasForeignKey("OldId") + .HasConstraintName("fk_waifuupdates_discorduser_oldid"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_waifuupdates_discorduser_userid"); + + b.Navigation("New"); + + b.Navigation("Old"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("CurrencyRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("RoleRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => + { + b.Navigation("IgnoredChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => + { + b.Navigation("Users"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.Navigation("Applicants"); + + b.Navigation("Bans"); + + b.Navigation("Members"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => + { + b.Navigation("Participants"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => + { + b.Navigation("Permissions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => + { + b.Navigation("FilterInvitesChannelIds"); + + b.Navigation("FilterLinksChannelIds"); + + b.Navigation("FilterWordsChannelIds"); + + b.Navigation("FilteredWords"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => + { + b.Navigation("LogIgnores"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => + { + b.Navigation("Songs"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => + { + b.Navigation("Blacklist"); + + b.Navigation("Whitelist"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => + { + b.Navigation("CurrencyRewards"); + + b.Navigation("RoleRewards"); + }); #pragma warning restore 612, 618 } } -} \ No newline at end of file +} diff --git a/src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs b/src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs deleted file mode 100644 index 47bbdcd..0000000 --- a/src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs +++ /dev/null @@ -1,3073 +0,0 @@ -// <auto-generated /> -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using EllieBot.Db; - -#nullable disable - -namespace EllieBot.Migrations.Sqlite -{ - [DbContext(typeof(SqliteContext))] - [Migration("20250315225536_init")] - partial class init - { - /// <inheritdoc /> - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "9.0.1"); - - modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Action") - .HasColumnType("INTEGER"); - - b.Property<int>("ActionDurationMinutes") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<TimeSpan>("MinAge") - .HasColumnType("TEXT"); - - b.Property<ulong?>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("AntiAltSetting"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Action") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("PunishDuration") - .HasColumnType("INTEGER"); - - b.Property<int>("Seconds") - .HasColumnType("INTEGER"); - - b.Property<int>("UserThreshold") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("AntiRaidSetting"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("AntiSpamSettingId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("AntiSpamSettingId"); - - b.ToTable("AntiSpamIgnore"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Action") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("MessageThreshold") - .HasColumnType("INTEGER"); - - b.Property<int>("MuteTime") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("AntiSpamSetting"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("TodosArchive"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<string>("ChannelName") - .HasColumnType("TEXT"); - - b.Property<string>("CommandText") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong?>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("GuildName") - .HasColumnType("TEXT"); - - b.Property<int>("Interval") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("VoiceChannelId") - .HasColumnType("INTEGER"); - - b.Property<string>("VoiceChannelName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("AutoCommands"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("AutoPublishChannel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<bool>("AutoDelete") - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ChannelId") - .IsUnique(); - - b.HasIndex("GuildId"); - - b.ToTable("AutoTranslateChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Source") - .HasColumnType("TEXT"); - - b.Property<string>("Target") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("ChannelId", "UserId"); - - b.ToTable("AutoTranslateUsers"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int?>("PruneDays") - .HasColumnType("INTEGER"); - - b.Property<string>("Text") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("BanTemplates"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.BankUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<long>("Balance") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("BankUsers"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("ItemId") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("Blacklist"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("ButtonId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("TEXT"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<string>("Emote") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("TEXT"); - - b.Property<bool>("Exclusive") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Label") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("TEXT"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<int>("Position") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("RoleId", "MessageId"); - - b.HasIndex("GuildId"); - - b.ToTable("ButtonRole"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.Property<int>("ClubId") - .HasColumnType("INTEGER"); - - b.Property<int>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("ClubId", "UserId"); - - b.HasIndex("UserId"); - - b.ToTable("ClubApplicants"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.Property<int>("ClubId") - .HasColumnType("INTEGER"); - - b.Property<int>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("ClubId", "UserId"); - - b.HasIndex("UserId"); - - b.ToTable("ClubBans"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("BannerUrl") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Description") - .HasColumnType("TEXT"); - - b.Property<string>("ImageUrl") - .HasColumnType("TEXT"); - - b.Property<string>("Name") - .HasMaxLength(20) - .HasColumnType("TEXT"); - - b.Property<int?>("OwnerId") - .HasColumnType("INTEGER"); - - b.Property<int>("Xp") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .IsUnique(); - - b.HasIndex("OwnerId") - .IsUnique(); - - b.ToTable("Clubs"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Mapping") - .HasColumnType("TEXT"); - - b.Property<string>("Trigger") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.ToTable("CommandAlias"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("CommandName") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Seconds") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "CommandName") - .IsUnique(); - - b.ToTable("CommandCooldown"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<long>("Amount") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Extra") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<string>("Note") - .HasColumnType("TEXT"); - - b.Property<ulong?>("OtherId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValueSql("NULL"); - - b.Property<string>("Type") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("CurrencyTransactions"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("State") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique(); - - b.ToTable("DelMsgOnCmdChannel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("Command") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong?>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("Perm") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Command") - .IsUnique(); - - b.ToTable("DiscordPermOverrides"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("AvatarId") - .HasColumnType("TEXT"); - - b.Property<int?>("ClubId") - .HasColumnType("INTEGER"); - - b.Property<long>("CurrencyAmount") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(0L); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsClubAdmin") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(false); - - b.Property<long>("TotalXp") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(0L); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasAlternateKey("UserId"); - - b.HasIndex("ClubId"); - - b.HasIndex("CurrencyAmount"); - - b.HasIndex("TotalXp"); - - b.HasIndex("UserId"); - - b.HasIndex("Username"); - - b.ToTable("DiscordUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<string>("Url") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Url") - .IsUnique(); - - b.ToTable("FeedSub"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilterChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilterLinksChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilterWordsChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.Property<string>("Word") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilteredWord"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique(); - - b.ToTable("FlagTranslateChannel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<string>("PrettyName") - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Username", "Type"); - - b.ToTable("FollowedStream"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique(); - - b.ToTable("GCChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<decimal>("Bet") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Feature") - .HasColumnType("TEXT"); - - b.Property<decimal>("PaidOut") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Feature") - .IsUnique(); - - b.ToTable("GamblingStats"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("EndsAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("GiveawayModel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("GiveawayId") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GiveawayId", "UserId") - .IsUnique(); - - b.ToTable("GiveawayUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("ErrorColor") - .HasMaxLength(9) - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("OkColor") - .HasMaxLength(9) - .HasColumnType("TEXT"); - - b.Property<string>("PendingColor") - .HasMaxLength(9) - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("GuildColors"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("AutoAssignRoleIds") - .HasColumnType("TEXT"); - - b.Property<bool>("CleverbotEnabled") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("DeleteMessageOnCommand") - .HasColumnType("INTEGER"); - - b.Property<bool>("DeleteStreamOnlineMessage") - .HasColumnType("INTEGER"); - - b.Property<bool>("DisableGlobalExpressions") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("GameVoiceChannel") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Locale") - .HasColumnType("TEXT"); - - b.Property<string>("MuteRoleName") - .HasColumnType("TEXT"); - - b.Property<bool>("NotifyStreamOffline") - .HasColumnType("INTEGER"); - - b.Property<string>("PermissionRole") - .HasColumnType("TEXT"); - - b.Property<string>("Prefix") - .HasColumnType("TEXT"); - - b.Property<bool>("StickyRoles") - .HasColumnType("INTEGER"); - - b.Property<string>("TimeZoneId") - .HasColumnType("TEXT"); - - b.Property<bool>("VerboseErrors") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(true); - - b.Property<bool>("VerbosePermissions") - .HasColumnType("INTEGER"); - - b.Property<int>("WarnExpireAction") - .HasColumnType("INTEGER"); - - b.Property<int>("WarnExpireHours") - .HasColumnType("INTEGER"); - - b.Property<bool>("WarningsInitialized") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.HasIndex("WarnExpireHours"); - - b.ToTable("GuildConfigs"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<bool>("FilterInvites") - .HasColumnType("INTEGER"); - - b.Property<bool>("FilterLinks") - .HasColumnType("INTEGER"); - - b.Property<bool>("FilterWords") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.ToTable("GuildFilterConfig"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => - { - b.Property<ulong>("GuildId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.HasKey("GuildId"); - - b.ToTable("HoneyPotChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("ItemType") - .HasColumnType("INTEGER"); - - b.Property<ulong>("LogItemId") - .HasColumnType("INTEGER"); - - b.Property<int>("LogSettingId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("LogSettingId", "LogItemId", "ItemType") - .IsUnique(); - - b.ToTable("IgnoredLogChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ChannelId") - .IsUnique(); - - b.ToTable("ImageOnlyChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelCreatedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelDestroyedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelUpdatedId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogOtherId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogUserPresenceId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogVoicePresenceId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogVoicePresenceTTSId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogWarnsId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("MessageDeletedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("MessageUpdatedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ThreadCreatedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ThreadDeletedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserBannedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserJoinedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserLeftId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserMutedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserUnbannedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserUpdatedId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("LogSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<bool>("AutoDisconnect") - .HasColumnType("INTEGER"); - - b.Property<bool>("AutoPlay") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("MusicChannelId") - .HasColumnType("INTEGER"); - - b.Property<int>("PlayerRepeat") - .HasColumnType("INTEGER"); - - b.Property<int>("QualityPreset") - .HasColumnType("INTEGER"); - - b.Property<int>("Volume") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(100); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("MusicPlayerSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("Author") - .HasColumnType("TEXT"); - - b.Property<ulong>("AuthorId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("MusicPlaylists"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("MutedUserId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<uint>("Color") - .HasColumnType("INTEGER"); - - b.Property<ulong>("OwnerId") - .HasColumnType("INTEGER"); - - b.Property<int>("Position") - .HasColumnType("INTEGER"); - - b.Property<long>("Price") - .HasColumnType("INTEGER"); - - b.Property<string>("Text") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasAlternateKey("Position"); - - b.HasIndex("OwnerId"); - - b.ToTable("NCPixel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<bool>("AllowTarget") - .HasColumnType("INTEGER"); - - b.Property<bool>("AutoDeleteTrigger") - .HasColumnType("INTEGER"); - - b.Property<bool>("ContainsAnywhere") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("DmResponse") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Reactions") - .HasColumnType("TEXT"); - - b.Property<string>("Response") - .HasColumnType("TEXT"); - - b.Property<string>("Trigger") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Expressions"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Notify", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .IsRequired() - .HasMaxLength(10000) - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "Type"); - - b.ToTable("Notify"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => - { - b.Property<ulong>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("AmountCents") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("LastCharge") - .HasColumnType("TEXT"); - - b.Property<string>("UniquePlatformUserId") - .HasColumnType("TEXT"); - - b.Property<DateTime>("ValidThru") - .HasColumnType("TEXT"); - - b.HasKey("UserId"); - - b.HasIndex("UniquePlatformUserId") - .IsUnique(); - - b.ToTable("Patrons"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildConfigId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Index") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsCustomCommand") - .HasColumnType("INTEGER"); - - b.Property<int>("PrimaryTarget") - .HasColumnType("INTEGER"); - - b.Property<ulong>("PrimaryTargetId") - .HasColumnType("INTEGER"); - - b.Property<int>("SecondaryTarget") - .HasColumnType("INTEGER"); - - b.Property<string>("SecondaryTargetName") - .HasColumnType("TEXT"); - - b.Property<bool>("State") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildConfigId"); - - b.HasIndex("GuildId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<long>("Amount") - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<string>("Password") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ChannelId"); - - b.HasIndex("MessageId") - .IsUnique(); - - b.ToTable("PlantedCurrency"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("MusicPlaylistId") - .HasColumnType("INTEGER"); - - b.Property<string>("Provider") - .HasColumnType("TEXT"); - - b.Property<int>("ProviderType") - .HasColumnType("INTEGER"); - - b.Property<string>("Query") - .HasColumnType("TEXT"); - - b.Property<string>("Title") - .HasColumnType("TEXT"); - - b.Property<string>("Uri") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("MusicPlaylistId"); - - b.ToTable("PlaylistSong"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Quote", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("AuthorId") - .HasColumnType("INTEGER"); - - b.Property<string>("AuthorName") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Keyword") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<string>("Text") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.HasIndex("Keyword"); - - b.ToTable("Quotes"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Emote") - .HasMaxLength(100) - .HasColumnType("TEXT"); - - b.Property<int>("Group") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("LevelReq") - .HasColumnType("INTEGER"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.HasIndex("MessageId", "Emote") - .IsUnique(); - - b.ToTable("ReactionRoles"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsPrivate") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<ulong>("ServerId") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("When") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("When"); - - b.ToTable("Reminders"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<TimeSpan>("Interval") - .HasColumnType("TEXT"); - - b.Property<ulong?>("LastMessageId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<bool>("NoRedundant") - .HasColumnType("INTEGER"); - - b.Property<TimeSpan?>("StartTimeOfDay") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Repeaters"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<long>("AmountRewardedThisMonth") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<DateTime>("LastReward") - .HasColumnType("TEXT"); - - b.Property<string>("PlatformUserId") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("PlatformUserId") - .IsUnique(); - - b.ToTable("RewardedUsers"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Status") - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("RotatingStatus"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("LevelReq") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("SarGroupId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "RoleId"); - - b.HasIndex("SarGroupId"); - - b.ToTable("Sar"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsEnabled") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("SarAutoDelete"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("GroupNumber") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsExclusive") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasMaxLength(100) - .HasColumnType("TEXT"); - - b.Property<ulong?>("RoleReq") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "GroupNumber"); - - b.ToTable("SarGroup"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("AuthorId") - .HasColumnType("INTEGER"); - - b.Property<string>("Command") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Index") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<int>("Price") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<string>("RoleName") - .HasColumnType("TEXT"); - - b.Property<ulong?>("RoleRequirement") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Index") - .IsUnique(); - - b.ToTable("ShopEntry"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("ShopEntryId") - .HasColumnType("INTEGER"); - - b.Property<string>("Text") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("ShopEntryId"); - - b.ToTable("ShopEntryItem"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "RoleId") - .IsUnique(); - - b.ToTable("SlowmodeIgnoredRole"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("SlowmodeIgnoredUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("RoleIds") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("StickyRoles"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("StreamOnlineMessages"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("StreamRoleSettingsId"); - - b.ToTable("StreamRoleBlacklistedUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("AddRoleId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("Enabled") - .HasColumnType("INTEGER"); - - b.Property<ulong>("FromRoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("GuildConfigId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Keyword") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("StreamRoleSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("StreamRoleSettingsId"); - - b.ToTable("StreamRoleWhitelistedUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime>("ExpiresAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("Remove") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "UserId", "RoleId"); - - b.HasIndex("ExpiresAt"); - - b.ToTable("TempRole"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("ArchiveId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsDone") - .HasColumnType("INTEGER"); - - b.Property<string>("Todo") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ArchiveId"); - - b.HasIndex("UserId"); - - b.ToTable("Todos"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("UnbanTimer"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("UnmuteAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("UnmuteTimer"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("UnroleTimer"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<long>("Xp") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.HasIndex("UserId"); - - b.HasIndex("Xp"); - - b.HasIndex("UserId", "GuildId") - .IsUnique(); - - b.ToTable("UserXpStats"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("VoiceChannelId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "VoiceChannelId") - .IsUnique(); - - b.ToTable("VcRoleInfo"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("AffinityId") - .HasColumnType("INTEGER"); - - b.Property<int?>("ClaimerId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<long>("Price") - .HasColumnType("INTEGER"); - - b.Property<int>("WaifuId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("AffinityId"); - - b.HasIndex("ClaimerId"); - - b.HasIndex("Price"); - - b.HasIndex("WaifuId") - .IsUnique(); - - b.ToTable("WaifuInfo"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("ItemEmoji") - .HasColumnType("TEXT"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<int?>("WaifuInfoId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("WaifuInfoId"); - - b.ToTable("WaifuItem"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("NewId") - .HasColumnType("INTEGER"); - - b.Property<int?>("OldId") - .HasColumnType("INTEGER"); - - b.Property<int>("UpdateType") - .HasColumnType("INTEGER"); - - b.Property<int>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("NewId"); - - b.HasIndex("OldId"); - - b.HasIndex("UserId"); - - b.ToTable("WaifuUpdates"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Warning", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("Forgiven") - .HasColumnType("INTEGER"); - - b.Property<string>("ForgivenBy") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Moderator") - .HasColumnType("TEXT"); - - b.Property<string>("Reason") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<long>("Weight") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(1L); - - b.HasKey("Id"); - - b.HasIndex("DateAdded"); - - b.HasIndex("GuildId"); - - b.HasIndex("UserId"); - - b.ToTable("Warnings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Count") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Punishment") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("Time") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "Count"); - - b.ToTable("WarningPunishment"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Amount") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("Level") - .HasColumnType("INTEGER"); - - b.Property<int>("XpSettingsId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("XpSettingsId"); - - b.HasIndex("Level", "XpSettingsId") - .IsUnique(); - - b.ToTable("XpCurrencyReward"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("Level") - .HasColumnType("INTEGER"); - - b.Property<bool>("Remove") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("XpSettingsId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("XpSettingsId", "Level") - .IsUnique(); - - b.ToTable("XpRoleReward"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("XpSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsUsing") - .HasColumnType("INTEGER"); - - b.Property<string>("ItemKey") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<int>("ItemType") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UserId", "ItemType", "ItemKey") - .IsUnique(); - - b.ToTable("XpShopOwnedItem"); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Count") - .HasColumnType("INTEGER"); - - b.Property<int>("FishId") - .HasColumnType("INTEGER"); - - b.Property<int>("MaxStars") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("UserId", "FishId"); - - b.ToTable("FishCatch"); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("Bait") - .HasColumnType("INTEGER"); - - b.Property<int?>("Pole") - .HasColumnType("INTEGER"); - - b.Property<int>("Skill") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("UserFishStats"); - }); - - modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => - { - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("GuildId", "UserId", "RoleId"); - - b.HasIndex("GuildId"); - - b.HasIndex("GuildId", "UserId"); - - b.ToTable("UserRole"); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<float>("Cooldown") - .HasColumnType("REAL"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("RateType") - .HasColumnType("INTEGER"); - - b.Property<long>("XpAmount") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "ChannelId", "RateType"); - - b.ToTable("ChannelXpConfig"); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<float>("Cooldown") - .HasColumnType("REAL"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("RateType") - .HasColumnType("INTEGER"); - - b.Property<long>("XpAmount") - .HasColumnType("INTEGER"); - - b.Property<string>("XpTemplateUrl") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "RateType"); - - b.ToTable("GuildXpConfig"); - }); - - modelBuilder.Entity("EllieBot.Services.GreetSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("AutoDeleteTimer") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(0); - - b.Property<ulong?>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<int>("GreetType") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(false); - - b.Property<string>("MessageText") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "GreetType") - .IsUnique(); - - b.ToTable("GreetSettings"); - }); - - modelBuilder.Entity("EllieBot.Services.Rakeback", b => - { - b.Property<ulong>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<decimal>("Amount") - .HasColumnType("TEXT"); - - b.HasKey("UserId"); - - b.ToTable("Rakeback"); - }); - - modelBuilder.Entity("EllieBot.Services.UserBetStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Game") - .HasColumnType("INTEGER"); - - b.Property<long>("LoseCount") - .HasColumnType("INTEGER"); - - b.Property<long>("MaxBet") - .HasColumnType("INTEGER"); - - b.Property<long>("MaxWin") - .HasColumnType("INTEGER"); - - b.Property<decimal>("PaidOut") - .HasColumnType("TEXT"); - - b.Property<decimal>("TotalBet") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<long>("WinCount") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("MaxWin"); - - b.HasIndex("UserId", "Game") - .IsUnique(); - - b.ToTable("UserBetStats"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) - .WithMany("IgnoredChannels") - .HasForeignKey("AntiSpamSettingId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") - .WithMany("Users") - .HasForeignKey("ChannelId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Channel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Applicants") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Bans") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("Owner"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Members") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.NoAction); - - b.Navigation("Club"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterInvitesChannelIds") - .HasForeignKey("GuildFilterConfigId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterLinksChannelIds") - .HasForeignKey("GuildFilterConfigId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterWordsChannelIds") - .HasForeignKey("GuildFilterConfigId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilteredWords") - .HasForeignKey("GuildFilterConfigId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.HasOne("EllieBot.Db.Models.GiveawayModel", null) - .WithMany("Participants") - .HasForeignKey("GiveawayId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") - .WithMany("LogIgnores") - .HasForeignKey("LogSettingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("LogSetting"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.HasOne("EllieBot.Db.Models.GuildConfig", null) - .WithMany("Permissions") - .HasForeignKey("GuildConfigId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) - .WithMany("Songs") - .HasForeignKey("MusicPlaylistId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.HasOne("EllieBot.Db.Models.SarGroup", null) - .WithMany("Roles") - .HasForeignKey("SarGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.HasOne("EllieBot.Db.Models.ShopEntry", null) - .WithMany("Items") - .HasForeignKey("ShopEntryId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Blacklist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("StreamRoleSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Whitelist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("StreamRoleSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) - .WithMany("Items") - .HasForeignKey("ArchiveId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") - .WithMany() - .HasForeignKey("AffinityId"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") - .WithMany() - .HasForeignKey("ClaimerId"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Affinity"); - - b.Navigation("Claimer"); - - b.Navigation("Waifu"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") - .WithMany("Items") - .HasForeignKey("WaifuInfoId"); - - b.Navigation("WaifuInfo"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "New") - .WithMany() - .HasForeignKey("NewId"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") - .WithMany() - .HasForeignKey("OldId"); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("New"); - - b.Navigation("Old"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("CurrencyRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("RoleRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Navigation("IgnoredChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Navigation("Items"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Navigation("Users"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Navigation("Applicants"); - - b.Navigation("Bans"); - - b.Navigation("Members"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Navigation("Participants"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Navigation("Permissions"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Navigation("FilterInvitesChannelIds"); - - b.Navigation("FilterLinksChannelIds"); - - b.Navigation("FilterWordsChannelIds"); - - b.Navigation("FilteredWords"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Navigation("LogIgnores"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Navigation("Songs"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Navigation("Roles"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Navigation("Items"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Navigation("Blacklist"); - - b.Navigation("Whitelist"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Navigation("Items"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Navigation("CurrencyRewards"); - - b.Navigation("RoleRewards"); - }); -#pragma warning restore 612, 618 - } - } -} \ No newline at end of file diff --git a/src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql b/src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql new file mode 100644 index 0000000..d5f263a --- /dev/null +++ b/src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql @@ -0,0 +1,22 @@ +BEGIN TRANSACTION; +CREATE TABLE "ScheduledCommand" ( + "Id" INTEGER NOT NULL CONSTRAINT "PK_ScheduledCommand" PRIMARY KEY AUTOINCREMENT, + "UserId" INTEGER NOT NULL, + "ChannelId" INTEGER NOT NULL, + "GuildId" INTEGER NOT NULL, + "MessageId" INTEGER NOT NULL, + "Text" TEXT NOT NULL, + "When" TEXT NOT NULL +); + +CREATE INDEX "IX_ScheduledCommand_GuildId" ON "ScheduledCommand" ("GuildId"); + +CREATE INDEX "IX_ScheduledCommand_UserId" ON "ScheduledCommand" ("UserId"); + +CREATE INDEX "IX_ScheduledCommand_When" ON "ScheduledCommand" ("When"); + +INSERT INTO "__EFMigrationsHistory" ("MigrationId", "ProductVersion") +VALUES ('20250317063119_scheduled-commands', '9.0.1'); + +COMMIT; + diff --git a/src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs b/src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs new file mode 100644 index 0000000..93429ce --- /dev/null +++ b/src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs @@ -0,0 +1,3109 @@ +// <auto-generated /> +using System; +using EllieBot.Db; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace EllieBot.Migrations.Sqlite +{ + [DbContext(typeof(SqliteContext))] + [Migration("20250317063300_init")] + partial class init + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.1"); + + modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Action") + .HasColumnType("INTEGER"); + + b.Property<int>("ActionDurationMinutes") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<TimeSpan>("MinAge") + .HasColumnType("TEXT"); + + b.Property<ulong?>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("AntiAltSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Action") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("PunishDuration") + .HasColumnType("INTEGER"); + + b.Property<int>("Seconds") + .HasColumnType("INTEGER"); + + b.Property<int>("UserThreshold") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("AntiRaidSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("AntiSpamSettingId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AntiSpamSettingId"); + + b.ToTable("AntiSpamIgnore"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Action") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("MessageThreshold") + .HasColumnType("INTEGER"); + + b.Property<int>("MuteTime") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("AntiSpamSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("TodosArchive"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<string>("ChannelName") + .HasColumnType("TEXT"); + + b.Property<string>("CommandText") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong?>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("GuildName") + .HasColumnType("TEXT"); + + b.Property<int>("Interval") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("VoiceChannelId") + .HasColumnType("INTEGER"); + + b.Property<string>("VoiceChannelName") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("AutoCommands"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("AutoPublishChannel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<bool>("AutoDelete") + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId") + .IsUnique(); + + b.HasIndex("GuildId"); + + b.ToTable("AutoTranslateChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Source") + .HasColumnType("TEXT"); + + b.Property<string>("Target") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("ChannelId", "UserId"); + + b.ToTable("AutoTranslateUsers"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int?>("PruneDays") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("BanTemplates"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.BankUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<long>("Balance") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("BankUsers"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("ItemId") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Blacklist"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("ButtonId") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<string>("Emote") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property<bool>("Exclusive") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Label") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("TEXT"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<int>("Position") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("RoleId", "MessageId"); + + b.HasIndex("GuildId"); + + b.ToTable("ButtonRole"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => + { + b.Property<int>("ClubId") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("ClubId", "UserId"); + + b.HasIndex("UserId"); + + b.ToTable("ClubApplicants"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => + { + b.Property<int>("ClubId") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("ClubId", "UserId"); + + b.HasIndex("UserId"); + + b.ToTable("ClubBans"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("BannerUrl") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Description") + .HasColumnType("TEXT"); + + b.Property<string>("ImageUrl") + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .HasMaxLength(20) + .HasColumnType("TEXT"); + + b.Property<int?>("OwnerId") + .HasColumnType("INTEGER"); + + b.Property<int>("Xp") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.HasIndex("OwnerId") + .IsUnique(); + + b.ToTable("Clubs"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Mapping") + .HasColumnType("TEXT"); + + b.Property<string>("Trigger") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.ToTable("CommandAlias"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("CommandName") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Seconds") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "CommandName") + .IsUnique(); + + b.ToTable("CommandCooldown"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<long>("Amount") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Extra") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Note") + .HasColumnType("TEXT"); + + b.Property<ulong?>("OtherId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValueSql("NULL"); + + b.Property<string>("Type") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("CurrencyTransactions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("State") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "ChannelId") + .IsUnique(); + + b.ToTable("DelMsgOnCmdChannel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("Command") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong?>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("Perm") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "Command") + .IsUnique(); + + b.ToTable("DiscordPermOverrides"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("AvatarId") + .HasColumnType("TEXT"); + + b.Property<int?>("ClubId") + .HasColumnType("INTEGER"); + + b.Property<long>("CurrencyAmount") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0L); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsClubAdmin") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(false); + + b.Property<long>("TotalXp") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0L); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<string>("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasAlternateKey("UserId"); + + b.HasIndex("ClubId"); + + b.HasIndex("CurrencyAmount"); + + b.HasIndex("TotalXp"); + + b.HasIndex("UserId"); + + b.HasIndex("Username"); + + b.ToTable("DiscordUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<bool>("AllowTarget") + .HasColumnType("INTEGER"); + + b.Property<bool>("AutoDeleteTrigger") + .HasColumnType("INTEGER"); + + b.Property<bool>("ContainsAnywhere") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("DmResponse") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Reactions") + .HasColumnType("TEXT"); + + b.Property<string>("Response") + .HasColumnType("TEXT"); + + b.Property<string>("Trigger") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Expressions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<string>("Url") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "Url") + .IsUnique(); + + b.ToTable("FeedSub"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilterChannelId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilterLinksChannelId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilterWordsChannelId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.Property<string>("Word") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilteredWord"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "ChannelId") + .IsUnique(); + + b.ToTable("FlagTranslateChannel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<string>("PrettyName") + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.Property<string>("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "Username", "Type"); + + b.ToTable("FollowedStream"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "ChannelId") + .IsUnique(); + + b.ToTable("GCChannelId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<decimal>("Bet") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Feature") + .HasColumnType("TEXT"); + + b.Property<decimal>("PaidOut") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Feature") + .IsUnique(); + + b.ToTable("GamblingStats"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("EndsAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("GiveawayModel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("GiveawayId") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GiveawayId", "UserId") + .IsUnique(); + + b.ToTable("GiveawayUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("ErrorColor") + .HasMaxLength(9) + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("OkColor") + .HasMaxLength(9) + .HasColumnType("TEXT"); + + b.Property<string>("PendingColor") + .HasMaxLength(9) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("GuildColors"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("AutoAssignRoleIds") + .HasColumnType("TEXT"); + + b.Property<bool>("CleverbotEnabled") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("DeleteMessageOnCommand") + .HasColumnType("INTEGER"); + + b.Property<bool>("DeleteStreamOnlineMessage") + .HasColumnType("INTEGER"); + + b.Property<bool>("DisableGlobalExpressions") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("GameVoiceChannel") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Locale") + .HasColumnType("TEXT"); + + b.Property<string>("MuteRoleName") + .HasColumnType("TEXT"); + + b.Property<bool>("NotifyStreamOffline") + .HasColumnType("INTEGER"); + + b.Property<string>("PermissionRole") + .HasColumnType("TEXT"); + + b.Property<string>("Prefix") + .HasColumnType("TEXT"); + + b.Property<bool>("StickyRoles") + .HasColumnType("INTEGER"); + + b.Property<string>("TimeZoneId") + .HasColumnType("TEXT"); + + b.Property<bool>("VerboseErrors") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property<bool>("VerbosePermissions") + .HasColumnType("INTEGER"); + + b.Property<int>("WarnExpireAction") + .HasColumnType("INTEGER"); + + b.Property<int>("WarnExpireHours") + .HasColumnType("INTEGER"); + + b.Property<bool>("WarningsInitialized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.HasIndex("WarnExpireHours"); + + b.ToTable("GuildConfigs"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<bool>("FilterInvites") + .HasColumnType("INTEGER"); + + b.Property<bool>("FilterLinks") + .HasColumnType("INTEGER"); + + b.Property<bool>("FilterWords") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.ToTable("GuildFilterConfig"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => + { + b.Property<ulong>("GuildId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.HasKey("GuildId"); + + b.ToTable("HoneyPotChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("ItemType") + .HasColumnType("INTEGER"); + + b.Property<ulong>("LogItemId") + .HasColumnType("INTEGER"); + + b.Property<int>("LogSettingId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LogSettingId", "LogItemId", "ItemType") + .IsUnique(); + + b.ToTable("IgnoredLogChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId") + .IsUnique(); + + b.ToTable("ImageOnlyChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelCreatedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelDestroyedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelUpdatedId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogOtherId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogUserPresenceId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogVoicePresenceId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogVoicePresenceTTSId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogWarnsId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("MessageDeletedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("MessageUpdatedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ThreadCreatedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ThreadDeletedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserBannedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserJoinedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserLeftId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserMutedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserUnbannedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserUpdatedId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("LogSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<bool>("AutoDisconnect") + .HasColumnType("INTEGER"); + + b.Property<bool>("AutoPlay") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("MusicChannelId") + .HasColumnType("INTEGER"); + + b.Property<int>("PlayerRepeat") + .HasColumnType("INTEGER"); + + b.Property<int>("QualityPreset") + .HasColumnType("INTEGER"); + + b.Property<int>("Volume") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(100); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("MusicPlayerSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("Author") + .HasColumnType("TEXT"); + + b.Property<ulong>("AuthorId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("MusicPlaylists"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("MutedUserId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<uint>("Color") + .HasColumnType("INTEGER"); + + b.Property<ulong>("OwnerId") + .HasColumnType("INTEGER"); + + b.Property<int>("Position") + .HasColumnType("INTEGER"); + + b.Property<long>("Price") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasAlternateKey("Position"); + + b.HasIndex("OwnerId"); + + b.ToTable("NCPixel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Notify", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .IsRequired() + .HasMaxLength(10000) + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "Type"); + + b.ToTable("Notify"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => + { + b.Property<ulong>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("AmountCents") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("LastCharge") + .HasColumnType("TEXT"); + + b.Property<string>("UniquePlatformUserId") + .HasColumnType("TEXT"); + + b.Property<DateTime>("ValidThru") + .HasColumnType("TEXT"); + + b.HasKey("UserId"); + + b.HasIndex("UniquePlatformUserId") + .IsUnique(); + + b.ToTable("Patrons"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildConfigId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Index") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsCustomCommand") + .HasColumnType("INTEGER"); + + b.Property<int>("PrimaryTarget") + .HasColumnType("INTEGER"); + + b.Property<ulong>("PrimaryTargetId") + .HasColumnType("INTEGER"); + + b.Property<int>("SecondaryTarget") + .HasColumnType("INTEGER"); + + b.Property<string>("SecondaryTargetName") + .HasColumnType("TEXT"); + + b.Property<bool>("State") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildConfigId"); + + b.HasIndex("GuildId"); + + b.ToTable("Permissions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<long>("Amount") + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Password") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId") + .IsUnique(); + + b.ToTable("PlantedCurrency"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("MusicPlaylistId") + .HasColumnType("INTEGER"); + + b.Property<string>("Provider") + .HasColumnType("TEXT"); + + b.Property<int>("ProviderType") + .HasColumnType("INTEGER"); + + b.Property<string>("Query") + .HasColumnType("TEXT"); + + b.Property<string>("Title") + .HasColumnType("TEXT"); + + b.Property<string>("Uri") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MusicPlaylistId"); + + b.ToTable("PlaylistSong"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Quote", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("AuthorId") + .HasColumnType("INTEGER"); + + b.Property<string>("AuthorName") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Keyword") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("Keyword"); + + b.ToTable("Quotes"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Emote") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property<int>("Group") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("LevelReq") + .HasColumnType("INTEGER"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("MessageId", "Emote") + .IsUnique(); + + b.ToTable("ReactionRoles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsPrivate") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<ulong>("ServerId") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("When") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("When"); + + b.ToTable("Reminders"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<TimeSpan>("Interval") + .HasColumnType("TEXT"); + + b.Property<ulong?>("LastMessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<bool>("NoRedundant") + .HasColumnType("INTEGER"); + + b.Property<TimeSpan?>("StartTimeOfDay") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Repeaters"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<long>("AmountRewardedThisMonth") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<DateTime>("LastReward") + .HasColumnType("TEXT"); + + b.Property<string>("PlatformUserId") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("PlatformUserId") + .IsUnique(); + + b.ToTable("RewardedUsers"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Status") + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("RotatingStatus"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("LevelReq") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("SarGroupId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "RoleId"); + + b.HasIndex("SarGroupId"); + + b.ToTable("Sar"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsEnabled") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("SarAutoDelete"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("GroupNumber") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsExclusive") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property<ulong?>("RoleReq") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "GroupNumber"); + + b.ToTable("SarGroup"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("AuthorId") + .HasColumnType("INTEGER"); + + b.Property<string>("Command") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Index") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<int>("Price") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<string>("RoleName") + .HasColumnType("TEXT"); + + b.Property<ulong?>("RoleRequirement") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "Index") + .IsUnique(); + + b.ToTable("ShopEntry"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("ShopEntryId") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ShopEntryId"); + + b.ToTable("ShopEntryItem"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "RoleId") + .IsUnique(); + + b.ToTable("SlowmodeIgnoredRole"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("SlowmodeIgnoredUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("RoleIds") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("StickyRoles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("StreamOnlineMessages"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<string>("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("StreamRoleSettingsId"); + + b.ToTable("StreamRoleBlacklistedUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("AddRoleId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("Enabled") + .HasColumnType("INTEGER"); + + b.Property<ulong>("FromRoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("GuildConfigId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Keyword") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<string>("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("StreamRoleSettingsId"); + + b.ToTable("StreamRoleWhitelistedUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime>("ExpiresAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("Remove") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "UserId", "RoleId"); + + b.HasIndex("ExpiresAt"); + + b.ToTable("TempRole"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("ArchiveId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsDone") + .HasColumnType("INTEGER"); + + b.Property<string>("Todo") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ArchiveId"); + + b.HasIndex("UserId"); + + b.ToTable("Todos"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("UnbanTimer"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("UnmuteAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("UnmuteTimer"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("UnroleTimer"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<long>("Xp") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("UserId"); + + b.HasIndex("Xp"); + + b.HasIndex("UserId", "GuildId") + .IsUnique(); + + b.ToTable("UserXpStats"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("VoiceChannelId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "VoiceChannelId") + .IsUnique(); + + b.ToTable("VcRoleInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("AffinityId") + .HasColumnType("INTEGER"); + + b.Property<int?>("ClaimerId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<long>("Price") + .HasColumnType("INTEGER"); + + b.Property<int>("WaifuId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AffinityId"); + + b.HasIndex("ClaimerId"); + + b.HasIndex("Price"); + + b.HasIndex("WaifuId") + .IsUnique(); + + b.ToTable("WaifuInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("ItemEmoji") + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<int?>("WaifuInfoId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("WaifuInfoId"); + + b.ToTable("WaifuItem"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("NewId") + .HasColumnType("INTEGER"); + + b.Property<int?>("OldId") + .HasColumnType("INTEGER"); + + b.Property<int>("UpdateType") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("NewId"); + + b.HasIndex("OldId"); + + b.HasIndex("UserId"); + + b.ToTable("WaifuUpdates"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Warning", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("Forgiven") + .HasColumnType("INTEGER"); + + b.Property<string>("ForgivenBy") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Moderator") + .HasColumnType("TEXT"); + + b.Property<string>("Reason") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<long>("Weight") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(1L); + + b.HasKey("Id"); + + b.HasIndex("DateAdded"); + + b.HasIndex("GuildId"); + + b.HasIndex("UserId"); + + b.ToTable("Warnings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Count") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Punishment") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("Time") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "Count"); + + b.ToTable("WarningPunishment"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Amount") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("Level") + .HasColumnType("INTEGER"); + + b.Property<int>("XpSettingsId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("XpSettingsId"); + + b.HasIndex("Level", "XpSettingsId") + .IsUnique(); + + b.ToTable("XpCurrencyReward"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("Level") + .HasColumnType("INTEGER"); + + b.Property<bool>("Remove") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("XpSettingsId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("XpSettingsId", "Level") + .IsUnique(); + + b.ToTable("XpRoleReward"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("XpSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsUsing") + .HasColumnType("INTEGER"); + + b.Property<string>("ItemKey") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<int>("ItemType") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId", "ItemType", "ItemKey") + .IsUnique(); + + b.ToTable("XpShopOwnedItem"); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Count") + .HasColumnType("INTEGER"); + + b.Property<int>("FishId") + .HasColumnType("INTEGER"); + + b.Property<int>("MaxStars") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("UserId", "FishId"); + + b.ToTable("FishCatch"); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("Bait") + .HasColumnType("INTEGER"); + + b.Property<int?>("Pole") + .HasColumnType("INTEGER"); + + b.Property<int>("Skill") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("UserFishStats"); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("When") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("UserId"); + + b.HasIndex("When"); + + b.ToTable("ScheduledCommand"); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => + { + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("GuildId", "UserId", "RoleId"); + + b.HasIndex("GuildId"); + + b.HasIndex("GuildId", "UserId"); + + b.ToTable("UserRole"); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<float>("Cooldown") + .HasColumnType("REAL"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("RateType") + .HasColumnType("INTEGER"); + + b.Property<long>("XpAmount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "ChannelId", "RateType"); + + b.ToTable("ChannelXpConfig"); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<float>("Cooldown") + .HasColumnType("REAL"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("RateType") + .HasColumnType("INTEGER"); + + b.Property<long>("XpAmount") + .HasColumnType("INTEGER"); + + b.Property<string>("XpTemplateUrl") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "RateType"); + + b.ToTable("GuildXpConfig"); + }); + + modelBuilder.Entity("EllieBot.Services.GreetSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("AutoDeleteTimer") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property<ulong?>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<int>("GreetType") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(false); + + b.Property<string>("MessageText") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "GreetType") + .IsUnique(); + + b.ToTable("GreetSettings"); + }); + + modelBuilder.Entity("EllieBot.Services.Rakeback", b => + { + b.Property<ulong>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<decimal>("Amount") + .HasColumnType("TEXT"); + + b.HasKey("UserId"); + + b.ToTable("Rakeback"); + }); + + modelBuilder.Entity("EllieBot.Services.UserBetStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Game") + .HasColumnType("INTEGER"); + + b.Property<long>("LoseCount") + .HasColumnType("INTEGER"); + + b.Property<long>("MaxBet") + .HasColumnType("INTEGER"); + + b.Property<long>("MaxWin") + .HasColumnType("INTEGER"); + + b.Property<decimal>("PaidOut") + .HasColumnType("TEXT"); + + b.Property<decimal>("TotalBet") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<long>("WinCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("MaxWin"); + + b.HasIndex("UserId", "Game") + .IsUnique(); + + b.ToTable("UserBetStats"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => + { + b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) + .WithMany("IgnoredChannels") + .HasForeignKey("AntiSpamSettingId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => + { + b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") + .WithMany("Users") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Applicants") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Bans") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") + .OnDelete(DeleteBehavior.SetNull); + + b.Navigation("Owner"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Members") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.NoAction); + + b.Navigation("Club"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterInvitesChannelIds") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterLinksChannelIds") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterWordsChannelIds") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilteredWords") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.HasOne("EllieBot.Db.Models.GiveawayModel", null) + .WithMany("Participants") + .HasForeignKey("GiveawayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") + .WithMany("LogIgnores") + .HasForeignKey("LogSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("LogSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.HasOne("EllieBot.Db.Models.GuildConfig", null) + .WithMany("Permissions") + .HasForeignKey("GuildConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) + .WithMany("Songs") + .HasForeignKey("MusicPlaylistId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.HasOne("EllieBot.Db.Models.SarGroup", null) + .WithMany("Roles") + .HasForeignKey("SarGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.HasOne("EllieBot.Db.Models.ShopEntry", null) + .WithMany("Items") + .HasForeignKey("ShopEntryId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Blacklist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Whitelist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) + .WithMany("Items") + .HasForeignKey("ArchiveId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") + .WithMany() + .HasForeignKey("AffinityId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") + .WithMany() + .HasForeignKey("ClaimerId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Affinity"); + + b.Navigation("Claimer"); + + b.Navigation("Waifu"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") + .WithMany("Items") + .HasForeignKey("WaifuInfoId"); + + b.Navigation("WaifuInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "New") + .WithMany() + .HasForeignKey("NewId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") + .WithMany() + .HasForeignKey("OldId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("New"); + + b.Navigation("Old"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("CurrencyRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("RoleRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => + { + b.Navigation("IgnoredChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => + { + b.Navigation("Users"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.Navigation("Applicants"); + + b.Navigation("Bans"); + + b.Navigation("Members"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => + { + b.Navigation("Participants"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => + { + b.Navigation("Permissions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => + { + b.Navigation("FilterInvitesChannelIds"); + + b.Navigation("FilterLinksChannelIds"); + + b.Navigation("FilterWordsChannelIds"); + + b.Navigation("FilteredWords"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => + { + b.Navigation("LogIgnores"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => + { + b.Navigation("Songs"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => + { + b.Navigation("Blacklist"); + + b.Navigation("Whitelist"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => + { + b.Navigation("CurrencyRewards"); + + b.Navigation("RoleRewards"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/EllieBot/Migrations/Sqlite/20250315225536_init.cs b/src/EllieBot/Migrations/Sqlite/20250317063300_init.cs similarity index 98% rename from src/EllieBot/Migrations/Sqlite/20250315225536_init.cs rename to src/EllieBot/Migrations/Sqlite/20250317063300_init.cs index c142ccf..73c5d84 100644 --- a/src/EllieBot/Migrations/Sqlite/20250315225536_init.cs +++ b/src/EllieBot/Migrations/Sqlite/20250317063300_init.cs @@ -857,6 +857,24 @@ namespace EllieBot.Migrations.Sqlite table.UniqueConstraint("AK_SarGroup_GuildId_GroupNumber", x => new { x.GuildId, x.GroupNumber }); }); + migrationBuilder.CreateTable( + name: "ScheduledCommand", + columns: table => new + { + Id = table.Column<int>(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + UserId = table.Column<ulong>(type: "INTEGER", nullable: false), + ChannelId = table.Column<ulong>(type: "INTEGER", nullable: false), + GuildId = table.Column<ulong>(type: "INTEGER", nullable: false), + MessageId = table.Column<ulong>(type: "INTEGER", nullable: false), + Text = table.Column<string>(type: "TEXT", nullable: false), + When = table.Column<DateTime>(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ScheduledCommand", x => x.Id); + }); + migrationBuilder.CreateTable( name: "ShopEntry", columns: table => new @@ -2050,6 +2068,21 @@ namespace EllieBot.Migrations.Sqlite column: "GuildId", unique: true); + migrationBuilder.CreateIndex( + name: "IX_ScheduledCommand_GuildId", + table: "ScheduledCommand", + column: "GuildId"); + + migrationBuilder.CreateIndex( + name: "IX_ScheduledCommand_UserId", + table: "ScheduledCommand", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_ScheduledCommand_When", + table: "ScheduledCommand", + column: "When"); + migrationBuilder.CreateIndex( name: "IX_ShopEntry_GuildId_Index", table: "ShopEntry", @@ -2474,6 +2507,9 @@ namespace EllieBot.Migrations.Sqlite migrationBuilder.DropTable( name: "SarAutoDelete"); + migrationBuilder.DropTable( + name: "ScheduledCommand"); + migrationBuilder.DropTable( name: "ShopEntryItem"); @@ -2592,4 +2628,4 @@ namespace EllieBot.Migrations.Sqlite name: "DiscordUser"); } } -} \ No newline at end of file +} diff --git a/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs b/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs index 7a30ffb..0792778 100644 --- a/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs +++ b/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs @@ -18,3053 +18,3089 @@ namespace EllieBot.Migrations.Sqlite modelBuilder.HasAnnotation("ProductVersion", "9.0.1"); modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<int>("Action") - .HasColumnType("INTEGER"); + b.Property<int>("Action") + .HasColumnType("INTEGER"); - b.Property<int>("ActionDurationMinutes") - .HasColumnType("INTEGER"); + b.Property<int>("ActionDurationMinutes") + .HasColumnType("INTEGER"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<TimeSpan>("MinAge") - .HasColumnType("TEXT"); + b.Property<TimeSpan>("MinAge") + .HasColumnType("TEXT"); - b.Property<ulong?>("RoleId") - .HasColumnType("INTEGER"); + b.Property<ulong?>("RoleId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId") - .IsUnique(); + b.HasIndex("GuildId") + .IsUnique(); - b.ToTable("AntiAltSetting"); - }); + b.ToTable("AntiAltSetting"); + }); modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<int>("Action") - .HasColumnType("INTEGER"); + b.Property<int>("Action") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<int>("PunishDuration") - .HasColumnType("INTEGER"); + b.Property<int>("PunishDuration") + .HasColumnType("INTEGER"); - b.Property<int>("Seconds") - .HasColumnType("INTEGER"); + b.Property<int>("Seconds") + .HasColumnType("INTEGER"); - b.Property<int>("UserThreshold") - .HasColumnType("INTEGER"); + b.Property<int>("UserThreshold") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId") - .IsUnique(); + b.HasIndex("GuildId") + .IsUnique(); - b.ToTable("AntiRaidSetting"); - }); + b.ToTable("AntiRaidSetting"); + }); modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<int?>("AntiSpamSettingId") - .HasColumnType("INTEGER"); + b.Property<int?>("AntiSpamSettingId") + .HasColumnType("INTEGER"); - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("AntiSpamSettingId"); + b.HasIndex("AntiSpamSettingId"); - b.ToTable("AntiSpamIgnore"); - }); + b.ToTable("AntiSpamIgnore"); + }); modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<int>("Action") - .HasColumnType("INTEGER"); + b.Property<int>("Action") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<int>("MessageThreshold") - .HasColumnType("INTEGER"); + b.Property<int>("MessageThreshold") + .HasColumnType("INTEGER"); - b.Property<int>("MuteTime") - .HasColumnType("INTEGER"); + b.Property<int>("MuteTime") + .HasColumnType("INTEGER"); - b.Property<ulong?>("RoleId") - .HasColumnType("INTEGER"); + b.Property<ulong?>("RoleId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId") - .IsUnique(); + b.HasIndex("GuildId") + .IsUnique(); - b.ToTable("AntiSpamSetting"); - }); + b.ToTable("AntiSpamSetting"); + }); modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<string>("Name") - .HasColumnType("TEXT"); + b.Property<string>("Name") + .HasColumnType("TEXT"); - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("TodosArchive"); - }); + b.ToTable("TodosArchive"); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<string>("ChannelName") - .HasColumnType("TEXT"); + b.Property<string>("ChannelName") + .HasColumnType("TEXT"); - b.Property<string>("CommandText") - .HasColumnType("TEXT"); + b.Property<string>("CommandText") + .HasColumnType("TEXT"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong?>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong?>("GuildId") + .HasColumnType("INTEGER"); - b.Property<string>("GuildName") - .HasColumnType("TEXT"); + b.Property<string>("GuildName") + .HasColumnType("TEXT"); - b.Property<int>("Interval") - .HasColumnType("INTEGER"); + b.Property<int>("Interval") + .HasColumnType("INTEGER"); - b.Property<ulong?>("VoiceChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong?>("VoiceChannelId") + .HasColumnType("INTEGER"); - b.Property<string>("VoiceChannelName") - .HasColumnType("TEXT"); + b.Property<string>("VoiceChannelName") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("AutoCommands"); - }); + b.ToTable("AutoCommands"); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId") - .IsUnique(); + b.HasIndex("GuildId") + .IsUnique(); - b.ToTable("AutoPublishChannel"); - }); + b.ToTable("AutoPublishChannel"); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<bool>("AutoDelete") - .HasColumnType("INTEGER"); + b.Property<bool>("AutoDelete") + .HasColumnType("INTEGER"); - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("ChannelId") - .IsUnique(); + b.HasIndex("ChannelId") + .IsUnique(); - b.HasIndex("GuildId"); + b.HasIndex("GuildId"); - b.ToTable("AutoTranslateChannels"); - }); + b.ToTable("AutoTranslateChannels"); + }); modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<int>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<int>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<string>("Source") - .HasColumnType("TEXT"); + b.Property<string>("Source") + .HasColumnType("TEXT"); - b.Property<string>("Target") - .HasColumnType("TEXT"); + b.Property<string>("Target") + .HasColumnType("TEXT"); - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasAlternateKey("ChannelId", "UserId"); + b.HasAlternateKey("ChannelId", "UserId"); - b.ToTable("AutoTranslateUsers"); - }); + b.ToTable("AutoTranslateUsers"); + }); modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<int?>("PruneDays") - .HasColumnType("INTEGER"); + b.Property<int?>("PruneDays") + .HasColumnType("INTEGER"); - b.Property<string>("Text") - .HasColumnType("TEXT"); + b.Property<string>("Text") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId") - .IsUnique(); + b.HasIndex("GuildId") + .IsUnique(); - b.ToTable("BanTemplates"); - }); + b.ToTable("BanTemplates"); + }); modelBuilder.Entity("EllieBot.Db.Models.BankUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<long>("Balance") - .HasColumnType("INTEGER"); + b.Property<long>("Balance") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId") - .IsUnique(); + b.HasIndex("UserId") + .IsUnique(); - b.ToTable("BankUsers"); - }); + b.ToTable("BankUsers"); + }); modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("ItemId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ItemId") + .HasColumnType("INTEGER"); - b.Property<int>("Type") - .HasColumnType("INTEGER"); + b.Property<int>("Type") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("Blacklist"); - }); + b.ToTable("Blacklist"); + }); modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<string>("ButtonId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("TEXT"); + b.Property<string>("ButtonId") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<string>("Emote") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("TEXT"); + b.Property<string>("Emote") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); - b.Property<bool>("Exclusive") - .HasColumnType("INTEGER"); + b.Property<bool>("Exclusive") + .HasColumnType("INTEGER"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<string>("Label") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("TEXT"); + b.Property<string>("Label") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("TEXT"); - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); - b.Property<int>("Position") - .HasColumnType("INTEGER"); + b.Property<int>("Position") + .HasColumnType("INTEGER"); - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasAlternateKey("RoleId", "MessageId"); + b.HasAlternateKey("RoleId", "MessageId"); - b.HasIndex("GuildId"); + b.HasIndex("GuildId"); - b.ToTable("ButtonRole"); - }); + b.ToTable("ButtonRole"); + }); modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.Property<int>("ClubId") - .HasColumnType("INTEGER"); + { + b.Property<int>("ClubId") + .HasColumnType("INTEGER"); - b.Property<int>("UserId") - .HasColumnType("INTEGER"); + b.Property<int>("UserId") + .HasColumnType("INTEGER"); - b.HasKey("ClubId", "UserId"); + b.HasKey("ClubId", "UserId"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("ClubApplicants"); - }); + b.ToTable("ClubApplicants"); + }); modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.Property<int>("ClubId") - .HasColumnType("INTEGER"); + { + b.Property<int>("ClubId") + .HasColumnType("INTEGER"); - b.Property<int>("UserId") - .HasColumnType("INTEGER"); + b.Property<int>("UserId") + .HasColumnType("INTEGER"); - b.HasKey("ClubId", "UserId"); + b.HasKey("ClubId", "UserId"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("ClubBans"); - }); + b.ToTable("ClubBans"); + }); modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<string>("BannerUrl") - .HasColumnType("TEXT"); + b.Property<string>("BannerUrl") + .HasColumnType("TEXT"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<string>("Description") - .HasColumnType("TEXT"); + b.Property<string>("Description") + .HasColumnType("TEXT"); - b.Property<string>("ImageUrl") - .HasColumnType("TEXT"); + b.Property<string>("ImageUrl") + .HasColumnType("TEXT"); - b.Property<string>("Name") - .HasMaxLength(20) - .HasColumnType("TEXT"); + b.Property<string>("Name") + .HasMaxLength(20) + .HasColumnType("TEXT"); - b.Property<int?>("OwnerId") - .HasColumnType("INTEGER"); + b.Property<int?>("OwnerId") + .HasColumnType("INTEGER"); - b.Property<int>("Xp") - .HasColumnType("INTEGER"); + b.Property<int>("Xp") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("Name") - .IsUnique(); + b.HasIndex("Name") + .IsUnique(); - b.HasIndex("OwnerId") - .IsUnique(); + b.HasIndex("OwnerId") + .IsUnique(); - b.ToTable("Clubs"); - }); + b.ToTable("Clubs"); + }); modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<string>("Mapping") - .HasColumnType("TEXT"); + b.Property<string>("Mapping") + .HasColumnType("TEXT"); - b.Property<string>("Trigger") - .HasColumnType("TEXT"); + b.Property<string>("Trigger") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId"); + b.HasIndex("GuildId"); - b.ToTable("CommandAlias"); - }); + b.ToTable("CommandAlias"); + }); modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<string>("CommandName") - .HasColumnType("TEXT"); + b.Property<string>("CommandName") + .HasColumnType("TEXT"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<int>("Seconds") - .HasColumnType("INTEGER"); + b.Property<int>("Seconds") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId", "CommandName") - .IsUnique(); + b.HasIndex("GuildId", "CommandName") + .IsUnique(); - b.ToTable("CommandCooldown"); - }); + b.ToTable("CommandCooldown"); + }); modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<long>("Amount") - .HasColumnType("INTEGER"); + b.Property<long>("Amount") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<string>("Extra") - .IsRequired() - .HasColumnType("TEXT"); + b.Property<string>("Extra") + .IsRequired() + .HasColumnType("TEXT"); - b.Property<string>("Note") - .HasColumnType("TEXT"); + b.Property<string>("Note") + .HasColumnType("TEXT"); - b.Property<ulong?>("OtherId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValueSql("NULL"); + b.Property<ulong?>("OtherId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValueSql("NULL"); - b.Property<string>("Type") - .IsRequired() - .HasColumnType("TEXT"); + b.Property<string>("Type") + .IsRequired() + .HasColumnType("TEXT"); - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.ToTable("CurrencyTransactions"); - }); + b.ToTable("CurrencyTransactions"); + }); modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<bool>("State") - .HasColumnType("INTEGER"); + b.Property<bool>("State") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId", "ChannelId") - .IsUnique(); + b.HasIndex("GuildId", "ChannelId") + .IsUnique(); - b.ToTable("DelMsgOnCmdChannel"); - }); + b.ToTable("DelMsgOnCmdChannel"); + }); modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<string>("Command") - .HasColumnType("TEXT"); + b.Property<string>("Command") + .HasColumnType("TEXT"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<ulong?>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong?>("GuildId") + .HasColumnType("INTEGER"); - b.Property<ulong>("Perm") - .HasColumnType("INTEGER"); + b.Property<ulong>("Perm") + .HasColumnType("INTEGER"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasIndex("GuildId", "Command") - .IsUnique(); + b.HasIndex("GuildId", "Command") + .IsUnique(); - b.ToTable("DiscordPermOverrides"); - }); + b.ToTable("DiscordPermOverrides"); + }); modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<string>("AvatarId") - .HasColumnType("TEXT"); + b.Property<string>("AvatarId") + .HasColumnType("TEXT"); - b.Property<int?>("ClubId") - .HasColumnType("INTEGER"); + b.Property<int?>("ClubId") + .HasColumnType("INTEGER"); - b.Property<long>("CurrencyAmount") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(0L); + b.Property<long>("CurrencyAmount") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0L); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<bool>("IsClubAdmin") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(false); + b.Property<bool>("IsClubAdmin") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(false); - b.Property<long>("TotalXp") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(0L); + b.Property<long>("TotalXp") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0L); - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); - b.Property<string>("Username") - .HasColumnType("TEXT"); + b.Property<string>("Username") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.HasKey("Id"); - b.HasAlternateKey("UserId"); + b.HasAlternateKey("UserId"); - b.HasIndex("ClubId"); + b.HasIndex("ClubId"); - b.HasIndex("CurrencyAmount"); + b.HasIndex("CurrencyAmount"); - b.HasIndex("TotalXp"); + b.HasIndex("TotalXp"); - b.HasIndex("UserId"); + b.HasIndex("UserId"); - b.HasIndex("Username"); + b.HasIndex("Username"); - b.ToTable("DiscordUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<string>("Url") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Url") - .IsUnique(); - - b.ToTable("FeedSub"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilterChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilterLinksChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilterWordsChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildFilterConfigId") - .HasColumnType("INTEGER"); - - b.Property<string>("Word") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildFilterConfigId"); - - b.ToTable("FilteredWord"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique(); - - b.ToTable("FlagTranslateChannel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<string>("PrettyName") - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Username", "Type"); - - b.ToTable("FollowedStream"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "ChannelId") - .IsUnique(); - - b.ToTable("GCChannelId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<decimal>("Bet") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Feature") - .HasColumnType("TEXT"); - - b.Property<decimal>("PaidOut") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Feature") - .IsUnique(); - - b.ToTable("GamblingStats"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("EndsAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("GiveawayModel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("GiveawayId") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GiveawayId", "UserId") - .IsUnique(); - - b.ToTable("GiveawayUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("ErrorColor") - .HasMaxLength(9) - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("OkColor") - .HasMaxLength(9) - .HasColumnType("TEXT"); - - b.Property<string>("PendingColor") - .HasMaxLength(9) - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("GuildColors"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("AutoAssignRoleIds") - .HasColumnType("TEXT"); - - b.Property<bool>("CleverbotEnabled") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("DeleteMessageOnCommand") - .HasColumnType("INTEGER"); - - b.Property<bool>("DeleteStreamOnlineMessage") - .HasColumnType("INTEGER"); - - b.Property<bool>("DisableGlobalExpressions") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("GameVoiceChannel") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Locale") - .HasColumnType("TEXT"); - - b.Property<string>("MuteRoleName") - .HasColumnType("TEXT"); - - b.Property<bool>("NotifyStreamOffline") - .HasColumnType("INTEGER"); - - b.Property<string>("PermissionRole") - .HasColumnType("TEXT"); - - b.Property<string>("Prefix") - .HasColumnType("TEXT"); - - b.Property<bool>("StickyRoles") - .HasColumnType("INTEGER"); - - b.Property<string>("TimeZoneId") - .HasColumnType("TEXT"); - - b.Property<bool>("VerboseErrors") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(true); - - b.Property<bool>("VerbosePermissions") - .HasColumnType("INTEGER"); - - b.Property<int>("WarnExpireAction") - .HasColumnType("INTEGER"); - - b.Property<int>("WarnExpireHours") - .HasColumnType("INTEGER"); - - b.Property<bool>("WarningsInitialized") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.HasIndex("WarnExpireHours"); - - b.ToTable("GuildConfigs"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<bool>("FilterInvites") - .HasColumnType("INTEGER"); - - b.Property<bool>("FilterLinks") - .HasColumnType("INTEGER"); - - b.Property<bool>("FilterWords") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.ToTable("GuildFilterConfig"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => - { - b.Property<ulong>("GuildId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.HasKey("GuildId"); - - b.ToTable("HoneyPotChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("ItemType") - .HasColumnType("INTEGER"); - - b.Property<ulong>("LogItemId") - .HasColumnType("INTEGER"); - - b.Property<int>("LogSettingId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("LogSettingId", "LogItemId", "ItemType") - .IsUnique(); - - b.ToTable("IgnoredLogChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ChannelId") - .IsUnique(); - - b.ToTable("ImageOnlyChannels"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelCreatedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelDestroyedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ChannelUpdatedId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogOtherId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogUserPresenceId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogVoicePresenceId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogVoicePresenceTTSId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("LogWarnsId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("MessageDeletedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("MessageUpdatedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ThreadCreatedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("ThreadDeletedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserBannedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserJoinedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserLeftId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserMutedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserUnbannedId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("UserUpdatedId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("LogSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<bool>("AutoDisconnect") - .HasColumnType("INTEGER"); - - b.Property<bool>("AutoPlay") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("MusicChannelId") - .HasColumnType("INTEGER"); - - b.Property<int>("PlayerRepeat") - .HasColumnType("INTEGER"); - - b.Property<int>("QualityPreset") - .HasColumnType("INTEGER"); - - b.Property<int>("Volume") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(100); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("MusicPlayerSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<string>("Author") - .HasColumnType("TEXT"); - - b.Property<ulong>("AuthorId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("MusicPlaylists"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("MutedUserId"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<uint>("Color") - .HasColumnType("INTEGER"); - - b.Property<ulong>("OwnerId") - .HasColumnType("INTEGER"); - - b.Property<int>("Position") - .HasColumnType("INTEGER"); - - b.Property<long>("Price") - .HasColumnType("INTEGER"); - - b.Property<string>("Text") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasAlternateKey("Position"); - - b.HasIndex("OwnerId"); - - b.ToTable("NCPixel"); - }); + b.ToTable("DiscordUser"); + }); modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<bool>("AllowTarget") - .HasColumnType("INTEGER"); + b.Property<bool>("AllowTarget") + .HasColumnType("INTEGER"); - b.Property<bool>("AutoDeleteTrigger") - .HasColumnType("INTEGER"); + b.Property<bool>("AutoDeleteTrigger") + .HasColumnType("INTEGER"); - b.Property<bool>("ContainsAnywhere") - .HasColumnType("INTEGER"); + b.Property<bool>("ContainsAnywhere") + .HasColumnType("INTEGER"); - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<bool>("DmResponse") - .HasColumnType("INTEGER"); + b.Property<bool>("DmResponse") + .HasColumnType("INTEGER"); - b.Property<ulong?>("GuildId") - .HasColumnType("INTEGER"); + b.Property<ulong?>("GuildId") + .HasColumnType("INTEGER"); - b.Property<string>("Reactions") - .HasColumnType("TEXT"); + b.Property<string>("Reactions") + .HasColumnType("TEXT"); - b.Property<string>("Response") - .HasColumnType("TEXT"); + b.Property<string>("Response") + .HasColumnType("TEXT"); - b.Property<string>("Trigger") - .HasColumnType("TEXT"); + b.Property<string>("Trigger") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.HasKey("Id"); - b.ToTable("Expressions"); - }); + b.ToTable("Expressions"); + }); - modelBuilder.Entity("EllieBot.Db.Models.Notify", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); + modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Property<ulong?>("ChannelId") - .HasColumnType("INTEGER"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Property<string>("Message") - .IsRequired() - .HasMaxLength(10000) - .HasColumnType("TEXT"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Property<int>("Type") - .HasColumnType("INTEGER"); + b.Property<string>("Message") + .HasColumnType("TEXT"); - b.HasKey("Id"); + b.Property<string>("Url") + .HasColumnType("TEXT"); - b.HasAlternateKey("GuildId", "Type"); + b.HasKey("Id"); - b.ToTable("Notify"); - }); + b.HasIndex("GuildId", "Url") + .IsUnique(); - modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => - { - b.Property<ulong>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("AmountCents") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("LastCharge") - .HasColumnType("TEXT"); - - b.Property<string>("UniquePlatformUserId") - .HasColumnType("TEXT"); - - b.Property<DateTime>("ValidThru") - .HasColumnType("TEXT"); - - b.HasKey("UserId"); - - b.HasIndex("UniquePlatformUserId") - .IsUnique(); - - b.ToTable("Patrons"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("GuildConfigId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Index") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsCustomCommand") - .HasColumnType("INTEGER"); - - b.Property<int>("PrimaryTarget") - .HasColumnType("INTEGER"); - - b.Property<ulong>("PrimaryTargetId") - .HasColumnType("INTEGER"); - - b.Property<int>("SecondaryTarget") - .HasColumnType("INTEGER"); - - b.Property<string>("SecondaryTargetName") - .HasColumnType("TEXT"); - - b.Property<bool>("State") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildConfigId"); - - b.HasIndex("GuildId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<long>("Amount") - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<string>("Password") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ChannelId"); - - b.HasIndex("MessageId") - .IsUnique(); - - b.ToTable("PlantedCurrency"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("MusicPlaylistId") - .HasColumnType("INTEGER"); - - b.Property<string>("Provider") - .HasColumnType("TEXT"); - - b.Property<int>("ProviderType") - .HasColumnType("INTEGER"); - - b.Property<string>("Query") - .HasColumnType("TEXT"); - - b.Property<string>("Title") - .HasColumnType("TEXT"); - - b.Property<string>("Uri") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("MusicPlaylistId"); - - b.ToTable("PlaylistSong"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Quote", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("AuthorId") - .HasColumnType("INTEGER"); - - b.Property<string>("AuthorName") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Keyword") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<string>("Text") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.HasIndex("Keyword"); - - b.ToTable("Quotes"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Emote") - .HasMaxLength(100) - .HasColumnType("TEXT"); - - b.Property<int>("Group") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("LevelReq") - .HasColumnType("INTEGER"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.HasIndex("MessageId", "Emote") - .IsUnique(); - - b.ToTable("ReactionRoles"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsPrivate") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<ulong>("ServerId") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("When") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("When"); - - b.ToTable("Reminders"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<TimeSpan>("Interval") - .HasColumnType("TEXT"); - - b.Property<ulong?>("LastMessageId") - .HasColumnType("INTEGER"); - - b.Property<string>("Message") - .HasColumnType("TEXT"); - - b.Property<bool>("NoRedundant") - .HasColumnType("INTEGER"); - - b.Property<TimeSpan?>("StartTimeOfDay") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Repeaters"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<long>("AmountRewardedThisMonth") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<DateTime>("LastReward") - .HasColumnType("TEXT"); - - b.Property<string>("PlatformUserId") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("PlatformUserId") - .IsUnique(); - - b.ToTable("RewardedUsers"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("Status") - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("RotatingStatus"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("LevelReq") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("SarGroupId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "RoleId"); - - b.HasIndex("SarGroupId"); - - b.ToTable("Sar"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsEnabled") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("SarAutoDelete"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("GroupNumber") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsExclusive") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasMaxLength(100) - .HasColumnType("TEXT"); - - b.Property<ulong?>("RoleReq") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "GroupNumber"); - - b.ToTable("SarGroup"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("AuthorId") - .HasColumnType("INTEGER"); - - b.Property<string>("Command") - .HasColumnType("TEXT"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Index") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<int>("Price") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<string>("RoleName") - .HasColumnType("TEXT"); - - b.Property<ulong?>("RoleRequirement") - .HasColumnType("INTEGER"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "Index") - .IsUnique(); - - b.ToTable("ShopEntry"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("ShopEntryId") - .HasColumnType("INTEGER"); - - b.Property<string>("Text") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("ShopEntryId"); - - b.ToTable("ShopEntryItem"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "RoleId") - .IsUnique(); - - b.ToTable("SlowmodeIgnoredRole"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("SlowmodeIgnoredUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("RoleIds") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("StickyRoles"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("MessageId") - .HasColumnType("INTEGER"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<int>("Type") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("StreamOnlineMessages"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("StreamRoleSettingsId"); - - b.ToTable("StreamRoleBlacklistedUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("AddRoleId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("Enabled") - .HasColumnType("INTEGER"); - - b.Property<ulong>("FromRoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("GuildConfigId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Keyword") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("StreamRoleSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("StreamRoleSettingsId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<string>("Username") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("StreamRoleSettingsId"); - - b.ToTable("StreamRoleWhitelistedUser"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime>("ExpiresAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("Remove") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "UserId", "RoleId"); - - b.HasIndex("ExpiresAt"); - - b.ToTable("TempRole"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("ArchiveId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsDone") - .HasColumnType("INTEGER"); - - b.Property<string>("Todo") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("ArchiveId"); - - b.HasIndex("UserId"); - - b.ToTable("Todos"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("UnbanTimer"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("UnmuteAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("UnmuteTimer"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<DateTime>("UnbanAt") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "UserId") - .IsUnique(); - - b.ToTable("UnroleTimer"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<long>("Xp") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId"); - - b.HasIndex("UserId"); - - b.HasIndex("Xp"); - - b.HasIndex("UserId", "GuildId") - .IsUnique(); - - b.ToTable("UserXpStats"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("VoiceChannelId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "VoiceChannelId") - .IsUnique(); - - b.ToTable("VcRoleInfo"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("AffinityId") - .HasColumnType("INTEGER"); - - b.Property<int?>("ClaimerId") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<long>("Price") - .HasColumnType("INTEGER"); - - b.Property<int>("WaifuId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("AffinityId"); - - b.HasIndex("ClaimerId"); - - b.HasIndex("Price"); - - b.HasIndex("WaifuId") - .IsUnique(); - - b.ToTable("WaifuInfo"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<string>("ItemEmoji") - .HasColumnType("TEXT"); - - b.Property<string>("Name") - .HasColumnType("TEXT"); - - b.Property<int?>("WaifuInfoId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("WaifuInfoId"); - - b.ToTable("WaifuItem"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int?>("NewId") - .HasColumnType("INTEGER"); - - b.Property<int?>("OldId") - .HasColumnType("INTEGER"); - - b.Property<int>("UpdateType") - .HasColumnType("INTEGER"); - - b.Property<int>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("NewId"); - - b.HasIndex("OldId"); - - b.HasIndex("UserId"); - - b.ToTable("WaifuUpdates"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.Warning", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("Forgiven") - .HasColumnType("INTEGER"); - - b.Property<string>("ForgivenBy") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<string>("Moderator") - .HasColumnType("TEXT"); - - b.Property<string>("Reason") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<long>("Weight") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(1L); - - b.HasKey("Id"); - - b.HasIndex("DateAdded"); - - b.HasIndex("GuildId"); - - b.HasIndex("UserId"); - - b.ToTable("Warnings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Count") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("Punishment") - .HasColumnType("INTEGER"); - - b.Property<ulong?>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("Time") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "Count"); - - b.ToTable("WarningPunishment"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Amount") - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("Level") - .HasColumnType("INTEGER"); - - b.Property<int>("XpSettingsId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("XpSettingsId"); - - b.HasIndex("Level", "XpSettingsId") - .IsUnique(); - - b.ToTable("XpCurrencyReward"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<int>("Level") - .HasColumnType("INTEGER"); - - b.Property<bool>("Remove") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.Property<int>("XpSettingsId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("XpSettingsId", "Level") - .IsUnique(); - - b.ToTable("XpRoleReward"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("GuildId") - .IsUnique(); - - b.ToTable("XpSettings"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<DateTime?>("DateAdded") - .HasColumnType("TEXT"); - - b.Property<bool>("IsUsing") - .HasColumnType("INTEGER"); - - b.Property<string>("ItemKey") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property<int>("ItemType") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UserId", "ItemType", "ItemKey") - .IsUnique(); - - b.ToTable("XpShopOwnedItem"); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Count") - .HasColumnType("INTEGER"); - - b.Property<int>("FishId") - .HasColumnType("INTEGER"); - - b.Property<int>("MaxStars") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("UserId", "FishId"); - - b.ToTable("FishCatch"); - }); - - modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int?>("Bait") - .HasColumnType("INTEGER"); - - b.Property<int?>("Pole") - .HasColumnType("INTEGER"); - - b.Property<int>("Skill") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("UserFishStats"); - }); - - modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => - { - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<ulong>("RoleId") - .HasColumnType("INTEGER"); - - b.HasKey("GuildId", "UserId", "RoleId"); - - b.HasIndex("GuildId"); - - b.HasIndex("GuildId", "UserId"); - - b.ToTable("UserRole"); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<ulong>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<float>("Cooldown") - .HasColumnType("REAL"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("RateType") - .HasColumnType("INTEGER"); - - b.Property<long>("XpAmount") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "ChannelId", "RateType"); - - b.ToTable("ChannelXpConfig"); - }); - - modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<float>("Cooldown") - .HasColumnType("REAL"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<int>("RateType") - .HasColumnType("INTEGER"); - - b.Property<long>("XpAmount") - .HasColumnType("INTEGER"); - - b.Property<string>("XpTemplateUrl") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasAlternateKey("GuildId", "RateType"); - - b.ToTable("GuildXpConfig"); - }); - - modelBuilder.Entity("EllieBot.Services.GreetSettings", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("AutoDeleteTimer") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(0); - - b.Property<ulong?>("ChannelId") - .HasColumnType("INTEGER"); - - b.Property<int>("GreetType") - .HasColumnType("INTEGER"); - - b.Property<ulong>("GuildId") - .HasColumnType("INTEGER"); - - b.Property<bool>("IsEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER") - .HasDefaultValue(false); - - b.Property<string>("MessageText") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("GuildId", "GreetType") - .IsUnique(); - - b.ToTable("GreetSettings"); - }); - - modelBuilder.Entity("EllieBot.Services.Rakeback", b => - { - b.Property<ulong>("UserId") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<decimal>("Amount") - .HasColumnType("TEXT"); - - b.HasKey("UserId"); - - b.ToTable("Rakeback"); - }); - - modelBuilder.Entity("EllieBot.Services.UserBetStats", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property<int>("Game") - .HasColumnType("INTEGER"); - - b.Property<long>("LoseCount") - .HasColumnType("INTEGER"); - - b.Property<long>("MaxBet") - .HasColumnType("INTEGER"); - - b.Property<long>("MaxWin") - .HasColumnType("INTEGER"); - - b.Property<decimal>("PaidOut") - .HasColumnType("TEXT"); - - b.Property<decimal>("TotalBet") - .HasColumnType("TEXT"); - - b.Property<ulong>("UserId") - .HasColumnType("INTEGER"); - - b.Property<long>("WinCount") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("MaxWin"); - - b.HasIndex("UserId", "Game") - .IsUnique(); - - b.ToTable("UserBetStats"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => - { - b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) - .WithMany("IgnoredChannels") - .HasForeignKey("AntiSpamSettingId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => - { - b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") - .WithMany("Users") - .HasForeignKey("ChannelId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Channel"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Applicants") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Bans") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Club"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("Owner"); - }); - - modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => - { - b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") - .WithMany("Members") - .HasForeignKey("ClubId") - .OnDelete(DeleteBehavior.NoAction); - - b.Navigation("Club"); - }); + b.ToTable("FeedSub"); + }); modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterInvitesChannelIds") - .HasForeignKey("GuildFilterConfigId"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilterChannelId"); + }); modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterLinksChannelIds") - .HasForeignKey("GuildFilterConfigId"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilterLinksChannelId"); + }); modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilterWordsChannelIds") - .HasForeignKey("GuildFilterConfigId"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildFilterConfigId"); + + b.ToTable("FilterWordsChannelId"); + }); modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => - { - b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) - .WithMany("FilteredWords") - .HasForeignKey("GuildFilterConfigId"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => - { - b.HasOne("EllieBot.Db.Models.GiveawayModel", null) - .WithMany("Participants") - .HasForeignKey("GiveawayId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => - { - b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") - .WithMany("LogIgnores") - .HasForeignKey("LogSettingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.Property<int?>("GuildFilterConfigId") + .HasColumnType("INTEGER"); - b.Navigation("LogSetting"); - }); + b.Property<string>("Word") + .HasColumnType("TEXT"); - modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => - { - b.HasOne("EllieBot.Db.Models.GuildConfig", null) - .WithMany("Permissions") - .HasForeignKey("GuildConfigId"); - }); + b.HasKey("Id"); - modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => - { - b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) - .WithMany("Songs") - .HasForeignKey("MusicPlaylistId") - .OnDelete(DeleteBehavior.Cascade); - }); + b.HasIndex("GuildFilterConfigId"); - modelBuilder.Entity("EllieBot.Db.Models.Sar", b => - { - b.HasOne("EllieBot.Db.Models.SarGroup", null) - .WithMany("Roles") - .HasForeignKey("SarGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.ToTable("FilteredWord"); + }); - modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => - { - b.HasOne("EllieBot.Db.Models.ShopEntry", null) - .WithMany("Items") - .HasForeignKey("ShopEntryId") - .OnDelete(DeleteBehavior.Cascade); - }); + modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Blacklist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Navigation("StreamRoleSettings"); - }); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => - { - b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") - .WithMany("Whitelist") - .HasForeignKey("StreamRoleSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Navigation("StreamRoleSettings"); - }); + b.HasKey("Id"); - modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => - { - b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) - .WithMany("Items") - .HasForeignKey("ArchiveId") - .OnDelete(DeleteBehavior.Cascade); - }); + b.HasIndex("GuildId", "ChannelId") + .IsUnique(); - modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") - .WithMany() - .HasForeignKey("AffinityId"); + b.ToTable("FlagTranslateChannel"); + }); - b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") - .WithMany() - .HasForeignKey("ClaimerId"); + modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") - .WithOne() - .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Navigation("Affinity"); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - b.Navigation("Claimer"); + b.Property<string>("Message") + .HasColumnType("TEXT"); - b.Navigation("Waifu"); - }); + b.Property<string>("PrettyName") + .HasColumnType("TEXT"); - modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => - { - b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") - .WithMany("Items") - .HasForeignKey("WaifuInfoId"); + b.Property<int>("Type") + .HasColumnType("INTEGER"); - b.Navigation("WaifuInfo"); - }); + b.Property<string>("Username") + .HasColumnType("TEXT"); - modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => - { - b.HasOne("EllieBot.Db.Models.DiscordUser", "New") - .WithMany() - .HasForeignKey("NewId"); + b.HasKey("Id"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") - .WithMany() - .HasForeignKey("OldId"); + b.HasIndex("GuildId", "Username", "Type"); - b.HasOne("EllieBot.Db.Models.DiscordUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.ToTable("FollowedStream"); + }); - b.Navigation("New"); + modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Navigation("Old"); + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); - b.Navigation("User"); - }); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("CurrencyRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); - modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => - { - b.HasOne("EllieBot.Db.Models.XpSettings", null) - .WithMany("RoleRewards") - .HasForeignKey("XpSettingsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasKey("Id"); - modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => - { - b.Navigation("IgnoredChannels"); - }); + b.HasIndex("GuildId", "ChannelId") + .IsUnique(); - modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => - { - b.Navigation("Items"); - }); + b.ToTable("GCChannelId"); + }); - modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => - { - b.Navigation("Users"); - }); + modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => - { - b.Navigation("Applicants"); + b.Property<decimal>("Bet") + .HasColumnType("TEXT"); - b.Navigation("Bans"); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); - b.Navigation("Members"); - }); + b.Property<string>("Feature") + .HasColumnType("TEXT"); + + b.Property<decimal>("PaidOut") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Feature") + .IsUnique(); + + b.ToTable("GamblingStats"); + }); modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => - { - b.Navigation("Participants"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("EndsAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("GiveawayModel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("GiveawayId") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GiveawayId", "UserId") + .IsUnique(); + + b.ToTable("GiveawayUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("ErrorColor") + .HasMaxLength(9) + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("OkColor") + .HasMaxLength(9) + .HasColumnType("TEXT"); + + b.Property<string>("PendingColor") + .HasMaxLength(9) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("GuildColors"); + }); modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => - { - b.Navigation("Permissions"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("AutoAssignRoleIds") + .HasColumnType("TEXT"); + + b.Property<bool>("CleverbotEnabled") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("DeleteMessageOnCommand") + .HasColumnType("INTEGER"); + + b.Property<bool>("DeleteStreamOnlineMessage") + .HasColumnType("INTEGER"); + + b.Property<bool>("DisableGlobalExpressions") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("GameVoiceChannel") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Locale") + .HasColumnType("TEXT"); + + b.Property<string>("MuteRoleName") + .HasColumnType("TEXT"); + + b.Property<bool>("NotifyStreamOffline") + .HasColumnType("INTEGER"); + + b.Property<string>("PermissionRole") + .HasColumnType("TEXT"); + + b.Property<string>("Prefix") + .HasColumnType("TEXT"); + + b.Property<bool>("StickyRoles") + .HasColumnType("INTEGER"); + + b.Property<string>("TimeZoneId") + .HasColumnType("TEXT"); + + b.Property<bool>("VerboseErrors") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property<bool>("VerbosePermissions") + .HasColumnType("INTEGER"); + + b.Property<int>("WarnExpireAction") + .HasColumnType("INTEGER"); + + b.Property<int>("WarnExpireHours") + .HasColumnType("INTEGER"); + + b.Property<bool>("WarningsInitialized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.HasIndex("WarnExpireHours"); + + b.ToTable("GuildConfigs"); + }); modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => - { - b.Navigation("FilterInvitesChannelIds"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Navigation("FilterLinksChannelIds"); + b.Property<bool>("FilterInvites") + .HasColumnType("INTEGER"); - b.Navigation("FilterWordsChannelIds"); + b.Property<bool>("FilterLinks") + .HasColumnType("INTEGER"); - b.Navigation("FilteredWords"); - }); + b.Property<bool>("FilterWords") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.ToTable("GuildFilterConfig"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b => + { + b.Property<ulong>("GuildId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.HasKey("GuildId"); + + b.ToTable("HoneyPotChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("ItemType") + .HasColumnType("INTEGER"); + + b.Property<ulong>("LogItemId") + .HasColumnType("INTEGER"); + + b.Property<int>("LogSettingId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LogSettingId", "LogItemId", "ItemType") + .IsUnique(); + + b.ToTable("IgnoredLogChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId") + .IsUnique(); + + b.ToTable("ImageOnlyChannels"); + }); modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => - { - b.Navigation("LogIgnores"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelCreatedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelDestroyedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelUpdatedId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogOtherId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogUserPresenceId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogVoicePresenceId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogVoicePresenceTTSId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("LogWarnsId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("MessageDeletedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("MessageUpdatedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ThreadCreatedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ThreadDeletedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserBannedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserJoinedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserLeftId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserMutedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserUnbannedId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("UserUpdatedId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("LogSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<bool>("AutoDisconnect") + .HasColumnType("INTEGER"); + + b.Property<bool>("AutoPlay") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("MusicChannelId") + .HasColumnType("INTEGER"); + + b.Property<int>("PlayerRepeat") + .HasColumnType("INTEGER"); + + b.Property<int>("QualityPreset") + .HasColumnType("INTEGER"); + + b.Property<int>("Volume") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(100); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("MusicPlayerSettings"); + }); modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => - { - b.Navigation("Songs"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("Author") + .HasColumnType("TEXT"); + + b.Property<ulong>("AuthorId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("MusicPlaylists"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("MutedUserId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<uint>("Color") + .HasColumnType("INTEGER"); + + b.Property<ulong>("OwnerId") + .HasColumnType("INTEGER"); + + b.Property<int>("Position") + .HasColumnType("INTEGER"); + + b.Property<long>("Price") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasAlternateKey("Position"); + + b.HasIndex("OwnerId"); + + b.ToTable("NCPixel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Notify", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong?>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .IsRequired() + .HasMaxLength(10000) + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "Type"); + + b.ToTable("Notify"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b => + { + b.Property<ulong>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("AmountCents") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("LastCharge") + .HasColumnType("TEXT"); + + b.Property<string>("UniquePlatformUserId") + .HasColumnType("TEXT"); + + b.Property<DateTime>("ValidThru") + .HasColumnType("TEXT"); + + b.HasKey("UserId"); + + b.HasIndex("UniquePlatformUserId") + .IsUnique(); + + b.ToTable("Patrons"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("GuildConfigId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Index") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsCustomCommand") + .HasColumnType("INTEGER"); + + b.Property<int>("PrimaryTarget") + .HasColumnType("INTEGER"); + + b.Property<ulong>("PrimaryTargetId") + .HasColumnType("INTEGER"); + + b.Property<int>("SecondaryTarget") + .HasColumnType("INTEGER"); + + b.Property<string>("SecondaryTargetName") + .HasColumnType("TEXT"); + + b.Property<bool>("State") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildConfigId"); + + b.HasIndex("GuildId"); + + b.ToTable("Permissions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<long>("Amount") + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Password") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId") + .IsUnique(); + + b.ToTable("PlantedCurrency"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("MusicPlaylistId") + .HasColumnType("INTEGER"); + + b.Property<string>("Provider") + .HasColumnType("TEXT"); + + b.Property<int>("ProviderType") + .HasColumnType("INTEGER"); + + b.Property<string>("Query") + .HasColumnType("TEXT"); + + b.Property<string>("Title") + .HasColumnType("TEXT"); + + b.Property<string>("Uri") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MusicPlaylistId"); + + b.ToTable("PlaylistSong"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Quote", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("AuthorId") + .HasColumnType("INTEGER"); + + b.Property<string>("AuthorName") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Keyword") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("Keyword"); + + b.ToTable("Quotes"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Emote") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property<int>("Group") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("LevelReq") + .HasColumnType("INTEGER"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("MessageId", "Emote") + .IsUnique(); + + b.ToTable("ReactionRoles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Reminder", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsPrivate") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<ulong>("ServerId") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("When") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("When"); + + b.ToTable("Reminders"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Repeater", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<TimeSpan>("Interval") + .HasColumnType("TEXT"); + + b.Property<ulong?>("LastMessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Message") + .HasColumnType("TEXT"); + + b.Property<bool>("NoRedundant") + .HasColumnType("INTEGER"); + + b.Property<TimeSpan?>("StartTimeOfDay") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Repeaters"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<long>("AmountRewardedThisMonth") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<DateTime>("LastReward") + .HasColumnType("TEXT"); + + b.Property<string>("PlatformUserId") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("PlatformUserId") + .IsUnique(); + + b.ToTable("RewardedUsers"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("Status") + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("RotatingStatus"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("LevelReq") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("SarGroupId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "RoleId"); + + b.HasIndex("SarGroupId"); + + b.ToTable("Sar"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsEnabled") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("SarAutoDelete"); + }); modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => - { - b.Navigation("Roles"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("GroupNumber") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsExclusive") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property<ulong?>("RoleReq") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "GroupNumber"); + + b.ToTable("SarGroup"); + }); modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => - { - b.Navigation("Items"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("AuthorId") + .HasColumnType("INTEGER"); + + b.Property<string>("Command") + .HasColumnType("TEXT"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Index") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<int>("Price") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<string>("RoleName") + .HasColumnType("TEXT"); + + b.Property<ulong?>("RoleRequirement") + .HasColumnType("INTEGER"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "Index") + .IsUnique(); + + b.ToTable("ShopEntry"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("ShopEntryId") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ShopEntryId"); + + b.ToTable("ShopEntryItem"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "RoleId") + .IsUnique(); + + b.ToTable("SlowmodeIgnoredRole"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("SlowmodeIgnoredUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("RoleIds") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("StickyRoles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<int>("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("StreamOnlineMessages"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<string>("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("StreamRoleSettingsId"); + + b.ToTable("StreamRoleBlacklistedUser"); + }); modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => - { - b.Navigation("Blacklist"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Navigation("Whitelist"); - }); + b.Property<ulong>("AddRoleId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("Enabled") + .HasColumnType("INTEGER"); + + b.Property<ulong>("FromRoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("GuildConfigId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Keyword") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("StreamRoleSettingsId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<string>("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("StreamRoleSettingsId"); + + b.ToTable("StreamRoleWhitelistedUser"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TempRole", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime>("ExpiresAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("Remove") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "UserId", "RoleId"); + + b.HasIndex("ExpiresAt"); + + b.ToTable("TempRole"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("ArchiveId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsDone") + .HasColumnType("INTEGER"); + + b.Property<string>("Todo") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ArchiveId"); + + b.HasIndex("UserId"); + + b.ToTable("Todos"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("UnbanTimer"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("UnmuteAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("UnmuteTimer"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("UnbanAt") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "UserId") + .IsUnique(); + + b.ToTable("UnroleTimer"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<long>("Xp") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("UserId"); + + b.HasIndex("Xp"); + + b.HasIndex("UserId", "GuildId") + .IsUnique(); + + b.ToTable("UserXpStats"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("VoiceChannelId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "VoiceChannelId") + .IsUnique(); + + b.ToTable("VcRoleInfo"); + }); modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => - { - b.Navigation("Items"); - }); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("AffinityId") + .HasColumnType("INTEGER"); + + b.Property<int?>("ClaimerId") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<long>("Price") + .HasColumnType("INTEGER"); + + b.Property<int>("WaifuId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AffinityId"); + + b.HasIndex("ClaimerId"); + + b.HasIndex("Price"); + + b.HasIndex("WaifuId") + .IsUnique(); + + b.ToTable("WaifuInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<string>("ItemEmoji") + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .HasColumnType("TEXT"); + + b.Property<int?>("WaifuInfoId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("WaifuInfoId"); + + b.ToTable("WaifuItem"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int?>("NewId") + .HasColumnType("INTEGER"); + + b.Property<int?>("OldId") + .HasColumnType("INTEGER"); + + b.Property<int>("UpdateType") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("NewId"); + + b.HasIndex("OldId"); + + b.HasIndex("UserId"); + + b.ToTable("WaifuUpdates"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Warning", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("Forgiven") + .HasColumnType("INTEGER"); + + b.Property<string>("ForgivenBy") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<string>("Moderator") + .HasColumnType("TEXT"); + + b.Property<string>("Reason") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<long>("Weight") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(1L); + + b.HasKey("Id"); + + b.HasIndex("DateAdded"); + + b.HasIndex("GuildId"); + + b.HasIndex("UserId"); + + b.ToTable("Warnings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Count") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("Punishment") + .HasColumnType("INTEGER"); + + b.Property<ulong?>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("Time") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "Count"); + + b.ToTable("WarningPunishment"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Amount") + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("Level") + .HasColumnType("INTEGER"); + + b.Property<int>("XpSettingsId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("XpSettingsId"); + + b.HasIndex("Level", "XpSettingsId") + .IsUnique(); + + b.ToTable("XpCurrencyReward"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<int>("Level") + .HasColumnType("INTEGER"); + + b.Property<bool>("Remove") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.Property<int>("XpSettingsId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("XpSettingsId", "Level") + .IsUnique(); + + b.ToTable("XpRoleReward"); + }); modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => - { - b.Navigation("CurrencyRewards"); + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); - b.Navigation("RoleRewards"); - }); + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("GuildId") + .IsUnique(); + + b.ToTable("XpSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<DateTime?>("DateAdded") + .HasColumnType("TEXT"); + + b.Property<bool>("IsUsing") + .HasColumnType("INTEGER"); + + b.Property<string>("ItemKey") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<int>("ItemType") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId", "ItemType", "ItemKey") + .IsUnique(); + + b.ToTable("XpShopOwnedItem"); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Count") + .HasColumnType("INTEGER"); + + b.Property<int>("FishId") + .HasColumnType("INTEGER"); + + b.Property<int>("MaxStars") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("UserId", "FishId"); + + b.ToTable("FishCatch"); + }); + + modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int?>("Bait") + .HasColumnType("INTEGER"); + + b.Property<int?>("Pole") + .HasColumnType("INTEGER"); + + b.Property<int>("Skill") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("UserFishStats"); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("MessageId") + .HasColumnType("INTEGER"); + + b.Property<string>("Text") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("When") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId"); + + b.HasIndex("UserId"); + + b.HasIndex("When"); + + b.ToTable("ScheduledCommand"); + }); + + modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b => + { + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<ulong>("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("GuildId", "UserId", "RoleId"); + + b.HasIndex("GuildId"); + + b.HasIndex("GuildId", "UserId"); + + b.ToTable("UserRole"); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<ulong>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<float>("Cooldown") + .HasColumnType("REAL"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("RateType") + .HasColumnType("INTEGER"); + + b.Property<long>("XpAmount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "ChannelId", "RateType"); + + b.ToTable("ChannelXpConfig"); + }); + + modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<float>("Cooldown") + .HasColumnType("REAL"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<int>("RateType") + .HasColumnType("INTEGER"); + + b.Property<long>("XpAmount") + .HasColumnType("INTEGER"); + + b.Property<string>("XpTemplateUrl") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasAlternateKey("GuildId", "RateType"); + + b.ToTable("GuildXpConfig"); + }); + + modelBuilder.Entity("EllieBot.Services.GreetSettings", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("AutoDeleteTimer") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property<ulong?>("ChannelId") + .HasColumnType("INTEGER"); + + b.Property<int>("GreetType") + .HasColumnType("INTEGER"); + + b.Property<ulong>("GuildId") + .HasColumnType("INTEGER"); + + b.Property<bool>("IsEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(false); + + b.Property<string>("MessageText") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("GuildId", "GreetType") + .IsUnique(); + + b.ToTable("GreetSettings"); + }); + + modelBuilder.Entity("EllieBot.Services.Rakeback", b => + { + b.Property<ulong>("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<decimal>("Amount") + .HasColumnType("TEXT"); + + b.HasKey("UserId"); + + b.ToTable("Rakeback"); + }); + + modelBuilder.Entity("EllieBot.Services.UserBetStats", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("Game") + .HasColumnType("INTEGER"); + + b.Property<long>("LoseCount") + .HasColumnType("INTEGER"); + + b.Property<long>("MaxBet") + .HasColumnType("INTEGER"); + + b.Property<long>("MaxWin") + .HasColumnType("INTEGER"); + + b.Property<decimal>("PaidOut") + .HasColumnType("TEXT"); + + b.Property<decimal>("TotalBet") + .HasColumnType("TEXT"); + + b.Property<ulong>("UserId") + .HasColumnType("INTEGER"); + + b.Property<long>("WinCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("MaxWin"); + + b.HasIndex("UserId", "Game") + .IsUnique(); + + b.ToTable("UserBetStats"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b => + { + b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null) + .WithMany("IgnoredChannels") + .HasForeignKey("AntiSpamSettingId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b => + { + b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel") + .WithMany("Users") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Applicants") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Bans") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Club"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId") + .OnDelete(DeleteBehavior.SetNull); + + b.Navigation("Owner"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b => + { + b.HasOne("EllieBot.Db.Models.ClubInfo", "Club") + .WithMany("Members") + .HasForeignKey("ClubId") + .OnDelete(DeleteBehavior.NoAction); + + b.Navigation("Club"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterInvitesChannelIds") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterLinksChannelIds") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilterWordsChannelIds") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b => + { + b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null) + .WithMany("FilteredWords") + .HasForeignKey("GuildFilterConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b => + { + b.HasOne("EllieBot.Db.Models.GiveawayModel", null) + .WithMany("Participants") + .HasForeignKey("GiveawayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b => + { + b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting") + .WithMany("LogIgnores") + .HasForeignKey("LogSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("LogSetting"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b => + { + b.HasOne("EllieBot.Db.Models.GuildConfig", null) + .WithMany("Permissions") + .HasForeignKey("GuildConfigId"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b => + { + b.HasOne("EllieBot.Db.Models.MusicPlaylist", null) + .WithMany("Songs") + .HasForeignKey("MusicPlaylistId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.Sar", b => + { + b.HasOne("EllieBot.Db.Models.SarGroup", null) + .WithMany("Roles") + .HasForeignKey("SarGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b => + { + b.HasOne("EllieBot.Db.Models.ShopEntry", null) + .WithMany("Items") + .HasForeignKey("ShopEntryId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Blacklist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b => + { + b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings") + .WithMany("Whitelist") + .HasForeignKey("StreamRoleSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StreamRoleSettings"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b => + { + b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null) + .WithMany("Items") + .HasForeignKey("ArchiveId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity") + .WithMany() + .HasForeignKey("AffinityId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer") + .WithMany() + .HasForeignKey("ClaimerId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu") + .WithOne() + .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Affinity"); + + b.Navigation("Claimer"); + + b.Navigation("Waifu"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b => + { + b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo") + .WithMany("Items") + .HasForeignKey("WaifuInfoId"); + + b.Navigation("WaifuInfo"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b => + { + b.HasOne("EllieBot.Db.Models.DiscordUser", "New") + .WithMany() + .HasForeignKey("NewId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "Old") + .WithMany() + .HasForeignKey("OldId"); + + b.HasOne("EllieBot.Db.Models.DiscordUser", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("New"); + + b.Navigation("Old"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("CurrencyRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b => + { + b.HasOne("EllieBot.Db.Models.XpSettings", null) + .WithMany("RoleRewards") + .HasForeignKey("XpSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b => + { + b.Navigation("IgnoredChannels"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b => + { + b.Navigation("Users"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b => + { + b.Navigation("Applicants"); + + b.Navigation("Bans"); + + b.Navigation("Members"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b => + { + b.Navigation("Participants"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b => + { + b.Navigation("Permissions"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b => + { + b.Navigation("FilterInvitesChannelIds"); + + b.Navigation("FilterLinksChannelIds"); + + b.Navigation("FilterWordsChannelIds"); + + b.Navigation("FilteredWords"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b => + { + b.Navigation("LogIgnores"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b => + { + b.Navigation("Songs"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b => + { + b.Navigation("Blacklist"); + + b.Navigation("Whitelist"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b => + { + b.Navigation("CurrencyRewards"); + + b.Navigation("RoleRewards"); + }); #pragma warning restore 612, 618 } } -} \ No newline at end of file +} diff --git a/src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs b/src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs new file mode 100644 index 0000000..300ed4a --- /dev/null +++ b/src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs @@ -0,0 +1,150 @@ +using LinqToDB; +using LinqToDB.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using EllieBot.Common.ModuleBehaviors; +using EllieBot.Modules.Administration; + +namespace EllieBot.Modules.Utility.Scheduled; + +public sealed class ScheduleCommandService( + DbService db, + ICommandHandler cmdHandler, + DiscordSocketClient client, + ShardData shardData) : IEService, IReadyExecutor +{ + private TaskCompletionSource _tcs = new(); + + public async Task OnReadyAsync() + { + while (true) + { + _tcs = new(); + + // get the next scheduled command + var scheduledCommand = await db.GetDbContext() + .GetTable<ScheduledCommand>() + .Where(x => Queries.GuildOnShard(x.GuildId, shardData.TotalShards, shardData.ShardId)) + .OrderBy(x => x.When) + .FirstOrDefaultAsyncLinqToDB(); + + if (scheduledCommand is null) + { + await _tcs.Task; + continue; + } + + var now = DateTime.UtcNow; + if (scheduledCommand.When > now) + { + var diff = scheduledCommand.When - now; + await Task.WhenAny(Task.Delay(diff), _tcs.Task); + continue; + } + + await db.GetDbContext() + .GetTable<ScheduledCommand>() + .Where(x => x.Id == scheduledCommand.Id) + .DeleteAsync(); + + var guild = client.GetGuild(scheduledCommand.GuildId); + var channel = guild?.GetChannel(scheduledCommand.ChannelId) as ISocketMessageChannel; + + if (guild is null || channel is null) + continue; + + var message = await channel.GetMessageAsync(scheduledCommand.MessageId) as IUserMessage; + var user = await (guild as IGuild).GetUserAsync(scheduledCommand.UserId); + + if (message is null || user is null) + continue; + + _ = Task.Run(async () + => await cmdHandler.TryRunCommand(guild, + channel, + new DoAsUserMessage(message, user, scheduledCommand.Text))); + } + } + + /// <summary> + /// Adds a scheduled command to be executed after the specified time + /// </summary> + /// <param name="guildId">ID of the guild</param> + /// <param name="channelId">ID of the channel where the command was issued</param> + /// <param name="messageId">ID of the message that triggered this command</param> + /// <param name="userId">ID of the user who scheduled the command</param> + /// <param name="commandText">The command text to execute</param> + /// <param name="when">Time span after which the command will be executed</param> + /// <returns>True if command was added, false if user reached the limit</returns> + public async Task<bool> AddScheduledCommandAsync( + ulong guildId, + ulong channelId, + ulong messageId, + ulong userId, + string commandText, + TimeSpan when) + { + ArgumentException.ThrowIfNullOrWhiteSpace(commandText, nameof(commandText)); + + await using var uow = db.GetDbContext(); + + var count = await uow.GetTable<ScheduledCommand>() + .Where(x => x.GuildId == guildId && x.UserId == userId) + .CountAsyncLinqToDB(); + + if (count >= 5) + return false; + + await uow.GetTable<ScheduledCommand>() + .InsertAsync(() => new() + { + GuildId = guildId, + UserId = userId, + Text = commandText, + When = DateTime.UtcNow + when, + ChannelId = channelId, + MessageId = messageId + }); + + _tcs.TrySetResult(); + + return true; + } + + /// <summary> + /// Gets all scheduled commands for a specific user in a guild + /// </summary> + /// <param name="guildId">Guild ID</param> + /// <param name="userId">User ID</param> + /// <returns>List of scheduled commands</returns> + public async Task<List<ScheduledCommand>> GetUserScheduledCommandsAsync(ulong guildId, ulong userId) + { + await using var uow = db.GetDbContext(); + + return await uow.GetTable<ScheduledCommand>() + .Where(x => x.GuildId == guildId && x.UserId == userId) + .OrderBy(x => x.When) + .AsNoTracking() + .ToListAsyncLinqToDB(); + } + + /// <summary> + /// Deletes a scheduled command by its ID + /// </summary> + /// <param name="id">ID of the scheduled command</param> + /// <param name="guildId">Guild ID</param> + /// <param name="userId">User ID</param> + /// <returns>True if command was deleted, false otherwise</returns> + public async Task<bool> DeleteScheduledCommandAsync(int id, ulong guildId, ulong userId) + { + await using var uow = db.GetDbContext(); + + var result = await uow.GetTable<ScheduledCommand>() + .Where(x => x.Id == id && x.GuildId == guildId && x.UserId == userId) + .DeleteAsync(); + + if (result > 0) + _tcs.TrySetResult(); + + return result > 0; + } +} \ No newline at end of file diff --git a/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs new file mode 100644 index 0000000..eb14f1f --- /dev/null +++ b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace EllieBot.Modules.Utility.Scheduled; + +public sealed class ScheduledCommand +{ + [Key] + public int Id { get; set; } + + public ulong UserId { get; set; } + public ulong ChannelId { get; set; } + public ulong GuildId { get; set; } + public ulong MessageId { get; set; } + public string Text { get; set; } = string.Empty; + public DateTime When { get; set; } +} + +public sealed class ScheduledCommandEntityConfiguration : IEntityTypeConfiguration<ScheduledCommand> +{ + public void Configure(EntityTypeBuilder<ScheduledCommand> builder) + { + builder.HasIndex(x => x.UserId); + builder.HasIndex(x => x.GuildId); + builder.HasIndex(x => x.When); + } +} \ No newline at end of file diff --git a/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs new file mode 100644 index 0000000..575d1ac --- /dev/null +++ b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs @@ -0,0 +1,89 @@ +using EllieBot.Common.TypeReaders.Models; + +namespace EllieBot.Modules.Utility.Scheduled; + +public partial class Utility +{ + [Group] + public class ScheduledCommands(ScheduleCommandService scs) : EllieModule + { + [Cmd] + [RequireContext(ContextType.Guild)] + public async Task ScheduleList() + { + var scheduledCommands = await scs.GetUserScheduledCommandsAsync(ctx.Guild.Id, ctx.User.Id); + + if (scheduledCommands.Count == 0) + { + await Response().Error(strs.schedule_list_none).SendAsync(); + return; + } + + await Response() + .Paginated() + .Items(scheduledCommands) + .PageSize(5) + .Page((pageCommands, _) => + { + var eb = CreateEmbed() + .WithTitle(GetText(strs.schedule_list_title)) + .WithAuthor(ctx.User) + .WithOkColor(); + + foreach (var cmd in pageCommands) + { + eb.AddField( + $"`{GetText(strs.schedule_id)}:` {cmd.Id}", + $""" + `{GetText(strs.schedule_command)}:` {cmd.Text} + `{GetText(strs.schedule_when)}:` {TimestampTag.FromDateTime(cmd.When, TimestampTagStyles.Relative)} + """); + } + + return eb; + }) + .SendAsync(); + } + + [Cmd] + [RequireContext(ContextType.Guild)] + public async Task ScheduleDelete([Leftover] int id) + { + var success = await scs.DeleteScheduledCommandAsync(id, ctx.Guild.Id, ctx.User.Id); + + if (success) + { + await Response().Confirm(strs.schedule_deleted(id)).SendAsync(); + } + else + { + await Response().Error(strs.schedule_delete_error).SendAsync(); + } + } + + [Cmd] + [RequireContext(ContextType.Guild)] + public async Task ScheduleAdd(ParsedTimespan timeString, [Leftover] string commandText) + { + if (timeString.Time < TimeSpan.FromMinutes(1)) + return; + + var success = await scs.AddScheduledCommandAsync( + ctx.Guild.Id, + ctx.Channel.Id, + ctx.Message.Id, + ctx.User.Id, + commandText, + timeString.Time); + + if (success) + { + await Response().Confirm(strs.schedule_add_success).SendAsync(); + } + else + { + await Response().Error(strs.schedule_add_error).SendAsync(); + } + } + } +} \ No newline at end of file diff --git a/src/EllieBot/_common/DoAsUserMessage.cs b/src/EllieBot/_common/DoAsUserMessage.cs index e9c9d55..cc369f9 100644 --- a/src/EllieBot/_common/DoAsUserMessage.cs +++ b/src/EllieBot/_common/DoAsUserMessage.cs @@ -8,7 +8,7 @@ public sealed class DoAsUserMessage : IUserMessage private IUserMessage _msg; private readonly IUser _user; - public DoAsUserMessage(SocketUserMessage msg, IUser user, string message) + public DoAsUserMessage(IUserMessage msg, IUser user, string message) { _msg = msg; _user = user; diff --git a/src/EllieBot/strings/aliases.yml b/src/EllieBot/strings/aliases.yml index f707aa0..1ba0dc7 100644 --- a/src/EllieBot/strings/aliases.yml +++ b/src/EllieBot/strings/aliases.yml @@ -1614,4 +1614,16 @@ userrolename: - urn userroleicon: - userroleicon - - uri \ No newline at end of file + - uri +schedulelist: + - schedulelist + - schl + - schli +scheduledelete: + - scheduledelete + - schd + - schdel +scheduleadd: + - scheduleadd + - scha + - schadd \ No newline at end of file diff --git a/src/EllieBot/strings/commands/commands.en-US.yml b/src/EllieBot/strings/commands/commands.en-US.yml index 98f8a2b..3c17d20 100644 --- a/src/EllieBot/strings/commands/commands.en-US.yml +++ b/src/EllieBot/strings/commands/commands.en-US.yml @@ -5073,4 +5073,31 @@ userrolename: - role: desc: 'The assigned role to rename.' name: - desc: 'The new name for the role.' \ No newline at end of file + desc: 'The new name for the role.' +schedulelist: + desc: |- + Lists your scheduled commands in the current server. + ex: + - '' + params: + - { } +scheduledelete: + desc: |- + Deletes one of your scheduled commands by its ID. + ex: + - '5' + params: + - id: + desc: "The ID of the scheduled command to delete." +scheduleadd: + desc: |- + Schedules a command to be executed after the specified amount of time. + You can schedule up to 5 commands at a time. + ex: + - '1h5m .say Hello after 1 hour and 5 minutes' + - '3h .br all' + params: + - time: + desc: "How long it takes for the command to execute. Example: 1h30m = 1 hour and 30 minutes" + - command: + desc: "Command that will be executed after the specified time has elapsed" \ No newline at end of file diff --git a/src/EllieBot/strings/responses/responses.en-US.json b/src/EllieBot/strings/responses/responses.en-US.json index 240a961..e28be28 100644 --- a/src/EllieBot/strings/responses/responses.en-US.json +++ b/src/EllieBot/strings/responses/responses.en-US.json @@ -1207,5 +1207,15 @@ "userrole_icon_invalid": "The role icon cannot be empty.", "userrole_hierarchy_error": "You can't assign or modify roles that are higher than or equal to your, or bots highest role.", "userrole_role_not_exists": "That role doesn't exist.", - "whos_playing_game": "{0} users are playing {1}" -} + "whos_playing_game": "{0} users are playing {1}", + "schedule_list_title": "Scheduled Commands", + "schedule_list_none": "You don't have any scheduled commands.", + "schedule_list_for_user": "Scheduled Commands", + "schedule_deleted": "Scheduled command #{0} successfully deleted.", + "schedule_delete_error": "Error deleting scheduled command.", + "schedule_id": "ID", + "schedule_command": "Command", + "schedule_when": "Executes At", + "schedule_add_success": "Scheduled command successfully added.", + "schedule_add_error": "You already have 5 scheduled commands. Please delete some before adding more." +} \ No newline at end of file