CourseWork_BankYouBankrupt/BankYouBankrupt/BankYouBankruptDatabaseImplement/Migrations/20230516171124_NewTransferAndCrediting.cs
2023-05-16 21:23:43 +04:00

317 lines
14 KiB
C#

using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BankYouBankruptDatabaseImplement.Migrations
{
/// <inheritdoc />
public partial class NewTransferAndCrediting : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Cashiers",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Password = table.Column<string>(type: "nvarchar(max)", nullable: false),
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
Surname = table.Column<string>(type: "nvarchar(max)", nullable: false),
Patronymic = table.Column<string>(type: "nvarchar(max)", nullable: false),
Email = table.Column<string>(type: "nvarchar(max)", nullable: false),
Telephone = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Cashiers", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Clients",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
Surname = table.Column<string>(type: "nvarchar(max)", nullable: false),
Patronymic = table.Column<string>(type: "nvarchar(max)", nullable: false),
Telephone = table.Column<string>(type: "nvarchar(max)", nullable: false),
Email = table.Column<string>(type: "nvarchar(max)", nullable: false),
Password = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Clients", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Accounts",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
AccountNumber = table.Column<string>(type: "nvarchar(max)", nullable: false),
CashierId = table.Column<int>(type: "int", nullable: false),
ClientId = table.Column<int>(type: "int", nullable: false),
PasswordAccount = table.Column<string>(type: "nvarchar(max)", nullable: false),
Balance = table.Column<double>(type: "float", nullable: false),
DateOpen = table.Column<DateTime>(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<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ClientID = table.Column<int>(type: "int", nullable: false),
AccountId = table.Column<int>(type: "int", nullable: false),
Number = table.Column<string>(type: "nvarchar(max)", nullable: false),
CVC = table.Column<string>(type: "nvarchar(max)", nullable: false),
Period = table.Column<DateTime>(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<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Sum = table.Column<int>(type: "int", nullable: false),
AccountSenderId = table.Column<int>(type: "int", nullable: false),
AccountPayeeId = table.Column<int>(type: "int", nullable: false),
DateOperation = table.Column<DateTime>(type: "datetime2", nullable: false),
CreditingId = table.Column<int>(type: "int", nullable: false),
CashierId = table.Column<int>(type: "int", nullable: false),
AccountPayeerId = table.Column<int>(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<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
CardId = table.Column<int>(type: "int", nullable: false),
Sum = table.Column<int>(type: "int", nullable: false),
DateOpen = table.Column<DateTime>(type: "datetime2", nullable: false),
DateClose = table.Column<DateTime>(type: "datetime2", nullable: true),
Status = table.Column<int>(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<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
CardId = table.Column<int>(type: "int", nullable: false),
Sum = table.Column<int>(type: "int", nullable: false),
DateOpen = table.Column<DateTime>(type: "datetime2", nullable: false),
DateClose = table.Column<DateTime>(type: "datetime2", nullable: true),
Status = table.Column<int>(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<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
DebitingId = table.Column<int>(type: "int", nullable: false),
AccountId = table.Column<int>(type: "int", nullable: false),
CashierId = table.Column<int>(type: "int", nullable: false),
Sum = table.Column<int>(type: "int", nullable: false),
DateOperation = table.Column<DateTime>(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");
}
/// <inheritdoc />
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");
}
}
}