Enable navigation properties for user roles, use service in place of managers

This commit is contained in:
Pat Hartl 2024-10-16 01:54:51 -05:00
parent 14df6bc95c
commit 91829f601d
19 changed files with 2906 additions and 260 deletions

View file

@ -0,0 +1,85 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace LANCommander.Migrations
{
/// <inheritdoc />
public partial class AddUserRoleNavigationProperties : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Roles_Users_UserId",
table: "Roles");
migrationBuilder.DropPrimaryKey(
name: "PK_UserRoles",
table: "UserRoles");
migrationBuilder.DropIndex(
name: "IX_UserRoles_RoleId",
table: "UserRoles");
migrationBuilder.DropIndex(
name: "IX_Roles_UserId",
table: "Roles");
migrationBuilder.DropColumn(
name: "UserId",
table: "Roles");
migrationBuilder.AddPrimaryKey(
name: "PK_UserRoles",
table: "UserRoles",
columns: new[] { "RoleId", "UserId" });
migrationBuilder.CreateIndex(
name: "IX_UserRoles_UserId",
table: "UserRoles",
column: "UserId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropPrimaryKey(
name: "PK_UserRoles",
table: "UserRoles");
migrationBuilder.DropIndex(
name: "IX_UserRoles_UserId",
table: "UserRoles");
migrationBuilder.AddColumn<Guid>(
name: "UserId",
table: "Roles",
type: "TEXT",
nullable: true);
migrationBuilder.AddPrimaryKey(
name: "PK_UserRoles",
table: "UserRoles",
columns: new[] { "UserId", "RoleId" });
migrationBuilder.CreateIndex(
name: "IX_UserRoles_RoleId",
table: "UserRoles",
column: "RoleId");
migrationBuilder.CreateIndex(
name: "IX_Roles_UserId",
table: "Roles",
column: "UserId");
migrationBuilder.AddForeignKey(
name: "FK_Roles_Users_UserId",
table: "Roles",
column: "UserId",
principalTable: "Users",
principalColumn: "Id");
}
}
}

View file

@ -953,9 +953,6 @@ namespace LANCommander.Migrations
b.Property<DateTime>("UpdatedOn")
.HasColumnType("TEXT");
b.Property<Guid?>("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("CreatedById");
@ -966,8 +963,6 @@ namespace LANCommander.Migrations
b.HasIndex("UpdatedById");
b.HasIndex("UserId");
b.ToTable("Roles", (string)null);
});
@ -1525,21 +1520,6 @@ namespace LANCommander.Migrations
b.ToTable("UserLogins", (string)null);
});
modelBuilder.Entity("LANCommander.Server.Data.Models.UserRole", b =>
{
b.Property<Guid>("UserId")
.HasColumnType("TEXT");
b.Property<Guid>("RoleId")
.HasColumnType("TEXT");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("UserRoles", (string)null);
});
modelBuilder.Entity("LANCommander.Server.Data.Models.UserToken", b =>
{
b.Property<Guid>("UserId")
@ -1619,6 +1599,21 @@ namespace LANCommander.Migrations
b.ToTable("RoleCollection");
});
modelBuilder.Entity("UserRoles", b =>
{
b.Property<Guid>("RoleId")
.HasColumnType("TEXT");
b.Property<Guid>("UserId")
.HasColumnType("TEXT");
b.HasKey("RoleId", "UserId");
b.HasIndex("UserId");
b.ToTable("UserRoles");
});
modelBuilder.Entity("CategoryGame", b =>
{
b.HasOne("LANCommander.Server.Data.Models.Category", null)
@ -2210,10 +2205,6 @@ namespace LANCommander.Migrations
.HasForeignKey("UpdatedById")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("LANCommander.Server.Data.Models.User", null)
.WithMany("Roles")
.HasForeignKey("UserId");
b.Navigation("CreatedBy");
b.Navigation("UpdatedBy");
@ -2464,21 +2455,6 @@ namespace LANCommander.Migrations
.IsRequired();
});
modelBuilder.Entity("LANCommander.Server.Data.Models.UserRole", b =>
{
b.HasOne("LANCommander.Server.Data.Models.Role", null)
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("LANCommander.Server.Data.Models.User", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("LANCommander.Server.Data.Models.UserToken", b =>
{
b.HasOne("LANCommander.Server.Data.Models.User", null)
@ -2548,6 +2524,21 @@ namespace LANCommander.Migrations
.IsRequired();
});
modelBuilder.Entity("UserRoles", b =>
{
b.HasOne("LANCommander.Server.Data.Models.Role", null)
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("LANCommander.Server.Data.Models.User", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b =>
{
b.Navigation("Children");
@ -2631,8 +2622,6 @@ namespace LANCommander.Migrations
b.Navigation("Media");
b.Navigation("PlaySessions");
b.Navigation("Roles");
});
#pragma warning restore 612, 618
}