using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace ApplicationHub.Data.EF.Migrations { /// public partial class InitDB : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Groups", columns: table => new { Id = table.Column(type: "TEXT", nullable: false), Name = table.Column(type: "TEXT", maxLength: 255, nullable: false) }, constraints: table => { table.PrimaryKey("PK_Groups", x => x.Id); }); migrationBuilder.CreateTable( name: "Rights", columns: table => new { Id = table.Column(type: "TEXT", nullable: false), Name = table.Column(type: "TEXT", maxLength: 255, nullable: false) }, constraints: table => { table.PrimaryKey("PK_Rights", x => x.Id); }); migrationBuilder.CreateTable( name: "Users", columns: table => new { Id = table.Column(type: "TEXT", nullable: false), UserName = table.Column(type: "TEXT", maxLength: 255, nullable: false), Email = table.Column(type: "TEXT", maxLength: 255, nullable: false), PasswordHash = table.Column(type: "TEXT", maxLength: 255, nullable: true), Active = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Users", x => x.Id); }); migrationBuilder.CreateTable( name: "GroupEntityRightEntity", columns: table => new { GroupsId = table.Column(type: "TEXT", nullable: false), RightsId = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_GroupEntityRightEntity", x => new { x.GroupsId, x.RightsId }); table.ForeignKey( name: "FK_GroupEntityRightEntity_Groups_GroupsId", column: x => x.GroupsId, principalTable: "Groups", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_GroupEntityRightEntity_Rights_RightsId", column: x => x.RightsId, principalTable: "Rights", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "GroupEntityUserEntity", columns: table => new { GroupsId = table.Column(type: "TEXT", nullable: false), UsersId = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_GroupEntityUserEntity", x => new { x.GroupsId, x.UsersId }); table.ForeignKey( name: "FK_GroupEntityUserEntity_Groups_GroupsId", column: x => x.GroupsId, principalTable: "Groups", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_GroupEntityUserEntity_Users_UsersId", column: x => x.UsersId, principalTable: "Users", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_GroupEntityRightEntity_RightsId", table: "GroupEntityRightEntity", column: "RightsId"); migrationBuilder.CreateIndex( name: "IX_GroupEntityUserEntity_UsersId", table: "GroupEntityUserEntity", column: "UsersId"); var userAdminId = Guid.NewGuid(); var groupAdminId = Guid.NewGuid(); var groupUserId = Guid.NewGuid(); var groupGuestId = Guid.NewGuid(); var readRightId = Guid.NewGuid(); var writeRightId = Guid.NewGuid(); var deleteRightId = Guid.NewGuid(); migrationBuilder.InsertData("Rights", ["Id", "Name"], [readRightId, "READ"]); migrationBuilder.InsertData("Rights", ["Id", "Name"], [writeRightId, "WRITE"]); migrationBuilder.InsertData("Rights", ["Id", "Name"], [deleteRightId, "DELETE"]); migrationBuilder.InsertData("Groups", ["Id", "Name"], [groupAdminId, "Group_Name_Administrator"]); migrationBuilder.InsertData("Groups", ["Id", "Name"], [groupUserId, "Group_Name_User"]); migrationBuilder.InsertData("Groups", ["Id", "Name"], [groupGuestId, "Group_Name_Guest"]); migrationBuilder.InsertData("Users", ["Id", "UserName", "Email", "PasswordHash", "Active"], [userAdminId, "admin", "admin@example.de", "AQAAAAIAAYagAAAAEFTsFQQz1Yp6d2zw5iQ4AzNhQQ7QuvdhK3Y2kN/7wp97OXgB2fTrabYqGDYdFSMMkQ==", true]); migrationBuilder.InsertData("GroupEntityRightEntity", ["GroupsId", "RightsId"], [groupAdminId, readRightId]); migrationBuilder.InsertData("GroupEntityRightEntity", ["GroupsId", "RightsId"], [groupAdminId, writeRightId]); migrationBuilder.InsertData("GroupEntityRightEntity", ["GroupsId", "RightsId"], [groupAdminId, deleteRightId]); migrationBuilder.InsertData("GroupEntityRightEntity", ["GroupsId", "RightsId"], [groupUserId, readRightId]); migrationBuilder.InsertData("GroupEntityRightEntity", ["GroupsId", "RightsId"], [groupUserId, writeRightId]); migrationBuilder.InsertData("GroupEntityRightEntity", ["GroupsId", "RightsId"], [groupGuestId, readRightId]); migrationBuilder.InsertData("GroupEntityUserEntity", ["GroupsId", "UsersId"], [groupAdminId, userAdminId]); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "GroupEntityRightEntity"); migrationBuilder.DropTable( name: "GroupEntityUserEntity"); migrationBuilder.DropTable( name: "Rights"); migrationBuilder.DropTable( name: "Groups"); migrationBuilder.DropTable( name: "Users"); } } }