mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-04 00:34:26 -05:00 
			
		
		
		
	Started work on giveaways, not completed
This commit is contained in:
		@@ -493,6 +493,25 @@ public abstract class NadekoContext : DbContext
 | 
			
		||||
        }).IsUnique());
 | 
			
		||||
        
 | 
			
		||||
        #endregion
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        #region Giveaway
 | 
			
		||||
 | 
			
		||||
        modelBuilder.Entity<GiveawayModel>()
 | 
			
		||||
            .HasMany(x => x.Participants)
 | 
			
		||||
            .WithOne()
 | 
			
		||||
            .HasForeignKey(x => x.GiveawayId)
 | 
			
		||||
            .OnDelete(DeleteBehavior.Cascade);
 | 
			
		||||
        
 | 
			
		||||
        modelBuilder.Entity<GiveawayUser>(gu => gu
 | 
			
		||||
            .HasIndex(x => new
 | 
			
		||||
            {
 | 
			
		||||
                x.GiveawayId,
 | 
			
		||||
                x.UserId
 | 
			
		||||
            })
 | 
			
		||||
            .IsUnique());
 | 
			
		||||
        
 | 
			
		||||
        #endregion
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3907
									
								
								src/NadekoBot/Migrations/Mysql/20240424152958_giveaway.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										3907
									
								
								src/NadekoBot/Migrations/Mysql/20240424152958_giveaway.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										73
									
								
								src/NadekoBot/Migrations/Mysql/20240424152958_giveaway.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								src/NadekoBot/Migrations/Mysql/20240424152958_giveaway.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
using System;
 | 
			
		||||
using Microsoft.EntityFrameworkCore.Metadata;
 | 
			
		||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
			
		||||
 | 
			
		||||
#nullable disable
 | 
			
		||||
 | 
			
		||||
namespace NadekoBot.Db.Migrations.Mysql
 | 
			
		||||
{
 | 
			
		||||
    /// <inheritdoc />
 | 
			
		||||
    public partial class giveaway : Migration
 | 
			
		||||
    {
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
			
		||||
        {
 | 
			
		||||
            migrationBuilder.CreateTable(
 | 
			
		||||
                name: "giveawaymodel",
 | 
			
		||||
                columns: table => new
 | 
			
		||||
                {
 | 
			
		||||
                    id = table.Column<int>(type: "int", nullable: false)
 | 
			
		||||
                        .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
 | 
			
		||||
                    guildid = table.Column<ulong>(type: "bigint unsigned", nullable: false),
 | 
			
		||||
                    messageid = table.Column<ulong>(type: "bigint unsigned", nullable: false),
 | 
			
		||||
                    message = table.Column<string>(type: "longtext", nullable: false)
 | 
			
		||||
                        .Annotation("MySql:CharSet", "utf8mb4"),
 | 
			
		||||
                    endsat = table.Column<DateTime>(type: "datetime(6)", nullable: false)
 | 
			
		||||
                },
 | 
			
		||||
                constraints: table =>
 | 
			
		||||
                {
 | 
			
		||||
                    table.PrimaryKey("pk_giveawaymodel", x => x.id);
 | 
			
		||||
                })
 | 
			
		||||
                .Annotation("MySql:CharSet", "utf8mb4");
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.CreateTable(
 | 
			
		||||
                name: "giveawayuser",
 | 
			
		||||
                columns: table => new
 | 
			
		||||
                {
 | 
			
		||||
                    id = table.Column<int>(type: "int", nullable: false)
 | 
			
		||||
                        .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
 | 
			
		||||
                    giveawayid = table.Column<int>(type: "int", nullable: false),
 | 
			
		||||
                    userid = table.Column<ulong>(type: "bigint unsigned", nullable: false),
 | 
			
		||||
                    name = table.Column<string>(type: "longtext", nullable: false)
 | 
			
		||||
                        .Annotation("MySql:CharSet", "utf8mb4")
 | 
			
		||||
                },
 | 
			
		||||
                constraints: table =>
 | 
			
		||||
                {
 | 
			
		||||
                    table.PrimaryKey("pk_giveawayuser", x => x.id);
 | 
			
		||||
                    table.ForeignKey(
 | 
			
		||||
                        name: "fk_giveawayuser_giveawaymodel_giveawayid",
 | 
			
		||||
                        column: x => x.giveawayid,
 | 
			
		||||
                        principalTable: "giveawaymodel",
 | 
			
		||||
                        principalColumn: "id",
 | 
			
		||||
                        onDelete: ReferentialAction.Cascade);
 | 
			
		||||
                })
 | 
			
		||||
                .Annotation("MySql:CharSet", "utf8mb4");
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.CreateIndex(
 | 
			
		||||
                name: "ix_giveawayuser_giveawayid_userid",
 | 
			
		||||
                table: "giveawayuser",
 | 
			
		||||
                columns: new[] { "giveawayid", "userid" },
 | 
			
		||||
                unique: true);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
			
		||||
        {
 | 
			
		||||
            migrationBuilder.DropTable(
 | 
			
		||||
                name: "giveawayuser");
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.DropTable(
 | 
			
		||||
                name: "giveawaymodel");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -3073,6 +3073,70 @@ namespace NadekoBot.Db.Migrations.Mysql
 | 
			
		||||
                    b.ToTable("followedstream", (string)null);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<int>("Id")
 | 
			
		||||
                        .ValueGeneratedOnAdd()
 | 
			
		||||
                        .HasColumnType("int")
 | 
			
		||||
                        .HasColumnName("id");
 | 
			
		||||
 | 
			
		||||
                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
 | 
			
		||||
 | 
			
		||||
                    b.Property<DateTime>("EndsAt")
 | 
			
		||||
                        .HasColumnType("datetime(6)")
 | 
			
		||||
                        .HasColumnName("endsat");
 | 
			
		||||
 | 
			
		||||
                    b.Property<ulong>("GuildId")
 | 
			
		||||
                        .HasColumnType("bigint unsigned")
 | 
			
		||||
                        .HasColumnName("guildid");
 | 
			
		||||
 | 
			
		||||
                    b.Property<string>("Message")
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .HasColumnType("longtext")
 | 
			
		||||
                        .HasColumnName("message");
 | 
			
		||||
 | 
			
		||||
                    b.Property<ulong>("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<int>("Id")
 | 
			
		||||
                        .ValueGeneratedOnAdd()
 | 
			
		||||
                        .HasColumnType("int")
 | 
			
		||||
                        .HasColumnName("id");
 | 
			
		||||
 | 
			
		||||
                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
 | 
			
		||||
 | 
			
		||||
                    b.Property<int>("GiveawayId")
 | 
			
		||||
                        .HasColumnType("int")
 | 
			
		||||
                        .HasColumnName("giveawayid");
 | 
			
		||||
 | 
			
		||||
                    b.Property<string>("Name")
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .HasColumnType("longtext")
 | 
			
		||||
                        .HasColumnName("name");
 | 
			
		||||
 | 
			
		||||
                    b.Property<ulong>("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.PatronQuota", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<ulong>("UserId")
 | 
			
		||||
@@ -3703,6 +3767,16 @@ namespace NadekoBot.Db.Migrations.Mysql
 | 
			
		||||
                        .HasConstraintName("fk_followedstream_guildconfigs_guildconfigid");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayUser", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.HasOne("NadekoBot.Db.Models.GiveawayModel", null)
 | 
			
		||||
                        .WithMany("Participants")
 | 
			
		||||
                        .HasForeignKey("GiveawayId")
 | 
			
		||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("Nadeko.Bot.Db.Models.AntiSpamSetting", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Navigation("IgnoredChannels");
 | 
			
		||||
@@ -3819,6 +3893,11 @@ namespace NadekoBot.Db.Migrations.Mysql
 | 
			
		||||
 | 
			
		||||
                    b.Navigation("Members");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Navigation("Participants");
 | 
			
		||||
                });
 | 
			
		||||
#pragma warning restore 612, 618
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3904
									
								
								src/NadekoBot/Migrations/Postgresql/20240424152951_giveaway.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										3904
									
								
								src/NadekoBot/Migrations/Postgresql/20240424152951_giveaway.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
using System;
 | 
			
		||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
			
		||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 | 
			
		||||
 | 
			
		||||
#nullable disable
 | 
			
		||||
 | 
			
		||||
namespace NadekoBot.Db.Migrations
 | 
			
		||||
{
 | 
			
		||||
    /// <inheritdoc />
 | 
			
		||||
    public partial class giveaway : Migration
 | 
			
		||||
    {
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
			
		||||
        {
 | 
			
		||||
            migrationBuilder.CreateTable(
 | 
			
		||||
                name: "giveawaymodel",
 | 
			
		||||
                columns: table => new
 | 
			
		||||
                {
 | 
			
		||||
                    id = table.Column<int>(type: "integer", nullable: false)
 | 
			
		||||
                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
 | 
			
		||||
                    guildid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
 | 
			
		||||
                    messageid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
 | 
			
		||||
                    message = table.Column<string>(type: "text", nullable: false),
 | 
			
		||||
                    endsat = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
 | 
			
		||||
                },
 | 
			
		||||
                constraints: table =>
 | 
			
		||||
                {
 | 
			
		||||
                    table.PrimaryKey("pk_giveawaymodel", x => x.id);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.CreateTable(
 | 
			
		||||
                name: "giveawayuser",
 | 
			
		||||
                columns: table => new
 | 
			
		||||
                {
 | 
			
		||||
                    id = table.Column<int>(type: "integer", nullable: false)
 | 
			
		||||
                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
 | 
			
		||||
                    giveawayid = table.Column<int>(type: "integer", nullable: false),
 | 
			
		||||
                    userid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
 | 
			
		||||
                    name = table.Column<string>(type: "text", nullable: false)
 | 
			
		||||
                },
 | 
			
		||||
                constraints: table =>
 | 
			
		||||
                {
 | 
			
		||||
                    table.PrimaryKey("pk_giveawayuser", x => x.id);
 | 
			
		||||
                    table.ForeignKey(
 | 
			
		||||
                        name: "fk_giveawayuser_giveawaymodel_giveawayid",
 | 
			
		||||
                        column: x => x.giveawayid,
 | 
			
		||||
                        principalTable: "giveawaymodel",
 | 
			
		||||
                        principalColumn: "id",
 | 
			
		||||
                        onDelete: ReferentialAction.Cascade);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.CreateIndex(
 | 
			
		||||
                name: "ix_giveawayuser_giveawayid_userid",
 | 
			
		||||
                table: "giveawayuser",
 | 
			
		||||
                columns: new[] { "giveawayid", "userid" },
 | 
			
		||||
                unique: true);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
			
		||||
        {
 | 
			
		||||
            migrationBuilder.DropTable(
 | 
			
		||||
                name: "giveawayuser");
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.DropTable(
 | 
			
		||||
                name: "giveawaymodel");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -3072,6 +3072,70 @@ namespace NadekoBot.Db.Migrations
 | 
			
		||||
                    b.ToTable("followedstream", (string)null);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<int>("Id")
 | 
			
		||||
                        .ValueGeneratedOnAdd()
 | 
			
		||||
                        .HasColumnType("integer")
 | 
			
		||||
                        .HasColumnName("id");
 | 
			
		||||
 | 
			
		||||
                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 | 
			
		||||
 | 
			
		||||
                    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")
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .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("NadekoBot.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")
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .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("NadekoBot.Db.Models.PatronQuota", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<decimal>("UserId")
 | 
			
		||||
@@ -3700,6 +3764,16 @@ namespace NadekoBot.Db.Migrations
 | 
			
		||||
                        .HasConstraintName("fk_followedstream_guildconfigs_guildconfigid");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayUser", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.HasOne("NadekoBot.Db.Models.GiveawayModel", null)
 | 
			
		||||
                        .WithMany("Participants")
 | 
			
		||||
                        .HasForeignKey("GiveawayId")
 | 
			
		||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("Nadeko.Bot.Db.Models.AntiSpamSetting", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Navigation("IgnoredChannels");
 | 
			
		||||
@@ -3816,6 +3890,11 @@ namespace NadekoBot.Db.Migrations
 | 
			
		||||
 | 
			
		||||
                    b.Navigation("Members");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Navigation("Participants");
 | 
			
		||||
                });
 | 
			
		||||
#pragma warning restore 612, 618
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3009
									
								
								src/NadekoBot/Migrations/Sqlite/20240424152943_giveaway.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										3009
									
								
								src/NadekoBot/Migrations/Sqlite/20240424152943_giveaway.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										68
									
								
								src/NadekoBot/Migrations/Sqlite/20240424152943_giveaway.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								src/NadekoBot/Migrations/Sqlite/20240424152943_giveaway.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
using System;
 | 
			
		||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
			
		||||
 | 
			
		||||
#nullable disable
 | 
			
		||||
 | 
			
		||||
namespace NadekoBot.Db.Migrations.Sqlite
 | 
			
		||||
{
 | 
			
		||||
    /// <inheritdoc />
 | 
			
		||||
    public partial class giveaway : Migration
 | 
			
		||||
    {
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
			
		||||
        {
 | 
			
		||||
            migrationBuilder.CreateTable(
 | 
			
		||||
                name: "GiveawayModel",
 | 
			
		||||
                columns: table => new
 | 
			
		||||
                {
 | 
			
		||||
                    Id = table.Column<int>(type: "INTEGER", nullable: false)
 | 
			
		||||
                        .Annotation("Sqlite:Autoincrement", true),
 | 
			
		||||
                    GuildId = table.Column<ulong>(type: "INTEGER", nullable: false),
 | 
			
		||||
                    MessageId = table.Column<ulong>(type: "INTEGER", nullable: false),
 | 
			
		||||
                    Message = table.Column<string>(type: "TEXT", nullable: false),
 | 
			
		||||
                    EndsAt = table.Column<DateTime>(type: "TEXT", nullable: false)
 | 
			
		||||
                },
 | 
			
		||||
                constraints: table =>
 | 
			
		||||
                {
 | 
			
		||||
                    table.PrimaryKey("PK_GiveawayModel", x => x.Id);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.CreateTable(
 | 
			
		||||
                name: "GiveawayUser",
 | 
			
		||||
                columns: table => new
 | 
			
		||||
                {
 | 
			
		||||
                    Id = table.Column<int>(type: "INTEGER", nullable: false)
 | 
			
		||||
                        .Annotation("Sqlite:Autoincrement", true),
 | 
			
		||||
                    GiveawayId = table.Column<int>(type: "INTEGER", nullable: false),
 | 
			
		||||
                    UserId = table.Column<ulong>(type: "INTEGER", nullable: false),
 | 
			
		||||
                    Name = table.Column<string>(type: "TEXT", nullable: false)
 | 
			
		||||
                },
 | 
			
		||||
                constraints: table =>
 | 
			
		||||
                {
 | 
			
		||||
                    table.PrimaryKey("PK_GiveawayUser", x => x.Id);
 | 
			
		||||
                    table.ForeignKey(
 | 
			
		||||
                        name: "FK_GiveawayUser_GiveawayModel_GiveawayId",
 | 
			
		||||
                        column: x => x.GiveawayId,
 | 
			
		||||
                        principalTable: "GiveawayModel",
 | 
			
		||||
                        principalColumn: "Id",
 | 
			
		||||
                        onDelete: ReferentialAction.Cascade);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.CreateIndex(
 | 
			
		||||
                name: "IX_GiveawayUser_GiveawayId_UserId",
 | 
			
		||||
                table: "GiveawayUser",
 | 
			
		||||
                columns: new[] { "GiveawayId", "UserId" },
 | 
			
		||||
                unique: true);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
			
		||||
        {
 | 
			
		||||
            migrationBuilder.DropTable(
 | 
			
		||||
                name: "GiveawayUser");
 | 
			
		||||
 | 
			
		||||
            migrationBuilder.DropTable(
 | 
			
		||||
                name: "GiveawayModel");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -2280,6 +2280,54 @@ namespace NadekoBot.Db.Migrations.Sqlite
 | 
			
		||||
                    b.ToTable("FollowedStream");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<int>("Id")
 | 
			
		||||
                        .ValueGeneratedOnAdd()
 | 
			
		||||
                        .HasColumnType("INTEGER");
 | 
			
		||||
 | 
			
		||||
                    b.Property<DateTime>("EndsAt")
 | 
			
		||||
                        .HasColumnType("TEXT");
 | 
			
		||||
 | 
			
		||||
                    b.Property<ulong>("GuildId")
 | 
			
		||||
                        .HasColumnType("INTEGER");
 | 
			
		||||
 | 
			
		||||
                    b.Property<string>("Message")
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .HasColumnType("TEXT");
 | 
			
		||||
 | 
			
		||||
                    b.Property<ulong>("MessageId")
 | 
			
		||||
                        .HasColumnType("INTEGER");
 | 
			
		||||
 | 
			
		||||
                    b.HasKey("Id");
 | 
			
		||||
 | 
			
		||||
                    b.ToTable("GiveawayModel");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayUser", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<int>("Id")
 | 
			
		||||
                        .ValueGeneratedOnAdd()
 | 
			
		||||
                        .HasColumnType("INTEGER");
 | 
			
		||||
 | 
			
		||||
                    b.Property<int>("GiveawayId")
 | 
			
		||||
                        .HasColumnType("INTEGER");
 | 
			
		||||
 | 
			
		||||
                    b.Property<string>("Name")
 | 
			
		||||
                        .IsRequired()
 | 
			
		||||
                        .HasColumnType("TEXT");
 | 
			
		||||
 | 
			
		||||
                    b.Property<ulong>("UserId")
 | 
			
		||||
                        .HasColumnType("INTEGER");
 | 
			
		||||
 | 
			
		||||
                    b.HasKey("Id");
 | 
			
		||||
 | 
			
		||||
                    b.HasIndex("GiveawayId", "UserId")
 | 
			
		||||
                        .IsUnique();
 | 
			
		||||
 | 
			
		||||
                    b.ToTable("GiveawayUser");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.PatronQuota", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Property<ulong>("UserId")
 | 
			
		||||
@@ -2822,6 +2870,15 @@ namespace NadekoBot.Db.Migrations.Sqlite
 | 
			
		||||
                        .HasForeignKey("GuildConfigId");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayUser", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.HasOne("NadekoBot.Db.Models.GiveawayModel", null)
 | 
			
		||||
                        .WithMany("Participants")
 | 
			
		||||
                        .HasForeignKey("GiveawayId")
 | 
			
		||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
			
		||||
                        .IsRequired();
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("Nadeko.Bot.Db.Models.AntiSpamSetting", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Navigation("IgnoredChannels");
 | 
			
		||||
@@ -2938,6 +2995,11 @@ namespace NadekoBot.Db.Migrations.Sqlite
 | 
			
		||||
 | 
			
		||||
                    b.Navigation("Members");
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
 | 
			
		||||
                {
 | 
			
		||||
                    b.Navigation("Participants");
 | 
			
		||||
                });
 | 
			
		||||
#pragma warning restore 612, 618
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@
 | 
			
		||||
        <PackageReference Include="SharpToken" Version="1.2.14" />
 | 
			
		||||
 | 
			
		||||
        <PackageReference Include="SixLabors.Fonts" Version="1.0.0-beta17" />
 | 
			
		||||
        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.7" />
 | 
			
		||||
        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.8" />
 | 
			
		||||
        <PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta14" />
 | 
			
		||||
        <PackageReference Include="SixLabors.Shapes" Version="1.0.0-beta0009" />
 | 
			
		||||
        <PackageReference Include="StackExchange.Redis" Version="2.6.122" />
 | 
			
		||||
 
 | 
			
		||||
@@ -1393,4 +1393,14 @@ doas:
 | 
			
		||||
  - doas
 | 
			
		||||
  - execas
 | 
			
		||||
cacheusers:
 | 
			
		||||
  - cacheusers
 | 
			
		||||
  - cacheusers
 | 
			
		||||
giveawaystart:
 | 
			
		||||
  - start
 | 
			
		||||
giveawayend:
 | 
			
		||||
  - end
 | 
			
		||||
giveawaycancel:
 | 
			
		||||
  - cancel
 | 
			
		||||
giveawayreroll:
 | 
			
		||||
  - reroll
 | 
			
		||||
giveawaylist:
 | 
			
		||||
  - list
 | 
			
		||||
 
 | 
			
		||||
@@ -2388,5 +2388,27 @@ cacheusers:
 | 
			
		||||
    - "serverId"
 | 
			
		||||
stickyroles:
 | 
			
		||||
  desc: "Toggles whether the bot will save the leaving users' roles, and reapply them once they re-join. The roles will be stored for up to 30 days."
 | 
			
		||||
  args:
 | 
			
		||||
    - ""
 | 
			
		||||
giveawaystart:
 | 
			
		||||
  desc: "Starts a giveaway. Specify the duration (between 1 minute and 30 days) followed by the prize."
 | 
			
		||||
  args:
 | 
			
		||||
    - "12h We are giving away one copy of our latest album!"
 | 
			
		||||
    - "15m Quick giveaway for a free course!"
 | 
			
		||||
    - "1d Join to win 1000$!"
 | 
			
		||||
giveawayend:
 | 
			
		||||
  desc: "Prematurely ends a giveaway and chooses a winner. Specify the ID of the giveaway to end."
 | 
			
		||||
  args:
 | 
			
		||||
    - "ab3"
 | 
			
		||||
giveawaycancel:
 | 
			
		||||
  desc: "Cancels a giveaway. Specify the ID of the giveaway to cancel."
 | 
			
		||||
  args:
 | 
			
		||||
    - "ab3"
 | 
			
		||||
giveawayreroll:
 | 
			
		||||
  desc: "Rerolls a giveaway. Specify the ID of the giveaway to reroll. The winner will not be chosen."
 | 
			
		||||
  args:
 | 
			
		||||
    - "cd3"
 | 
			
		||||
giveawaylist:
 | 
			
		||||
  desc: "Lists all active giveaways."
 | 
			
		||||
  args:
 | 
			
		||||
    - ""
 | 
			
		||||
@@ -1066,5 +1066,14 @@
 | 
			
		||||
  "cache_users_pending": "Updating users, please wait...",
 | 
			
		||||
  "cache_users_done": "{0} users were added and {1} users were updated.",
 | 
			
		||||
  "sticky_roles_enabled": "Sticky roles enabled. Leaving users' roles will be restored when they rejoin the server.",
 | 
			
		||||
  "sticky_roles_disabled": "Sticky roles disabled."
 | 
			
		||||
  "sticky_roles_disabled": "Sticky roles disabled.",
 | 
			
		||||
  "giveaway_duration_invalid": "Giveaway may not be shorter than 1 minute or longer than 30 days",
 | 
			
		||||
  "giveaway_started": "Giveaway Started!",
 | 
			
		||||
  "giveaway_max_amount_reached": "You've reached the maximum amount of giveaways you can have on this server.",
 | 
			
		||||
  "giveaway_not_found": "Giveaway not found.",
 | 
			
		||||
  "giveaway_ended": "Giveaway ended",
 | 
			
		||||
  "no_givaways": "There are no active giveaways on this server.",
 | 
			
		||||
  "giveaway_cancelled": "Giveaway cancelled.",
 | 
			
		||||
  "giveaway_starting": "Starting giveaway...",
 | 
			
		||||
  "winner": "Winner"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								src/NadekoBot/remove-migration.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/NadekoBot/remove-migration.ps1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
dotnet ef migrations remove -c SqliteContext
 | 
			
		||||
dotnet ef migrations remove -c PostgreSqlContext -f
 | 
			
		||||
dotnet ef migrations remove -c MysqlContext -f
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user