diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1574e384d..b751e6e90 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,12 +31,12 @@ variables:
build:
stage: build
script:
- - "dotnet publish -c Release -r linux-x64 --self-contained -o $LINUX_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
- - "dotnet publish -c Release -r linux-arm64 --self-contained -o $LINUX_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
- - "dotnet publish -c Release -r win-x64 --self-contained -o $WIN_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
- - "dotnet publish -c Release -r win-arm64 --self-contained -o $WIN_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
- - "dotnet publish -c Release -r osx-x64 --self-contained -o $MACOS_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
- - "dotnet publish -c Release -r osx-arm64 --self-contained -o $MACOS_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
+ - "dotnet publish -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true -o $LINUX_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
+ - "dotnet publish -c Release -r linux-arm64 --self-contained -p:PublishSingleFile=true -o $LINUX_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
+ - "dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o $WIN_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
+ - "dotnet publish -c Release -r win-arm64 --self-contained -p:PublishSingleFile=true -o $WIN_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
+ - "dotnet publish -c Release -r osx-x64 --self-contained -p:PublishSingleFile=true -o $MACOS_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
+ - "dotnet publish -c Release -r osx-arm64 --self-contained -p:PublishSingleFile=true -o $MACOS_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj"
artifacts:
paths:
- "$LINUX_X64_OUTPUT_DIR/"
@@ -109,7 +109,7 @@ test:
# script:
# - dotnet clean
# - dotnet restore -f --no-cache -v n
-# - dotnet publish -c Release --runtime win7-x64 /p:Version=$CI_COMMIT_TAG src/NadekoBot
+# - dotnet publish -c Release -p:PublishSingleFile=true --runtime win-x64 /p:Version=$CI_COMMIT_TAG src/NadekoBot
# - $env:NADEKOBOT_INSTALL_VERSION = $CI_COMMIT_TAG
# - iscc.exe "/O+" ".\exe_builder.iss"
# tags:
diff --git a/src/NadekoBot/GlobalUsings.cs b/src/NadekoBot/GlobalUsings.cs
index a37de50a7..f9c8a05d7 100644
--- a/src/NadekoBot/GlobalUsings.cs
+++ b/src/NadekoBot/GlobalUsings.cs
@@ -6,6 +6,7 @@ global using Serilog;
// nadekobot
global using NadekoBot;
+global using NadekoBot.Db;
global using NadekoBot.Services;
global using Nadeko.Common; // new project
global using NadekoBot.Common; // old + nadekobot specific things
diff --git a/src/NadekoBot/Migrations/Mysql/20240502233216_v5.Designer.cs b/src/NadekoBot/Migrations/Mysql/20240502233216_v5.Designer.cs
new file mode 100644
index 000000000..6c63f482c
--- /dev/null
+++ b/src/NadekoBot/Migrations/Mysql/20240502233216_v5.Designer.cs
@@ -0,0 +1,3830 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using NadekoBot.Db;
+
+#nullable disable
+
+namespace NadekoBot.Migrations.Mysql
+{
+ [DbContext(typeof(MysqlContext))]
+ [Migration("20240502233216_v5")]
+ partial class v5
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.4")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AntiAltSetting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Action")
+ .HasColumnType("int")
+ .HasColumnName("action");
+
+ b.Property("ActionDurationMinutes")
+ .HasColumnType("int")
+ .HasColumnName("actiondurationminutes");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("MinAge")
+ .HasColumnType("time(6)")
+ .HasColumnName("minage");
+
+ b.Property("RoleId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("roleid");
+
+ b.HasKey("Id")
+ .HasName("pk_antialtsetting");
+
+ b.HasIndex("GuildConfigId")
+ .IsUnique()
+ .HasDatabaseName("ix_antialtsetting_guildconfigid");
+
+ b.ToTable("antialtsetting", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AntiRaidSetting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Action")
+ .HasColumnType("int")
+ .HasColumnName("action");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("PunishDuration")
+ .HasColumnType("int")
+ .HasColumnName("punishduration");
+
+ b.Property("Seconds")
+ .HasColumnType("int")
+ .HasColumnName("seconds");
+
+ b.Property("UserThreshold")
+ .HasColumnType("int")
+ .HasColumnName("userthreshold");
+
+ b.HasKey("Id")
+ .HasName("pk_antiraidsetting");
+
+ b.HasIndex("GuildConfigId")
+ .IsUnique()
+ .HasDatabaseName("ix_antiraidsetting_guildconfigid");
+
+ b.ToTable("antiraidsetting", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AntiSpamIgnore", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("AntiSpamSettingId")
+ .HasColumnType("int")
+ .HasColumnName("antispamsettingid");
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.HasKey("Id")
+ .HasName("pk_antispamignore");
+
+ b.HasIndex("AntiSpamSettingId")
+ .HasDatabaseName("ix_antispamignore_antispamsettingid");
+
+ b.ToTable("antispamignore", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AntiSpamSetting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Action")
+ .HasColumnType("int")
+ .HasColumnName("action");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("MessageThreshold")
+ .HasColumnType("int")
+ .HasColumnName("messagethreshold");
+
+ b.Property("MuteTime")
+ .HasColumnType("int")
+ .HasColumnName("mutetime");
+
+ b.Property("RoleId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("roleid");
+
+ b.HasKey("Id")
+ .HasName("pk_antispamsetting");
+
+ b.HasIndex("GuildConfigId")
+ .IsUnique()
+ .HasDatabaseName("ix_antispamsetting_guildconfigid");
+
+ b.ToTable("antispamsetting", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.ArchivedTodoListModel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Name")
+ .HasColumnType("longtext")
+ .HasColumnName("name");
+
+ b.Property("UserId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("userid");
+
+ b.HasKey("Id")
+ .HasName("pk_todosarchive");
+
+ b.ToTable("todosarchive", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AutoCommand", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("ChannelName")
+ .HasColumnType("longtext")
+ .HasColumnName("channelname");
+
+ b.Property("CommandText")
+ .HasColumnType("longtext")
+ .HasColumnName("commandtext");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.Property("GuildName")
+ .HasColumnType("longtext")
+ .HasColumnName("guildname");
+
+ b.Property("Interval")
+ .HasColumnType("int")
+ .HasColumnName("interval");
+
+ b.Property("VoiceChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("voicechannelid");
+
+ b.Property("VoiceChannelName")
+ .HasColumnType("longtext")
+ .HasColumnName("voicechannelname");
+
+ b.HasKey("Id")
+ .HasName("pk_autocommands");
+
+ b.ToTable("autocommands", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AutoPublishChannel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.HasKey("Id")
+ .HasName("pk_autopublishchannel");
+
+ b.HasIndex("GuildId")
+ .IsUnique()
+ .HasDatabaseName("ix_autopublishchannel_guildid");
+
+ b.ToTable("autopublishchannel", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.AutoTranslateChannel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("AutoDelete")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("autodelete");
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .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("NadekoBot.Db.Models.AutoTranslateUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("int")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("Source")
+ .HasColumnType("longtext")
+ .HasColumnName("source");
+
+ b.Property("Target")
+ .HasColumnType("longtext")
+ .HasColumnName("target");
+
+ b.Property("UserId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("userid");
+
+ b.HasKey("Id")
+ .HasName("pk_autotranslateusers");
+
+ b.HasAlternateKey("ChannelId", "UserId")
+ .HasName("ak_autotranslateusers_channelid_userid");
+
+ b.ToTable("autotranslateusers", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.BanTemplate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.Property("PruneDays")
+ .HasColumnType("int")
+ .HasColumnName("prunedays");
+
+ b.Property("Text")
+ .HasColumnType("longtext")
+ .HasColumnName("text");
+
+ b.HasKey("Id")
+ .HasName("pk_bantemplates");
+
+ b.HasIndex("GuildId")
+ .IsUnique()
+ .HasDatabaseName("ix_bantemplates_guildid");
+
+ b.ToTable("bantemplates", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.BankUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Balance")
+ .HasColumnType("bigint")
+ .HasColumnName("balance");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("UserId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("userid");
+
+ b.HasKey("Id")
+ .HasName("pk_bankusers");
+
+ b.HasIndex("UserId")
+ .IsUnique()
+ .HasDatabaseName("ix_bankusers_userid");
+
+ b.ToTable("bankusers", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.BlacklistEntry", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("ItemId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("itemid");
+
+ b.Property("Type")
+ .HasColumnType("int")
+ .HasColumnName("type");
+
+ b.HasKey("Id")
+ .HasName("pk_blacklist");
+
+ b.ToTable("blacklist", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.ClubApplicants", b =>
+ {
+ b.Property("ClubId")
+ .HasColumnType("int")
+ .HasColumnName("clubid");
+
+ b.Property("UserId")
+ .HasColumnType("int")
+ .HasColumnName("userid");
+
+ b.HasKey("ClubId", "UserId")
+ .HasName("pk_clubapplicants");
+
+ b.HasIndex("UserId")
+ .HasDatabaseName("ix_clubapplicants_userid");
+
+ b.ToTable("clubapplicants", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.ClubBans", b =>
+ {
+ b.Property("ClubId")
+ .HasColumnType("int")
+ .HasColumnName("clubid");
+
+ b.Property("UserId")
+ .HasColumnType("int")
+ .HasColumnName("userid");
+
+ b.HasKey("ClubId", "UserId")
+ .HasName("pk_clubbans");
+
+ b.HasIndex("UserId")
+ .HasDatabaseName("ix_clubbans_userid");
+
+ b.ToTable("clubbans", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.ClubInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("Description")
+ .HasColumnType("longtext")
+ .HasColumnName("description");
+
+ b.Property("ImageUrl")
+ .HasColumnType("longtext")
+ .HasColumnName("imageurl");
+
+ b.Property("Name")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasColumnName("name")
+ .UseCollation("utf8mb4_bin");
+
+ b.Property("OwnerId")
+ .HasColumnType("int")
+ .HasColumnName("ownerid");
+
+ b.Property("Xp")
+ .HasColumnType("int")
+ .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("NadekoBot.Db.Models.CommandAlias", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("Mapping")
+ .HasColumnType("longtext")
+ .HasColumnName("mapping");
+
+ b.Property("Trigger")
+ .HasColumnType("longtext")
+ .HasColumnName("trigger");
+
+ b.HasKey("Id")
+ .HasName("pk_commandalias");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_commandalias_guildconfigid");
+
+ b.ToTable("commandalias", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.CommandCooldown", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CommandName")
+ .HasColumnType("longtext")
+ .HasColumnName("commandname");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("Seconds")
+ .HasColumnType("int")
+ .HasColumnName("seconds");
+
+ b.HasKey("Id")
+ .HasName("pk_commandcooldown");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_commandcooldown_guildconfigid");
+
+ b.ToTable("commandcooldown", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.CurrencyTransaction", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Amount")
+ .HasColumnType("bigint")
+ .HasColumnName("amount");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("Extra")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasColumnName("extra");
+
+ b.Property("Note")
+ .HasColumnType("longtext")
+ .HasColumnName("note");
+
+ b.Property("OtherId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("otherid")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasColumnName("type");
+
+ b.Property("UserId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("userid");
+
+ b.HasKey("Id")
+ .HasName("pk_currencytransactions");
+
+ b.HasIndex("UserId")
+ .HasDatabaseName("ix_currencytransactions_userid");
+
+ b.ToTable("currencytransactions", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.DelMsgOnCmdChannel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("State")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("state");
+
+ b.HasKey("Id")
+ .HasName("pk_delmsgoncmdchannel");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_delmsgoncmdchannel_guildconfigid");
+
+ b.ToTable("delmsgoncmdchannel", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.DiscordPermOverride", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Command")
+ .HasColumnType("varchar(255)")
+ .HasColumnName("command");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.Property("Perm")
+ .HasColumnType("bigint unsigned")
+ .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("NadekoBot.Db.Models.DiscordUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("AvatarId")
+ .HasColumnType("longtext")
+ .HasColumnName("avatarid");
+
+ b.Property("ClubId")
+ .HasColumnType("int")
+ .HasColumnName("clubid");
+
+ b.Property("CurrencyAmount")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .HasDefaultValue(0L)
+ .HasColumnName("currencyamount");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("Discriminator")
+ .HasColumnType("longtext")
+ .HasColumnName("discriminator");
+
+ b.Property("IsClubAdmin")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("isclubadmin");
+
+ b.Property("NotifyOnLevelUp")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasColumnName("notifyonlevelup");
+
+ b.Property("TotalXp")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .HasDefaultValue(0L)
+ .HasColumnName("totalxp");
+
+ b.Property("UserId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("userid");
+
+ b.Property("Username")
+ .HasColumnType("longtext")
+ .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.ToTable("discorduser", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.ExcludedItem", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("ItemId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("itemid");
+
+ b.Property("ItemType")
+ .HasColumnType("int")
+ .HasColumnName("itemtype");
+
+ b.Property("XpSettingsId")
+ .HasColumnType("int")
+ .HasColumnName("xpsettingsid");
+
+ b.HasKey("Id")
+ .HasName("pk_excludeditem");
+
+ b.HasIndex("XpSettingsId")
+ .HasDatabaseName("ix_excludeditem_xpsettingsid");
+
+ b.ToTable("excludeditem", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.FeedSub", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("Message")
+ .HasColumnType("longtext")
+ .HasColumnName("message");
+
+ b.Property("Url")
+ .IsRequired()
+ .HasColumnType("varchar(255)")
+ .HasColumnName("url");
+
+ b.HasKey("Id")
+ .HasName("pk_feedsub");
+
+ b.HasAlternateKey("GuildConfigId", "Url")
+ .HasName("ak_feedsub_guildconfigid_url");
+
+ b.ToTable("feedsub", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.FilterChannelId", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.HasKey("Id")
+ .HasName("pk_filterchannelid");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_filterchannelid_guildconfigid");
+
+ b.ToTable("filterchannelid", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.FilterLinksChannelId", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.HasKey("Id")
+ .HasName("pk_filterlinkschannelid");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_filterlinkschannelid_guildconfigid");
+
+ b.ToTable("filterlinkschannelid", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.FilterWordsChannelId", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.HasKey("Id")
+ .HasName("pk_filterwordschannelid");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_filterwordschannelid_guildconfigid");
+
+ b.ToTable("filterwordschannelid", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.FilteredWord", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("Word")
+ .HasColumnType("longtext")
+ .HasColumnName("word");
+
+ b.HasKey("Id")
+ .HasName("pk_filteredword");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_filteredword_guildconfigid");
+
+ b.ToTable("filteredword", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.FollowedStream", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.Property("Message")
+ .HasColumnType("longtext")
+ .HasColumnName("message");
+
+ b.Property("Type")
+ .HasColumnType("int")
+ .HasColumnName("type");
+
+ b.Property("Username")
+ .HasColumnType("longtext")
+ .HasColumnName("username");
+
+ b.HasKey("Id")
+ .HasName("pk_followedstream");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_followedstream_guildconfigid");
+
+ b.ToTable("followedstream", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.GCChannelId", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.HasKey("Id")
+ .HasName("pk_gcchannelid");
+
+ b.HasIndex("GuildConfigId")
+ .HasDatabaseName("ix_gcchannelid_guildconfigid");
+
+ b.ToTable("gcchannelid", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.GamblingStats", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Bet")
+ .HasColumnType("decimal(65,30)")
+ .HasColumnName("bet");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("Feature")
+ .HasColumnType("varchar(255)")
+ .HasColumnName("feature");
+
+ b.Property("PaidOut")
+ .HasColumnType("decimal(65,30)")
+ .HasColumnName("paidout");
+
+ b.HasKey("Id")
+ .HasName("pk_gamblingstats");
+
+ b.HasIndex("Feature")
+ .IsUnique()
+ .HasDatabaseName("ix_gamblingstats_feature");
+
+ b.ToTable("gamblingstats", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("channelid");
+
+ b.Property("EndsAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("endsat");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.Property("Message")
+ .HasColumnType("longtext")
+ .HasColumnName("message");
+
+ b.Property("MessageId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("messageid");
+
+ b.HasKey("Id")
+ .HasName("pk_giveawaymodel");
+
+ b.ToTable("giveawaymodel", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.GiveawayUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("GiveawayId")
+ .HasColumnType("int")
+ .HasColumnName("giveawayid");
+
+ b.Property("Name")
+ .HasColumnType("longtext")
+ .HasColumnName("name");
+
+ b.Property("UserId")
+ .HasColumnType("bigint unsigned")
+ .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("NadekoBot.Db.Models.GroupName", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("GuildConfigId")
+ .HasColumnType("int")
+ .HasColumnName("guildconfigid");
+
+ b.Property("Name")
+ .HasColumnType("longtext")
+ .HasColumnName("name");
+
+ b.Property("Number")
+ .HasColumnType("int")
+ .HasColumnName("number");
+
+ b.HasKey("Id")
+ .HasName("pk_groupname");
+
+ b.HasIndex("GuildConfigId", "Number")
+ .IsUnique()
+ .HasDatabaseName("ix_groupname_guildconfigid_number");
+
+ b.ToTable("groupname", (string)null);
+ });
+
+ modelBuilder.Entity("NadekoBot.Db.Models.GuildConfig", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("AutoAssignRoleIds")
+ .HasColumnType("longtext")
+ .HasColumnName("autoassignroleids");
+
+ b.Property("AutoDeleteByeMessagesTimer")
+ .HasColumnType("int")
+ .HasColumnName("autodeletebyemessagestimer");
+
+ b.Property("AutoDeleteGreetMessagesTimer")
+ .HasColumnType("int")
+ .HasColumnName("autodeletegreetmessagestimer");
+
+ b.Property("AutoDeleteSelfAssignedRoleMessages")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("autodeleteselfassignedrolemessages");
+
+ b.Property("BoostMessage")
+ .HasColumnType("longtext")
+ .HasColumnName("boostmessage");
+
+ b.Property("BoostMessageChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("boostmessagechannelid");
+
+ b.Property("BoostMessageDeleteAfter")
+ .HasColumnType("int")
+ .HasColumnName("boostmessagedeleteafter");
+
+ b.Property("ByeMessageChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("byemessagechannelid");
+
+ b.Property("ChannelByeMessageText")
+ .HasColumnType("longtext")
+ .HasColumnName("channelbyemessagetext");
+
+ b.Property("ChannelGreetMessageText")
+ .HasColumnType("longtext")
+ .HasColumnName("channelgreetmessagetext");
+
+ b.Property("CleverbotEnabled")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("cleverbotenabled");
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("DeleteMessageOnCommand")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("deletemessageoncommand");
+
+ b.Property("DeleteStreamOnlineMessage")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("deletestreamonlinemessage");
+
+ b.Property("DisableGlobalExpressions")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("disableglobalexpressions");
+
+ b.Property("DmGreetMessageText")
+ .HasColumnType("longtext")
+ .HasColumnName("dmgreetmessagetext");
+
+ b.Property("ExclusiveSelfAssignedRoles")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("exclusiveselfassignedroles");
+
+ b.Property("FilterInvites")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("filterinvites");
+
+ b.Property("FilterLinks")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("filterlinks");
+
+ b.Property("FilterWords")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("filterwords");
+
+ b.Property("GameVoiceChannel")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("gamevoicechannel");
+
+ b.Property("GreetMessageChannelId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("greetmessagechannelid");
+
+ b.Property("GuildId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("guildid");
+
+ b.Property("Locale")
+ .HasColumnType("longtext")
+ .HasColumnName("locale");
+
+ b.Property("MuteRoleName")
+ .HasColumnType("longtext")
+ .HasColumnName("muterolename");
+
+ b.Property("NotifyStreamOffline")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("notifystreamoffline");
+
+ b.Property("PermissionRole")
+ .HasColumnType("longtext")
+ .HasColumnName("permissionrole");
+
+ b.Property("Prefix")
+ .HasColumnType("longtext")
+ .HasColumnName("prefix");
+
+ b.Property("SendBoostMessage")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("sendboostmessage");
+
+ b.Property("SendChannelByeMessage")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("sendchannelbyemessage");
+
+ b.Property("SendChannelGreetMessage")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("sendchannelgreetmessage");
+
+ b.Property("SendDmGreetMessage")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("senddmgreetmessage");
+
+ b.Property("StickyRoles")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("stickyroles");
+
+ b.Property("TimeZoneId")
+ .HasColumnType("longtext")
+ .HasColumnName("timezoneid");
+
+ b.Property("VerboseErrors")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(true)
+ .HasColumnName("verboseerrors");
+
+ b.Property("VerbosePermissions")
+ .HasColumnType("tinyint(1)")
+ .HasColumnName("verbosepermissions");
+
+ b.Property("WarnExpireAction")
+ .HasColumnType("int")
+ .HasColumnName("warnexpireaction");
+
+ b.Property("WarnExpireHours")
+ .HasColumnType("int")
+ .HasColumnName("warnexpirehours");
+
+ b.Property("WarningsInitialized")
+ .HasColumnType("tinyint(1)")
+ .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("NadekoBot.Db.Models.IgnoredLogItem", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DateAdded")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("dateadded");
+
+ b.Property("ItemType")
+ .HasColumnType("int")
+ .HasColumnName("itemtype");
+
+ b.Property("LogItemId")
+ .HasColumnType("bigint unsigned")
+ .HasColumnName("logitemid");
+
+ b.Property("LogSettingId")
+ .HasColumnType("int")
+ .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("NadekoBot.Db.Models.IgnoredVoicePresenceChannel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property