using System; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable #pragma warning disable CA1814 // Prefer jagged arrays over multidimensional namespace PSTW_CentralSystem.Migrations { /// public partial class Initiate : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetRoles", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Description = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NormalizedName = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ConcurrencyStamp = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetRoles", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Companies", columns: table => new { CompanyId = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), CompanyName = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_Companies", x => x.CompanyId); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Manufacturers", columns: table => new { ManufacturerId = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ManufacturerName = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_Manufacturers", x => x.ManufacturerId); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ModuleSettings", columns: table => new { SettingId = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ModuleName = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), AllowedUserType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MethodAllowedUserType = table.Column(type: "json", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ModuleStatus = table.Column(type: "int", nullable: false), Description = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_ModuleSettings", x => x.SettingId); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Suppliers", columns: table => new { SupplierId = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), SupplierName = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), SupplierGender = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), SupplierEmail = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), SupplierPhoneNo = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_Suppliers", x => x.SupplierId); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetRoleClaims", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), RoleId = table.Column(type: "int", nullable: false), ClaimType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ClaimValue = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id); table.ForeignKey( name: "FK_AspNetRoleClaims_AspNetRoles_RoleId", column: x => x.RoleId, principalTable: "AspNetRoles", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Departments", columns: table => new { DepartmentId = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), DepartmentName = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), DepartmentCode = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), CompanyId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Departments", x => x.DepartmentId); table.ForeignKey( name: "FK_Departments_Companies_CompanyId", column: x => x.CompanyId, principalTable: "Companies", principalColumn: "CompanyId", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Products", columns: table => new { ProductId = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ProductName = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ManufacturerId = table.Column(type: "int", nullable: false), Category = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ModelNo = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), QuantityProduct = table.Column(type: "int", nullable: true), ImageProduct = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_Products", x => x.ProductId); table.ForeignKey( name: "FK_Products_Manufacturers_ManufacturerId", column: x => x.ManufacturerId, principalTable: "Manufacturers", principalColumn: "ManufacturerId", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUsers", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), FullName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), UserInfoStatus = table.Column(type: "int", nullable: true), departmentId = table.Column(type: "int", nullable: true), UserName = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NormalizedUserName = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Email = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NormalizedEmail = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EmailConfirmed = table.Column(type: "tinyint(1)", nullable: false), PasswordHash = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SecurityStamp = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ConcurrencyStamp = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PhoneNumber = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PhoneNumberConfirmed = table.Column(type: "tinyint(1)", nullable: false), TwoFactorEnabled = table.Column(type: "tinyint(1)", nullable: false), LockoutEnd = table.Column(type: "datetime(6)", nullable: true), LockoutEnabled = table.Column(type: "tinyint(1)", nullable: false), AccessFailedCount = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AspNetUsers", x => x.Id); table.ForeignKey( name: "FK_AspNetUsers_Departments_departmentId", column: x => x.departmentId, principalTable: "Departments", principalColumn: "DepartmentId"); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserClaims", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), UserId = table.Column(type: "int", nullable: false), ClaimType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ClaimValue = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetUserClaims", x => x.Id); table.ForeignKey( name: "FK_AspNetUserClaims_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserLogins", columns: table => new { LoginProvider = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ProviderKey = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ProviderDisplayName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), UserId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey }); table.ForeignKey( name: "FK_AspNetUserLogins_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserRoles", columns: table => new { UserId = table.Column(type: "int", nullable: false), RoleId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId }); table.ForeignKey( name: "FK_AspNetUserRoles_AspNetRoles_RoleId", column: x => x.RoleId, principalTable: "AspNetRoles", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_AspNetUserRoles_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserTokens", columns: table => new { UserId = table.Column(type: "int", nullable: false), LoginProvider = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Value = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); table.ForeignKey( name: "FK_AspNetUserTokens_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Items", columns: table => new { ItemID = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), UniqueID = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), CompanyId = table.Column(type: "int", nullable: false), DepartmentId = table.Column(type: "int", nullable: false), ProductId = table.Column(type: "int", nullable: false), SerialNumber = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), TeamType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Quantity = table.Column(type: "int", nullable: false), Supplier = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), PurchaseDate = table.Column(type: "datetime(6)", nullable: false), PONo = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Currency = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), PriceInRM = table.Column(type: "float", nullable: false), CurrencyRate = table.Column(type: "float", nullable: false), ConvertPrice = table.Column(type: "float", nullable: false), DONo = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), DODate = table.Column(type: "datetime(6)", nullable: true), Warranty = table.Column(type: "int", nullable: false), EndWDate = table.Column(type: "datetime(6)", nullable: false), InvoiceNo = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), InvoiceDate = table.Column(type: "datetime(6)", nullable: true), ItemStatus = table.Column(type: "int", nullable: false, comment: "1 = In stock; 2 = Item Moving; 3 = Item Out; 4 = Item Broken; 5 = Item Lost; 6 = Item Stolen; 7 = Item Damaged; 8 = Item Discarded; 9 = Item Destroyed; 10 = Item Finished;"), ItemLocation = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), CreatedByUserId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Items", x => x.ItemID); table.ForeignKey( name: "FK_Items_AspNetUsers_CreatedByUserId", column: x => x.CreatedByUserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Items_Companies_CompanyId", column: x => x.CompanyId, principalTable: "Companies", principalColumn: "CompanyId", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Items_Departments_DepartmentId", column: x => x.DepartmentId, principalTable: "Departments", principalColumn: "DepartmentId", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Items_Products_ProductId", column: x => x.ProductId, principalTable: "Products", principalColumn: "ProductId", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.InsertData( table: "AspNetRoles", columns: new[] { "Id", "ConcurrencyStamp", "Description", "Name", "NormalizedName" }, values: new object[,] { { 1, null, "Can access all pages", "SuperAdmin", "SUPERADMIN" }, { 2, null, "Can access some admin pages", "SystemAdmin", "SYSTEMADMIN" }, { 3, null, "Can access operation pages", "Engineer", "ENGINEER" }, { 4, null, "Can access data viewer pages", "Observer", "OBSERVER" } }); migrationBuilder.InsertData( table: "AspNetUsers", columns: new[] { "Id", "AccessFailedCount", "ConcurrencyStamp", "Email", "EmailConfirmed", "FullName", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "SecurityStamp", "TwoFactorEnabled", "UserInfoStatus", "UserName", "departmentId" }, values: new object[,] { { 1, 0, "7a7ee381-cecc-4268-9fc4-1f04eebfcb2c", "admin@pstw.com.my", true, "MAAdmin", false, null, "ADMIN@PSTW.COM.MY", "ADMIN@PSTW.COM.MY", "AQAAAAIAAYagAAAAEKL4x2bfz8vXmcqMKqRsdQPdP9FVEhj4IR3FVvfFdeMdJb1Z7vekx6E3Qzycgpj3WA==", null, false, "5f7b5fe6-fb4d-4350-93aa-f3103c6e9a4d", false, 1, "admin@pstw.com.my", null }, { 2, 0, "fd4022cd-e08a-43c1-823c-573a86e86a9d", "sysadmin@pstw.com.my", true, "SysAdmin", false, null, "SYSADMIN@PSTW.COM.MY", "SYSADMIN@PSTW.COM.MY", "AQAAAAIAAYagAAAAENI+MWqt+OwSLiTBhOC5LBV7nWb8hnfcGEnUOLpadTdCHa6rV0ukUo6Hd5nGRL5rTw==", null, false, "0b4291c9-d818-4485-bd96-adde7e14286d", false, 1, "sysadmin@pstw.com.my", null } }); migrationBuilder.InsertData( table: "AspNetUserRoles", columns: new[] { "RoleId", "UserId" }, values: new object[,] { { 1, 1 }, { 2, 2 } }); migrationBuilder.CreateIndex( name: "IX_AspNetRoleClaims_RoleId", table: "AspNetRoleClaims", column: "RoleId"); migrationBuilder.CreateIndex( name: "RoleNameIndex", table: "AspNetRoles", column: "NormalizedName", unique: true); migrationBuilder.CreateIndex( name: "IX_AspNetUserClaims_UserId", table: "AspNetUserClaims", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_AspNetUserLogins_UserId", table: "AspNetUserLogins", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_AspNetUserRoles_RoleId", table: "AspNetUserRoles", column: "RoleId"); migrationBuilder.CreateIndex( name: "EmailIndex", table: "AspNetUsers", column: "NormalizedEmail"); migrationBuilder.CreateIndex( name: "IX_AspNetUsers_departmentId", table: "AspNetUsers", column: "departmentId"); migrationBuilder.CreateIndex( name: "UserNameIndex", table: "AspNetUsers", column: "NormalizedUserName", unique: true); migrationBuilder.CreateIndex( name: "IX_Departments_CompanyId", table: "Departments", column: "CompanyId"); migrationBuilder.CreateIndex( name: "IX_Items_CompanyId", table: "Items", column: "CompanyId"); migrationBuilder.CreateIndex( name: "IX_Items_CreatedByUserId", table: "Items", column: "CreatedByUserId"); migrationBuilder.CreateIndex( name: "IX_Items_DepartmentId", table: "Items", column: "DepartmentId"); migrationBuilder.CreateIndex( name: "IX_Items_ProductId", table: "Items", column: "ProductId"); migrationBuilder.CreateIndex( name: "IX_Products_ManufacturerId", table: "Products", column: "ManufacturerId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "AspNetRoleClaims"); migrationBuilder.DropTable( name: "AspNetUserClaims"); migrationBuilder.DropTable( name: "AspNetUserLogins"); migrationBuilder.DropTable( name: "AspNetUserRoles"); migrationBuilder.DropTable( name: "AspNetUserTokens"); migrationBuilder.DropTable( name: "Items"); migrationBuilder.DropTable( name: "ModuleSettings"); migrationBuilder.DropTable( name: "Suppliers"); migrationBuilder.DropTable( name: "AspNetRoles"); migrationBuilder.DropTable( name: "AspNetUsers"); migrationBuilder.DropTable( name: "Products"); migrationBuilder.DropTable( name: "Departments"); migrationBuilder.DropTable( name: "Manufacturers"); migrationBuilder.DropTable( name: "Companies"); } } }