Created entities

This commit is contained in:
2026-02-20 18:48:09 +01:00
parent c60bf4624c
commit 3d7400ce89
20 changed files with 2524 additions and 6 deletions
@@ -0,0 +1,473 @@
// <auto-generated />
using System;
using BeReadyBackend;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BeReadyBackend.Migrations
{
[DbContext(typeof(BeReadyDbContext))]
[Migration("20260220174541_InitialDatabase")]
partial class InitialDatabase
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("BeReadyBackend.Models.Achievement", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Label")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Achievements");
});
modelBuilder.Entity("BeReadyBackend.Models.Designation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Label")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Designations");
});
modelBuilder.Entity("BeReadyBackend.Models.Group", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<string>("Label")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<int>("StatusId")
.HasColumnType("int");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("StatusId");
b.ToTable("Groups");
});
modelBuilder.Entity("BeReadyBackend.Models.Message", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("Libelle")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("SendDate")
.HasColumnType("datetime2");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("UserId");
b.ToTable("Messages");
});
modelBuilder.Entity("BeReadyBackend.Models.RandomChallenge", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<bool>("IsAlreadyPast")
.HasColumnType("bit");
b.Property<string>("Libelle")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("RandomChallenges");
});
modelBuilder.Entity("BeReadyBackend.Models.Status", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Label")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Status");
});
modelBuilder.Entity("BeReadyBackend.Models.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<int>("DesignationId")
.HasColumnType("int");
b.Property<string>("Email")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FirstName")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Password")
.IsRequired()
.HasMaxLength(60)
.HasColumnType("nvarchar(60)");
b.Property<string>("Salt")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Score")
.HasColumnType("int");
b.Property<int>("Series")
.HasColumnType("int");
b.Property<int>("TotalBonusChallenge")
.HasColumnType("int");
b.Property<int>("TotalChallenge")
.HasColumnType("int");
b.Property<int>("TotalPodium")
.HasColumnType("int");
b.Property<int>("TotalWin")
.HasColumnType("int");
b.Property<string>("Username")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("Id");
b.HasIndex("DesignationId");
b.ToTable("Users");
});
modelBuilder.Entity("BeReadyBackend.Models.UserAchievement", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("AchievementId")
.HasColumnType("int");
b.Property<bool>("IsActive")
.HasColumnType("bit");
b.HasKey("UserId", "AchievementId");
b.HasIndex("AchievementId");
b.ToTable("UserAchievements");
});
modelBuilder.Entity("BeReadyBackend.Models.UserFriend", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("FriendId")
.HasColumnType("int");
b.HasKey("UserId", "FriendId");
b.HasIndex("FriendId");
b.ToTable("UserFriends");
});
modelBuilder.Entity("BeReadyBackend.Models.UserGroup", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("Grade")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Proof")
.HasColumnType("nvarchar(max)");
b.Property<int>("Score")
.HasColumnType("int");
b.Property<int?>("VotedProofId")
.HasColumnType("int");
b.HasKey("UserId", "GroupId");
b.HasIndex("GroupId");
b.ToTable("UserGroups");
});
modelBuilder.Entity("BeReadyBackend.Models.UserRandomChallenge", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("RandomChallengeId")
.HasColumnType("int");
b.Property<string>("Proof")
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RandomChallengeId");
b.HasIndex("RandomChallengeId");
b.ToTable("UserRandomChallenges");
});
modelBuilder.Entity("BeReadyBackend.Models.Group", b =>
{
b.HasOne("BeReadyBackend.Models.Status", "Status")
.WithMany("Groups")
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Status");
});
modelBuilder.Entity("BeReadyBackend.Models.Message", b =>
{
b.HasOne("BeReadyBackend.Models.Group", "Group")
.WithMany("Messages")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("Messages")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.User", b =>
{
b.HasOne("BeReadyBackend.Models.Designation", "Designation")
.WithMany("Users")
.HasForeignKey("DesignationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Designation");
});
modelBuilder.Entity("BeReadyBackend.Models.UserAchievement", b =>
{
b.HasOne("BeReadyBackend.Models.Achievement", "Achievement")
.WithMany("UserAchievements")
.HasForeignKey("AchievementId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserAchievements")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Achievement");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.UserFriend", b =>
{
b.HasOne("BeReadyBackend.Models.User", "Friend")
.WithMany()
.HasForeignKey("FriendId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserFriends")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Friend");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.UserGroup", b =>
{
b.HasOne("BeReadyBackend.Models.Group", "Group")
.WithMany()
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserGroups")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.UserRandomChallenge", b =>
{
b.HasOne("BeReadyBackend.Models.RandomChallenge", "RandomChallenge")
.WithMany("UserRandomChallenges")
.HasForeignKey("RandomChallengeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserRandomChallenges")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RandomChallenge");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.Achievement", b =>
{
b.Navigation("UserAchievements");
});
modelBuilder.Entity("BeReadyBackend.Models.Designation", b =>
{
b.Navigation("Users");
});
modelBuilder.Entity("BeReadyBackend.Models.Group", b =>
{
b.Navigation("Messages");
});
modelBuilder.Entity("BeReadyBackend.Models.RandomChallenge", b =>
{
b.Navigation("UserRandomChallenges");
});
modelBuilder.Entity("BeReadyBackend.Models.Status", b =>
{
b.Navigation("Groups");
});
modelBuilder.Entity("BeReadyBackend.Models.User", b =>
{
b.Navigation("Messages");
b.Navigation("UserAchievements");
b.Navigation("UserFriends");
b.Navigation("UserGroups");
b.Navigation("UserRandomChallenges");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,332 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BeReadyBackend.Migrations
{
/// <inheritdoc />
public partial class InitialDatabase : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Achievements",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Label = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Achievements", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Designations",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Label = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Designations", x => x.Id);
});
migrationBuilder.CreateTable(
name: "RandomChallenges",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Libelle = table.Column<string>(type: "nvarchar(max)", nullable: false),
Duration = table.Column<int>(type: "int", nullable: false),
IsAlreadyPast = table.Column<bool>(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RandomChallenges", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Status",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Label = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Status", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Users",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
FirstName = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Name = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Username = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Email = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false),
Password = table.Column<string>(type: "nvarchar(60)", maxLength: 60, nullable: false),
Salt = table.Column<string>(type: "nvarchar(max)", nullable: false),
Score = table.Column<int>(type: "int", nullable: false),
TotalWin = table.Column<int>(type: "int", nullable: false),
TotalChallenge = table.Column<int>(type: "int", nullable: false),
TotalPodium = table.Column<int>(type: "int", nullable: false),
TotalBonusChallenge = table.Column<int>(type: "int", nullable: false),
Series = table.Column<int>(type: "int", nullable: false),
DesignationId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Users", x => x.Id);
table.ForeignKey(
name: "FK_Users_Designations_DesignationId",
column: x => x.DesignationId,
principalTable: "Designations",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Groups",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Label = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
StatusId = table.Column<int>(type: "int", nullable: false),
Title = table.Column<string>(type: "nvarchar(max)", nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: false),
Duration = table.Column<int>(type: "int", nullable: false),
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Groups", x => x.Id);
table.ForeignKey(
name: "FK_Groups_Status_StatusId",
column: x => x.StatusId,
principalTable: "Status",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "UserAchievements",
columns: table => new
{
UserId = table.Column<int>(type: "int", nullable: false),
AchievementId = table.Column<int>(type: "int", nullable: false),
IsActive = table.Column<bool>(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_UserAchievements", x => new { x.UserId, x.AchievementId });
table.ForeignKey(
name: "FK_UserAchievements_Achievements_AchievementId",
column: x => x.AchievementId,
principalTable: "Achievements",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_UserAchievements_Users_UserId",
column: x => x.UserId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "UserFriends",
columns: table => new
{
UserId = table.Column<int>(type: "int", nullable: false),
FriendId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_UserFriends", x => new { x.UserId, x.FriendId });
table.ForeignKey(
name: "FK_UserFriends_Users_FriendId",
column: x => x.FriendId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_UserFriends_Users_UserId",
column: x => x.UserId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "UserRandomChallenges",
columns: table => new
{
UserId = table.Column<int>(type: "int", nullable: false),
RandomChallengeId = table.Column<int>(type: "int", nullable: false),
Proof = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_UserRandomChallenges", x => new { x.UserId, x.RandomChallengeId });
table.ForeignKey(
name: "FK_UserRandomChallenges_RandomChallenges_RandomChallengeId",
column: x => x.RandomChallengeId,
principalTable: "RandomChallenges",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_UserRandomChallenges_Users_UserId",
column: x => x.UserId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Messages",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Libelle = table.Column<string>(type: "nvarchar(max)", nullable: false),
SendDate = table.Column<DateTime>(type: "datetime2", nullable: false),
UserId = table.Column<int>(type: "int", nullable: false),
GroupId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Messages", x => x.Id);
table.ForeignKey(
name: "FK_Messages_Groups_GroupId",
column: x => x.GroupId,
principalTable: "Groups",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Messages_Users_UserId",
column: x => x.UserId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "UserGroups",
columns: table => new
{
UserId = table.Column<int>(type: "int", nullable: false),
GroupId = table.Column<int>(type: "int", nullable: false),
Proof = table.Column<string>(type: "nvarchar(max)", nullable: true),
Grade = table.Column<string>(type: "nvarchar(max)", nullable: false),
VotedProofId = table.Column<int>(type: "int", nullable: true),
Score = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_UserGroups", x => new { x.UserId, x.GroupId });
table.ForeignKey(
name: "FK_UserGroups_Groups_GroupId",
column: x => x.GroupId,
principalTable: "Groups",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_UserGroups_Users_UserId",
column: x => x.UserId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Groups_StatusId",
table: "Groups",
column: "StatusId");
migrationBuilder.CreateIndex(
name: "IX_Messages_GroupId",
table: "Messages",
column: "GroupId");
migrationBuilder.CreateIndex(
name: "IX_Messages_UserId",
table: "Messages",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_UserAchievements_AchievementId",
table: "UserAchievements",
column: "AchievementId");
migrationBuilder.CreateIndex(
name: "IX_UserFriends_FriendId",
table: "UserFriends",
column: "FriendId");
migrationBuilder.CreateIndex(
name: "IX_UserGroups_GroupId",
table: "UserGroups",
column: "GroupId");
migrationBuilder.CreateIndex(
name: "IX_UserRandomChallenges_RandomChallengeId",
table: "UserRandomChallenges",
column: "RandomChallengeId");
migrationBuilder.CreateIndex(
name: "IX_Users_DesignationId",
table: "Users",
column: "DesignationId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Messages");
migrationBuilder.DropTable(
name: "UserAchievements");
migrationBuilder.DropTable(
name: "UserFriends");
migrationBuilder.DropTable(
name: "UserGroups");
migrationBuilder.DropTable(
name: "UserRandomChallenges");
migrationBuilder.DropTable(
name: "Achievements");
migrationBuilder.DropTable(
name: "Groups");
migrationBuilder.DropTable(
name: "RandomChallenges");
migrationBuilder.DropTable(
name: "Users");
migrationBuilder.DropTable(
name: "Status");
migrationBuilder.DropTable(
name: "Designations");
}
}
}
@@ -0,0 +1,470 @@
// <auto-generated />
using System;
using BeReadyBackend;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BeReadyBackend.Migrations
{
[DbContext(typeof(BeReadyDbContext))]
partial class BeReadyDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("BeReadyBackend.Models.Achievement", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Label")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Achievements");
});
modelBuilder.Entity("BeReadyBackend.Models.Designation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Label")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Designations");
});
modelBuilder.Entity("BeReadyBackend.Models.Group", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<string>("Label")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<int>("StatusId")
.HasColumnType("int");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("StatusId");
b.ToTable("Groups");
});
modelBuilder.Entity("BeReadyBackend.Models.Message", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("Libelle")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("SendDate")
.HasColumnType("datetime2");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("UserId");
b.ToTable("Messages");
});
modelBuilder.Entity("BeReadyBackend.Models.RandomChallenge", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<bool>("IsAlreadyPast")
.HasColumnType("bit");
b.Property<string>("Libelle")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("RandomChallenges");
});
modelBuilder.Entity("BeReadyBackend.Models.Status", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Label")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Status");
});
modelBuilder.Entity("BeReadyBackend.Models.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<int>("DesignationId")
.HasColumnType("int");
b.Property<string>("Email")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FirstName")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Password")
.IsRequired()
.HasMaxLength(60)
.HasColumnType("nvarchar(60)");
b.Property<string>("Salt")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Score")
.HasColumnType("int");
b.Property<int>("Series")
.HasColumnType("int");
b.Property<int>("TotalBonusChallenge")
.HasColumnType("int");
b.Property<int>("TotalChallenge")
.HasColumnType("int");
b.Property<int>("TotalPodium")
.HasColumnType("int");
b.Property<int>("TotalWin")
.HasColumnType("int");
b.Property<string>("Username")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("Id");
b.HasIndex("DesignationId");
b.ToTable("Users");
});
modelBuilder.Entity("BeReadyBackend.Models.UserAchievement", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("AchievementId")
.HasColumnType("int");
b.Property<bool>("IsActive")
.HasColumnType("bit");
b.HasKey("UserId", "AchievementId");
b.HasIndex("AchievementId");
b.ToTable("UserAchievements");
});
modelBuilder.Entity("BeReadyBackend.Models.UserFriend", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("FriendId")
.HasColumnType("int");
b.HasKey("UserId", "FriendId");
b.HasIndex("FriendId");
b.ToTable("UserFriends");
});
modelBuilder.Entity("BeReadyBackend.Models.UserGroup", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("Grade")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Proof")
.HasColumnType("nvarchar(max)");
b.Property<int>("Score")
.HasColumnType("int");
b.Property<int?>("VotedProofId")
.HasColumnType("int");
b.HasKey("UserId", "GroupId");
b.HasIndex("GroupId");
b.ToTable("UserGroups");
});
modelBuilder.Entity("BeReadyBackend.Models.UserRandomChallenge", b =>
{
b.Property<int>("UserId")
.HasColumnType("int");
b.Property<int>("RandomChallengeId")
.HasColumnType("int");
b.Property<string>("Proof")
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RandomChallengeId");
b.HasIndex("RandomChallengeId");
b.ToTable("UserRandomChallenges");
});
modelBuilder.Entity("BeReadyBackend.Models.Group", b =>
{
b.HasOne("BeReadyBackend.Models.Status", "Status")
.WithMany("Groups")
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Status");
});
modelBuilder.Entity("BeReadyBackend.Models.Message", b =>
{
b.HasOne("BeReadyBackend.Models.Group", "Group")
.WithMany("Messages")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("Messages")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.User", b =>
{
b.HasOne("BeReadyBackend.Models.Designation", "Designation")
.WithMany("Users")
.HasForeignKey("DesignationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Designation");
});
modelBuilder.Entity("BeReadyBackend.Models.UserAchievement", b =>
{
b.HasOne("BeReadyBackend.Models.Achievement", "Achievement")
.WithMany("UserAchievements")
.HasForeignKey("AchievementId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserAchievements")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Achievement");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.UserFriend", b =>
{
b.HasOne("BeReadyBackend.Models.User", "Friend")
.WithMany()
.HasForeignKey("FriendId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserFriends")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Friend");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.UserGroup", b =>
{
b.HasOne("BeReadyBackend.Models.Group", "Group")
.WithMany()
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserGroups")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.UserRandomChallenge", b =>
{
b.HasOne("BeReadyBackend.Models.RandomChallenge", "RandomChallenge")
.WithMany("UserRandomChallenges")
.HasForeignKey("RandomChallengeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BeReadyBackend.Models.User", "User")
.WithMany("UserRandomChallenges")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RandomChallenge");
b.Navigation("User");
});
modelBuilder.Entity("BeReadyBackend.Models.Achievement", b =>
{
b.Navigation("UserAchievements");
});
modelBuilder.Entity("BeReadyBackend.Models.Designation", b =>
{
b.Navigation("Users");
});
modelBuilder.Entity("BeReadyBackend.Models.Group", b =>
{
b.Navigation("Messages");
});
modelBuilder.Entity("BeReadyBackend.Models.RandomChallenge", b =>
{
b.Navigation("UserRandomChallenges");
});
modelBuilder.Entity("BeReadyBackend.Models.Status", b =>
{
b.Navigation("Groups");
});
modelBuilder.Entity("BeReadyBackend.Models.User", b =>
{
b.Navigation("Messages");
b.Navigation("UserAchievements");
b.Navigation("UserFriends");
b.Navigation("UserGroups");
b.Navigation("UserRandomChallenges");
});
#pragma warning restore 612, 618
}
}
}