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");
}
}
}