summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2022-11-25 16:42:40 -0600
committerHombreLaser <sebastian-440@live.com>2022-11-25 16:42:40 -0600
commitf53bcf7dff1ee53ac5683df437cad8b22f9fbac5 (patch)
tree4391902c36390e7541dae65def75c938f1a32f71
parente90d61eca62e1a9cb194d05407969831576c8586 (diff)
Añadido modelo de ganador de rifa
-rw-r--r--Migrations/20221125223610_AddRaffleWinner.Designer.cs463
-rw-r--r--Migrations/20221125223610_AddRaffleWinner.cs70
-rw-r--r--Migrations/ApplicationDbContextModelSnapshot.cs56
-rw-r--r--Models/ApplicationDbContext.cs1
-rw-r--r--Models/RaffleWinner.cs11
5 files changed, 601 insertions, 0 deletions
diff --git a/Migrations/20221125223610_AddRaffleWinner.Designer.cs b/Migrations/20221125223610_AddRaffleWinner.Designer.cs
new file mode 100644
index 0000000..afeaa3a
--- /dev/null
+++ b/Migrations/20221125223610_AddRaffleWinner.Designer.cs
@@ -0,0 +1,463 @@
+// <auto-generated />
+using System;
+using BackendPIA.Models;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace BackendPIA.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20221125223610_AddRaffleWinner")]
+ partial class AddRaffleWinner
+ {
+ /// <inheritdoc />
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.0")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("BackendPIA.Models.Prize", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
+
+ b.Property<string>("Category")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property<string>("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property<long>("RaffleId")
+ .HasColumnType("bigint");
+
+ b.Property<int>("Tier")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RaffleId");
+
+ b.ToTable("Prizes");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.Raffle", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
+
+ b.Property<bool>("IsClosed")
+ .HasColumnType("boolean");
+
+ b.Property<string>("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("character varying(128)");
+
+ b.Property<int>("Winners")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.ToTable("Raffles");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.RaffleWinner", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
+
+ b.Property<long>("PrizeId")
+ .HasColumnType("bigint");
+
+ b.Property<long>("RaffleId")
+ .HasColumnType("bigint");
+
+ b.Property<string>("UserAccountId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PrizeId");
+
+ b.HasIndex("RaffleId");
+
+ b.HasIndex("UserAccountId");
+
+ b.ToTable("RaffleWinners");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.Ticket", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
+
+ b.Property<bool>("IsWinner")
+ .HasColumnType("boolean");
+
+ b.Property<int>("Number")
+ .HasColumnType("integer");
+
+ b.Property<long>("RaffleId")
+ .HasColumnType("bigint");
+
+ b.Property<string>("UserAccountId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RaffleId");
+
+ b.HasIndex("UserAccountId");
+
+ b.ToTable("Tickets");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.UserAccount", b =>
+ {
+ b.Property<string>("Id")
+ .HasColumnType("text");
+
+ b.Property<int>("AccessFailedCount")
+ .HasColumnType("integer");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("text");
+
+ b.Property<string>("Email")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property<bool>("EmailConfirmed")
+ .HasColumnType("boolean");
+
+ b.Property<bool>("LockoutEnabled")
+ .HasColumnType("boolean");
+
+ b.Property<DateTimeOffset?>("LockoutEnd")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property<string>("NormalizedEmail")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property<string>("NormalizedUserName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property<string>("PasswordHash")
+ .HasColumnType("text");
+
+ b.Property<string>("PhoneNumber")
+ .HasColumnType("text");
+
+ b.Property<bool>("PhoneNumberConfirmed")
+ .HasColumnType("boolean");
+
+ b.Property<string>("SecurityStamp")
+ .HasColumnType("text");
+
+ b.Property<string>("SessionToken")
+ .HasMaxLength(64)
+ .HasColumnType("character varying(64)");
+
+ b.Property<DateTime?>("SessionTokenExpiryTime")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property<bool>("TwoFactorEnabled")
+ .HasColumnType("boolean");
+
+ b.Property<string>("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedEmail")
+ .HasDatabaseName("EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .IsUnique()
+ .HasDatabaseName("UserNameIndex");
+
+ b.ToTable("AspNetUsers", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
+ {
+ b.Property<string>("Id")
+ .HasColumnType("text");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("text");
+
+ b.Property<string>("Name")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property<string>("NormalizedName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .IsUnique()
+ .HasDatabaseName("RoleNameIndex");
+
+ b.ToTable("AspNetRoles", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
+ {
+ b.Property<int>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+ b.Property<string>("ClaimType")
+ .HasColumnType("text");
+
+ b.Property<string>("ClaimValue")
+ .HasColumnType("text");
+
+ b.Property<string>("RoleId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetRoleClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
+ {
+ b.Property<int>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+ b.Property<string>("ClaimType")
+ .HasColumnType("text");
+
+ b.Property<string>("ClaimValue")
+ .HasColumnType("text");
+
+ b.Property<string>("UserId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
+ {
+ b.Property<string>("LoginProvider")
+ .HasColumnType("text");
+
+ b.Property<string>("ProviderKey")
+ .HasColumnType("text");
+
+ b.Property<string>("ProviderDisplayName")
+ .HasColumnType("text");
+
+ b.Property<string>("UserId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("LoginProvider", "ProviderKey");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserLogins", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
+ {
+ b.Property<string>("UserId")
+ .HasColumnType("text");
+
+ b.Property<string>("RoleId")
+ .HasColumnType("text");
+
+ b.HasKey("UserId", "RoleId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetUserRoles", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
+ {
+ b.Property<string>("UserId")
+ .HasColumnType("text");
+
+ b.Property<string>("LoginProvider")
+ .HasColumnType("text");
+
+ b.Property<string>("Name")
+ .HasColumnType("text");
+
+ b.Property<string>("Value")
+ .HasColumnType("text");
+
+ b.HasKey("UserId", "LoginProvider", "Name");
+
+ b.ToTable("AspNetUserTokens", (string)null);
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.Prize", b =>
+ {
+ b.HasOne("BackendPIA.Models.Raffle", "Raffle")
+ .WithMany()
+ .HasForeignKey("RaffleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Raffle");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.RaffleWinner", b =>
+ {
+ b.HasOne("BackendPIA.Models.Prize", "Prize")
+ .WithMany()
+ .HasForeignKey("PrizeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BackendPIA.Models.Raffle", "Raffle")
+ .WithMany()
+ .HasForeignKey("RaffleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BackendPIA.Models.UserAccount", "UserAccount")
+ .WithMany()
+ .HasForeignKey("UserAccountId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Prize");
+
+ b.Navigation("Raffle");
+
+ b.Navigation("UserAccount");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.Ticket", b =>
+ {
+ b.HasOne("BackendPIA.Models.Raffle", "Raffle")
+ .WithMany("Tickets")
+ .HasForeignKey("RaffleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BackendPIA.Models.UserAccount", "Owner")
+ .WithMany("Tickets")
+ .HasForeignKey("UserAccountId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Owner");
+
+ b.Navigation("Raffle");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
+ {
+ b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
+ .WithMany()
+ .HasForeignKey("RoleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
+ {
+ b.HasOne("BackendPIA.Models.UserAccount", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
+ {
+ b.HasOne("BackendPIA.Models.UserAccount", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
+ {
+ b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
+ .WithMany()
+ .HasForeignKey("RoleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BackendPIA.Models.UserAccount", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
+ {
+ b.HasOne("BackendPIA.Models.UserAccount", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.Raffle", b =>
+ {
+ b.Navigation("Tickets");
+ });
+
+ modelBuilder.Entity("BackendPIA.Models.UserAccount", b =>
+ {
+ b.Navigation("Tickets");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Migrations/20221125223610_AddRaffleWinner.cs b/Migrations/20221125223610_AddRaffleWinner.cs
new file mode 100644
index 0000000..68a66af
--- /dev/null
+++ b/Migrations/20221125223610_AddRaffleWinner.cs
@@ -0,0 +1,70 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace BackendPIA.Migrations
+{
+ /// <inheritdoc />
+ public partial class AddRaffleWinner : Migration
+ {
+ /// <inheritdoc />
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "RaffleWinners",
+ columns: table => new
+ {
+ Id = table.Column<long>(type: "bigint", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ UserAccountId = table.Column<string>(type: "text", nullable: false),
+ PrizeId = table.Column<long>(type: "bigint", nullable: false),
+ RaffleId = table.Column<long>(type: "bigint", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_RaffleWinners", x => x.Id);
+ table.ForeignKey(
+ name: "FK_RaffleWinners_AspNetUsers_UserAccountId",
+ column: x => x.UserAccountId,
+ principalTable: "AspNetUsers",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_RaffleWinners_Prizes_PrizeId",
+ column: x => x.PrizeId,
+ principalTable: "Prizes",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_RaffleWinners_Raffles_RaffleId",
+ column: x => x.RaffleId,
+ principalTable: "Raffles",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_RaffleWinners_PrizeId",
+ table: "RaffleWinners",
+ column: "PrizeId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_RaffleWinners_RaffleId",
+ table: "RaffleWinners",
+ column: "RaffleId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_RaffleWinners_UserAccountId",
+ table: "RaffleWinners",
+ column: "UserAccountId");
+ }
+
+ /// <inheritdoc />
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "RaffleWinners");
+ }
+ }
+}
diff --git a/Migrations/ApplicationDbContextModelSnapshot.cs b/Migrations/ApplicationDbContextModelSnapshot.cs
index e11a6ec..917cafd 100644
--- a/Migrations/ApplicationDbContextModelSnapshot.cs
+++ b/Migrations/ApplicationDbContextModelSnapshot.cs
@@ -75,6 +75,35 @@ namespace BackendPIA.Migrations
b.ToTable("Raffles");
});
+ modelBuilder.Entity("BackendPIA.Models.RaffleWinner", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
+
+ b.Property<long>("PrizeId")
+ .HasColumnType("bigint");
+
+ b.Property<long>("RaffleId")
+ .HasColumnType("bigint");
+
+ b.Property<string>("UserAccountId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PrizeId");
+
+ b.HasIndex("RaffleId");
+
+ b.HasIndex("UserAccountId");
+
+ b.ToTable("RaffleWinners");
+ });
+
modelBuilder.Entity("BackendPIA.Models.Ticket", b =>
{
b.Property<long>("Id")
@@ -319,6 +348,33 @@ namespace BackendPIA.Migrations
b.Navigation("Raffle");
});
+ modelBuilder.Entity("BackendPIA.Models.RaffleWinner", b =>
+ {
+ b.HasOne("BackendPIA.Models.Prize", "Prize")
+ .WithMany()
+ .HasForeignKey("PrizeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BackendPIA.Models.Raffle", "Raffle")
+ .WithMany()
+ .HasForeignKey("RaffleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BackendPIA.Models.UserAccount", "UserAccount")
+ .WithMany()
+ .HasForeignKey("UserAccountId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Prize");
+
+ b.Navigation("Raffle");
+
+ b.Navigation("UserAccount");
+ });
+
modelBuilder.Entity("BackendPIA.Models.Ticket", b =>
{
b.HasOne("BackendPIA.Models.Raffle", "Raffle")
diff --git a/Models/ApplicationDbContext.cs b/Models/ApplicationDbContext.cs
index 8ab6b27..24d662f 100644
--- a/Models/ApplicationDbContext.cs
+++ b/Models/ApplicationDbContext.cs
@@ -6,6 +6,7 @@ namespace BackendPIA.Models {
public DbSet<Raffle>? Raffles { get; set; }
public DbSet<Ticket>? Tickets { get; set; }
public DbSet<Prize>? Prizes { get; set; }
+ public DbSet<RaffleWinner>? RaffleWinners { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) {}
diff --git a/Models/RaffleWinner.cs b/Models/RaffleWinner.cs
new file mode 100644
index 0000000..59b91b2
--- /dev/null
+++ b/Models/RaffleWinner.cs
@@ -0,0 +1,11 @@
+namespace BackendPIA.Models {
+ public class RaffleWinner {
+ public long Id { get; set; }
+ public string UserAccountId { get; set; }
+ public long PrizeId { get; set; }
+ public long RaffleId { get; set; }
+ public UserAccount? UserAccount { get; set; }
+ public Prize? Prize { get; set; }
+ public Raffle? Raffle { get; set; }
+ }
+} \ No newline at end of file