using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable #pragma warning disable CA1814 // Prefer jagged arrays over multidimensional namespace LingAdmin.API.Migrations { /// public partial class InitialCreate : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Languages", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Code = table.Column(type: "nvarchar(max)", nullable: false), Name = table.Column(type: "nvarchar(max)", nullable: false), Version = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Languages", x => x.Id); }); migrationBuilder.CreateTable( name: "MenuItems", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(max)", nullable: false), Path = table.Column(type: "nvarchar(max)", nullable: false), Icon = table.Column(type: "nvarchar(max)", nullable: false), Order = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MenuItems", x => x.Id); }); migrationBuilder.CreateTable( name: "Requisitions", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), ReqNo = table.Column(type: "nvarchar(max)", nullable: false), Requester = table.Column(type: "nvarchar(max)", nullable: false), Department = table.Column(type: "nvarchar(max)", nullable: false), Date = table.Column(type: "datetime2", nullable: false), Status = table.Column(type: "nvarchar(max)", nullable: false), Description = table.Column(type: "nvarchar(max)", nullable: true), TotalAmount = table.Column(type: "decimal(18,2)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Requisitions", x => x.Id); }); migrationBuilder.CreateTable( name: "Translations", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), LanguageCode = table.Column(type: "nvarchar(max)", nullable: false), Key = table.Column(type: "nvarchar(max)", nullable: false), Value = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Translations", x => x.Id); }); migrationBuilder.CreateTable( name: "Users", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(max)", nullable: false), Email = table.Column(type: "nvarchar(max)", nullable: false), Role = table.Column(type: "nvarchar(max)", nullable: false), Status = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Users", x => x.Id); }); migrationBuilder.CreateTable( name: "RequisitionItems", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), RequisitionId = table.Column(type: "int", nullable: false), ItemName = table.Column(type: "nvarchar(max)", nullable: false), Quantity = table.Column(type: "int", nullable: false), Price = table.Column(type: "decimal(18,2)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RequisitionItems", x => x.Id); table.ForeignKey( name: "FK_RequisitionItems_Requisitions_RequisitionId", column: x => x.RequisitionId, principalTable: "Requisitions", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.InsertData( table: "Languages", columns: new[] { "Id", "Code", "Name", "Version" }, values: new object[,] { { 1, "en-US", "English", "1.2" }, { 2, "zh-CN", "简体中文", "1.3" } }); migrationBuilder.InsertData( table: "MenuItems", columns: new[] { "Id", "Icon", "Name", "Order", "Path" }, values: new object[,] { { 1, "LayoutDashboard", "common.dashboard", 1, "/" }, { 2, "FileText", "common.requisitions", 2, "/requisitions" }, { 3, "Users", "common.users", 3, "/users" }, { 4, "Settings", "common.settings", 4, "/settings" } }); migrationBuilder.InsertData( table: "Requisitions", columns: new[] { "Id", "Date", "Department", "Description", "ReqNo", "Requester", "Status", "TotalAmount" }, values: new object[,] { { 101, new DateTime(2023, 10, 25, 0, 0, 0, 0, DateTimeKind.Unspecified), "IT", "Purchase of new laptops for the development team.", "PR-2023001", "John Doe", "Approved", 5000m }, { 102, new DateTime(2023, 10, 26, 0, 0, 0, 0, DateTimeKind.Unspecified), "HR", "Office supplies for HR department.", "PR-2023002", "Jane Smith", "Pending", 1200m }, { 103, new DateTime(2023, 10, 27, 0, 0, 0, 0, DateTimeKind.Unspecified), "Sales", "Marketing materials for Q4 campaign.", "PR-2023003", "Bob Johnson", "Draft", 3500m } }); migrationBuilder.InsertData( table: "Users", columns: new[] { "Id", "Email", "Name", "Role", "Status" }, values: new object[,] { { 1, "john@example.com", "John Doe", "Admin", "Active" }, { 2, "jane@example.com", "Jane Smith", "User", "Inactive" }, { 3, "bob@example.com", "Bob Johnson", "Editor", "Active" }, { 4, "alice@example.com", "Alice Williams", "User", "Active" }, { 5, "charlie@example.com", "Charlie Brown", "User", "Inactive" }, { 6, "david@example.com", "David Miller", "Admin", "Active" }, { 7, "eva@example.com", "Eva Davis", "Editor", "Active" }, { 8, "frank@example.com", "Frank Wilson", "User", "Inactive" }, { 9, "grace@example.com", "Grace Taylor", "User", "Active" }, { 10, "henry@example.com", "Henry Anderson", "User", "Active" } }); migrationBuilder.InsertData( table: "RequisitionItems", columns: new[] { "Id", "ItemName", "Price", "Quantity", "RequisitionId" }, values: new object[,] { { 1, "MacBook Pro 16", 2400m, 2, 101 }, { 2, "Dell Monitor 27", 300m, 5, 101 } }); migrationBuilder.CreateIndex( name: "IX_RequisitionItems_RequisitionId", table: "RequisitionItems", column: "RequisitionId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Languages"); migrationBuilder.DropTable( name: "MenuItems"); migrationBuilder.DropTable( name: "RequisitionItems"); migrationBuilder.DropTable( name: "Translations"); migrationBuilder.DropTable( name: "Users"); migrationBuilder.DropTable( name: "Requisitions"); } } }