using System; using Microsoft.EntityFrameworkCore.Migrations; namespace Data.Migrations { public partial class IntialMigration : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Role", columns: table => new { Id = table.Column(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(nullable: false) }, constraints: table => { table.PrimaryKey("PK_Role", x => x.Id); }); migrationBuilder.CreateTable( name: "Permission", columns: table => new { Id = table.Column(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(nullable: false), RoleId = table.Column(nullable: true) }, constraints: table => { table.PrimaryKey("PK_Permission", x => x.Id); table.ForeignKey( name: "FK_Permission_Role_RoleId", column: x => x.RoleId, principalTable: "Role", principalColumn: "Id", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateTable( name: "User", columns: table => new { Id = table.Column(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(nullable: false), Password = table.Column(nullable: false), RoleId = table.Column(nullable: false) }, constraints: table => { table.PrimaryKey("PK_User", x => x.Id); table.ForeignKey( name: "FK_User_Role_RoleId", column: x => x.RoleId, principalTable: "Role", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Deal", columns: table => new { Id = table.Column(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), UserId = table.Column(nullable: false), Time = table.Column(rowVersion: true, nullable: false) }, constraints: table => { table.PrimaryKey("PK_Deal", x => x.Id); table.ForeignKey( name: "FK_Deal_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Stock", columns: table => new { Id = table.Column(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), UserId = table.Column(nullable: false), Time = table.Column(rowVersion: true, nullable: false) }, constraints: table => { table.PrimaryKey("PK_Stock", x => x.Id); table.ForeignKey( name: "FK_Stock_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Product", columns: table => new { Id = table.Column(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(nullable: false), Price = table.Column(nullable: false), AmountInStock = table.Column(nullable: false), DealId = table.Column(nullable: true), StockId = table.Column(nullable: true) }, constraints: table => { table.PrimaryKey("PK_Product", x => x.Id); table.ForeignKey( name: "FK_Product_Deal_DealId", column: x => x.DealId, principalTable: "Deal", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_Product_Stock_StockId", column: x => x.StockId, principalTable: "Stock", principalColumn: "Id", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateIndex( name: "IX_Deal_UserId", table: "Deal", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_Permission_Name", table: "Permission", column: "Name", unique: true); migrationBuilder.CreateIndex( name: "IX_Permission_RoleId", table: "Permission", column: "RoleId"); migrationBuilder.CreateIndex( name: "IX_Product_DealId", table: "Product", column: "DealId"); migrationBuilder.CreateIndex( name: "IX_Product_Name", table: "Product", column: "Name", unique: true); migrationBuilder.CreateIndex( name: "IX_Product_StockId", table: "Product", column: "StockId"); migrationBuilder.CreateIndex( name: "IX_Role_Name", table: "Role", column: "Name", unique: true); migrationBuilder.CreateIndex( name: "IX_Stock_UserId", table: "Stock", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_User_RoleId", table: "User", column: "RoleId"); migrationBuilder.CreateIndex( name: "IX_User_Name_Password", table: "User", columns: new[] { "Name", "Password" }, unique: true); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Permission"); migrationBuilder.DropTable( name: "Product"); migrationBuilder.DropTable( name: "Deal"); migrationBuilder.DropTable( name: "Stock"); migrationBuilder.DropTable( name: "User"); migrationBuilder.DropTable( name: "Role"); } } }