using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;

namespace ReallifeGamemode.Database.Migrations
{
  public partial class HouseBankAccounts : Migration
  {
    protected override void Up(MigrationBuilder migrationBuilder)
    {
      migrationBuilder.AddColumn<int>(
          name: "BankAccountId",
          table: "Houses",
          nullable: true);

      migrationBuilder.CreateTable(
          name: "HouseBankAccounts",
          columns: table => new
          {
            Id = table.Column<int>(nullable: false)
                  .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
            Balance = table.Column<int>(nullable: false)
          },
          constraints: table =>
          {
            table.PrimaryKey("PK_HouseBankAccounts", x => x.Id);
          });

      migrationBuilder.CreateIndex(
          name: "IX_Houses_BankAccountId",
          table: "Houses",
          column: "BankAccountId");

      migrationBuilder.AddForeignKey(
          name: "FK_Houses_HouseBankAccounts_BankAccountId",
          table: "Houses",
          column: "BankAccountId",
          principalTable: "HouseBankAccounts",
          principalColumn: "Id",
          onDelete: ReferentialAction.Restrict);
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
      migrationBuilder.DropForeignKey(
          name: "FK_Houses_HouseBankAccounts_BankAccountId",
          table: "Houses");

      migrationBuilder.DropTable(
          name: "HouseBankAccounts");

      migrationBuilder.DropIndex(
          name: "IX_Houses_BankAccountId",
          table: "Houses");

      migrationBuilder.DropColumn(
          name: "BankAccountId",
          table: "Houses");
    }
  }
}
