using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable #pragma warning disable CA1814 // Prefer jagged arrays over multidimensional namespace LingAdmin.AuthorizationService.Migrations { /// public partial class InitialCreate : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Permissions", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Code = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Description = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), Resource = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Action = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), CreatedAt = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Permissions", x => x.Id); }); migrationBuilder.CreateTable( name: "Roles", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Code = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), Description = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), IsSystem = table.Column(type: "bit", nullable: false), CreatedAt = table.Column(type: "datetime2", nullable: false), UpdatedAt = table.Column(type: "datetime2", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Roles", x => x.Id); }); migrationBuilder.CreateTable( name: "RolePermissions", columns: table => new { RoleId = table.Column(type: "int", nullable: false), PermissionId = table.Column(type: "int", nullable: false), AssignedAt = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RolePermissions", x => new { x.RoleId, x.PermissionId }); table.ForeignKey( name: "FK_RolePermissions_Permissions_PermissionId", column: x => x.PermissionId, principalTable: "Permissions", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_RolePermissions_Roles_RoleId", column: x => x.RoleId, principalTable: "Roles", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "UserRoles", columns: table => new { UserId = table.Column(type: "int", nullable: false), RoleId = table.Column(type: "int", nullable: false), AssignedAt = table.Column(type: "datetime2", nullable: false), AssignedBy = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_UserRoles", x => new { x.UserId, x.RoleId }); table.ForeignKey( name: "FK_UserRoles_Roles_RoleId", column: x => x.RoleId, principalTable: "Roles", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.InsertData( table: "Permissions", columns: new[] { "Id", "Action", "Code", "CreatedAt", "Description", "Name", "Resource" }, values: new object[,] { { 1, "read", "users:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看用户", "users" }, { 2, "create", "users:create", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "创建用户", "users" }, { 3, "update", "users:update", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "编辑用户", "users" }, { 4, "delete", "users:delete", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "删除用户", "users" }, { 5, "read", "roles:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看角色", "roles" }, { 6, "create", "roles:create", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "创建角色", "roles" }, { 7, "update", "roles:update", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "编辑角色", "roles" }, { 8, "delete", "roles:delete", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "删除角色", "roles" }, { 9, "read", "permissions:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看权限", "permissions" }, { 10, "assign", "permissions:assign", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "分配权限", "permissions" }, { 11, "read", "requisitions:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看请购单", "requisitions" }, { 12, "create", "requisitions:create", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "创建请购单", "requisitions" }, { 13, "update", "requisitions:update", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "编辑请购单", "requisitions" }, { 14, "delete", "requisitions:delete", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "删除请购单", "requisitions" }, { 15, "approve", "requisitions:approve", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "审批请购单", "requisitions" }, { 16, "read", "inventory:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看库存", "inventory" }, { 17, "manage", "inventory:manage", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "管理库存", "inventory" }, { 18, "read", "audit:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看审计日志", "audit" }, { 19, "read", "settings:read", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "查看设置", "settings" }, { 20, "update", "settings:update", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null, "修改设置", "settings" } }); migrationBuilder.InsertData( table: "Roles", columns: new[] { "Id", "Code", "CreatedAt", "Description", "IsSystem", "Name", "UpdatedAt" }, values: new object[,] { { 1, "SuperAdmin", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), "拥有所有权限", true, "超级管理员", null }, { 2, "Admin", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), "系统管理员", true, "管理员", null }, { 3, "User", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), "普通用户", true, "普通用户", null }, { 4, "Editor", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), "内容编辑", false, "编辑", null }, { 5, "Auditor", new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), "审核员", false, "审核员", null } }); migrationBuilder.InsertData( table: "RolePermissions", columns: new[] { "PermissionId", "RoleId", "AssignedAt" }, values: new object[,] { { 1, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 2, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 3, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 4, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 5, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 6, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 7, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 8, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 9, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 10, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 11, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 12, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 13, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 14, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 15, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 16, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 17, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 18, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 19, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 20, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 1, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 2, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 3, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 5, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 6, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 7, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 9, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 10, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 11, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 12, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 13, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 14, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 15, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 16, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 17, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 18, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 19, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 20, 2, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 1, 3, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 5, 3, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 11, 3, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 12, 3, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 16, 3, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 19, 3, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 1, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 5, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 11, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 12, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 13, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 16, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 19, 4, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 1, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 5, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 11, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 15, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 16, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 18, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) }, { 19, 5, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) } }); migrationBuilder.InsertData( table: "UserRoles", columns: new[] { "RoleId", "UserId", "AssignedAt", "AssignedBy" }, values: new object[] { 1, 1, new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), null }); migrationBuilder.CreateIndex( name: "IX_Permissions_Code", table: "Permissions", column: "Code", unique: true); migrationBuilder.CreateIndex( name: "IX_RolePermissions_PermissionId", table: "RolePermissions", column: "PermissionId"); migrationBuilder.CreateIndex( name: "IX_Roles_Code", table: "Roles", column: "Code", unique: true); migrationBuilder.CreateIndex( name: "IX_UserRoles_RoleId", table: "UserRoles", column: "RoleId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "RolePermissions"); migrationBuilder.DropTable( name: "UserRoles"); migrationBuilder.DropTable( name: "Permissions"); migrationBuilder.DropTable( name: "Roles"); } } }