using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace BankDatabaseImplement.Migrations { /// public partial class NewTransferAndCrediting : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Cashiers", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Password = table.Column(type: "nvarchar(max)", nullable: false), Name = table.Column(type: "nvarchar(max)", nullable: false), Surname = table.Column(type: "nvarchar(max)", nullable: false), Patronymic = table.Column(type: "nvarchar(max)", nullable: false), Email = table.Column(type: "nvarchar(max)", nullable: false), Telephone = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Cashiers", x => x.Id); }); migrationBuilder.CreateTable( name: "Clients", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(max)", nullable: false), Surname = table.Column(type: "nvarchar(max)", nullable: false), Patronymic = table.Column(type: "nvarchar(max)", nullable: false), Telephone = table.Column(type: "nvarchar(max)", nullable: false), Email = table.Column(type: "nvarchar(max)", nullable: false), Password = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Clients", x => x.Id); }); migrationBuilder.CreateTable( name: "Accounts", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), AccountNumber = table.Column(type: "nvarchar(max)", nullable: false), CashierId = table.Column(type: "int", nullable: false), ClientId = table.Column(type: "int", nullable: false), PasswordAccount = table.Column(type: "nvarchar(max)", nullable: false), Balance = table.Column(type: "float", nullable: false), DateOpen = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Accounts", x => x.Id); table.ForeignKey( name: "FK_Accounts_Cashiers_CashierId", column: x => x.CashierId, principalTable: "Cashiers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Accounts_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Cards", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), ClientID = table.Column(type: "int", nullable: false), AccountId = table.Column(type: "int", nullable: false), Number = table.Column(type: "nvarchar(max)", nullable: false), CVC = table.Column(type: "nvarchar(max)", nullable: false), Period = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Cards", x => x.Id); table.ForeignKey( name: "FK_Cards_Accounts_AccountId", column: x => x.AccountId, principalTable: "Accounts", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Cards_Clients_ClientID", column: x => x.ClientID, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.NoAction); }); migrationBuilder.CreateTable( name: "MoneyTransfers", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Sum = table.Column(type: "int", nullable: false), AccountSenderId = table.Column(type: "int", nullable: false), AccountPayeeId = table.Column(type: "int", nullable: false), DateOperation = table.Column(type: "datetime2", nullable: false), CreditingId = table.Column(type: "int", nullable: false), CashierId = table.Column(type: "int", nullable: false), AccountPayeerId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MoneyTransfers", x => x.Id); table.ForeignKey( name: "FK_MoneyTransfers_Accounts_AccountPayeerId", column: x => x.AccountPayeerId, principalTable: "Accounts", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MoneyTransfers_Accounts_AccountSenderId", column: x => x.AccountSenderId, principalTable: "Accounts", principalColumn: "Id", onDelete: ReferentialAction.NoAction); table.ForeignKey( name: "FK_MoneyTransfers_Cashiers_CashierId", column: x => x.CashierId, principalTable: "Cashiers", principalColumn: "Id", onDelete: ReferentialAction.NoAction); }); migrationBuilder.CreateTable( name: "Creditings", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CardId = table.Column(type: "int", nullable: false), Sum = table.Column(type: "int", nullable: false), DateOpen = table.Column(type: "datetime2", nullable: false), DateClose = table.Column(type: "datetime2", nullable: true), Status = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Creditings", x => x.Id); table.ForeignKey( name: "FK_Creditings_Cards_CardId", column: x => x.CardId, principalTable: "Cards", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Debitings", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CardId = table.Column(type: "int", nullable: false), Sum = table.Column(type: "int", nullable: false), DateOpen = table.Column(type: "datetime2", nullable: false), DateClose = table.Column(type: "datetime2", nullable: true), Status = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Debitings", x => x.Id); table.ForeignKey( name: "FK_Debitings_Cards_CardId", column: x => x.CardId, principalTable: "Cards", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "CashWithdrawals", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), DebitingId = table.Column(type: "int", nullable: false), AccountId = table.Column(type: "int", nullable: false), CashierId = table.Column(type: "int", nullable: false), Sum = table.Column(type: "int", nullable: false), DateOperation = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_CashWithdrawals", x => x.Id); table.ForeignKey( name: "FK_CashWithdrawals_Accounts_AccountId", column: x => x.AccountId, principalTable: "Accounts", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_CashWithdrawals_Cashiers_CashierId", column: x => x.CashierId, principalTable: "Cashiers", principalColumn: "Id", onDelete: ReferentialAction.NoAction); table.ForeignKey( name: "FK_CashWithdrawals_Debitings_DebitingId", column: x => x.DebitingId, principalTable: "Debitings", principalColumn: "Id", onDelete: ReferentialAction.NoAction); }); migrationBuilder.CreateIndex( name: "IX_Accounts_CashierId", table: "Accounts", column: "CashierId"); migrationBuilder.CreateIndex( name: "IX_Accounts_ClientId", table: "Accounts", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_Cards_AccountId", table: "Cards", column: "AccountId"); migrationBuilder.CreateIndex( name: "IX_Cards_ClientID", table: "Cards", column: "ClientID"); migrationBuilder.CreateIndex( name: "IX_CashWithdrawals_AccountId", table: "CashWithdrawals", column: "AccountId"); migrationBuilder.CreateIndex( name: "IX_CashWithdrawals_CashierId", table: "CashWithdrawals", column: "CashierId"); migrationBuilder.CreateIndex( name: "IX_CashWithdrawals_DebitingId", table: "CashWithdrawals", column: "DebitingId"); migrationBuilder.CreateIndex( name: "IX_Creditings_CardId", table: "Creditings", column: "CardId"); migrationBuilder.CreateIndex( name: "IX_Debitings_CardId", table: "Debitings", column: "CardId"); migrationBuilder.CreateIndex( name: "IX_MoneyTransfers_AccountPayeerId", table: "MoneyTransfers", column: "AccountPayeerId"); migrationBuilder.CreateIndex( name: "IX_MoneyTransfers_AccountSenderId", table: "MoneyTransfers", column: "AccountSenderId"); migrationBuilder.CreateIndex( name: "IX_MoneyTransfers_CashierId", table: "MoneyTransfers", column: "CashierId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "CashWithdrawals"); migrationBuilder.DropTable( name: "Creditings"); migrationBuilder.DropTable( name: "MoneyTransfers"); migrationBuilder.DropTable( name: "Debitings"); migrationBuilder.DropTable( name: "Cards"); migrationBuilder.DropTable( name: "Accounts"); migrationBuilder.DropTable( name: "Cashiers"); migrationBuilder.DropTable( name: "Clients"); } } }