From 1813bf63625396332e87bfb5bdf995a4b3790392 Mon Sep 17 00:00:00 2001 From: Kevin Matsubara Date: Mon, 7 Apr 2025 11:11:46 +0200 Subject: [PATCH] Add migration for many to many relationships between Matches and Teams. --- ...ToManyRelationshipTeamsMatches.Designer.cs | 355 ++++++++++++++++++ ...9_AddManyToManyRelationshipTeamsMatches.cs | 92 +++++ ...eadBallZoneLeagueDbContextModelSnapshot.cs | 39 ++ 3 files changed, 486 insertions(+) create mode 100644 EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.Designer.cs create mode 100644 EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.cs diff --git a/EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.Designer.cs b/EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.Designer.cs new file mode 100644 index 0000000..1ed5163 --- /dev/null +++ b/EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.Designer.cs @@ -0,0 +1,355 @@ +// +using System; +using EntityFrameworkCore.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace EntityFrameworkCore.Data.Migrations +{ + [DbContext(typeof(DeadBallZoneLeagueDbContext))] + [Migration("20250407091019_AddManyToManyRelationshipTeamsMatches")] + partial class AddManyToManyRelationshipTeamsMatches + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.3"); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Coach", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CreatedBy") + .HasColumnType("TEXT"); + + b.Property("CreatedDate") + .HasColumnType("TEXT"); + + b.Property("ModifiedBy") + .HasColumnType("TEXT"); + + b.Property("ModifiedDate") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("TeamId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Coaches"); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.League", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CreatedBy") + .HasColumnType("TEXT"); + + b.Property("CreatedDate") + .HasColumnType("TEXT"); + + b.Property("ModifiedBy") + .HasColumnType("TEXT"); + + b.Property("ModifiedDate") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Leagues"); + + b.HasData( + new + { + Id = 1, + CreatedDate = new DateTime(2025, 4, 6, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Local League" + }, + new + { + Id = 2, + CreatedDate = new DateTime(2025, 4, 6, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "National League" + }, + new + { + Id = 3, + CreatedDate = new DateTime(2025, 4, 6, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Geosphere" + }, + new + { + Id = 4, + CreatedDate = new DateTime(2025, 4, 6, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Cyber war" + }); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Match", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AwayTeamId") + .HasColumnType("INTEGER"); + + b.Property("AwayTeamScore") + .HasColumnType("INTEGER"); + + b.Property("CreatedBy") + .HasColumnType("TEXT"); + + b.Property("CreatedDate") + .HasColumnType("TEXT"); + + b.Property("Date") + .HasColumnType("TEXT"); + + b.Property("HomeTeamId") + .HasColumnType("INTEGER"); + + b.Property("HomeTeamScore") + .HasColumnType("INTEGER"); + + b.Property("ModifiedBy") + .HasColumnType("TEXT"); + + b.Property("ModifiedDate") + .HasColumnType("TEXT"); + + b.Property("TicketPrice") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AwayTeamId"); + + b.HasIndex("HomeTeamId"); + + b.ToTable("Matches"); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Team", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CoachId") + .HasColumnType("INTEGER"); + + b.Property("CreatedBy") + .HasColumnType("TEXT"); + + b.Property("CreatedDate") + .HasColumnType("TEXT"); + + b.Property("LeagueId") + .HasColumnType("INTEGER"); + + b.Property("ModifiedBy") + .HasColumnType("TEXT"); + + b.Property("ModifiedDate") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("LeagueId"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("Teams"); + + b.HasData( + new + { + Id = 1, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Neo Delhi" + }, + new + { + Id = 2, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Voodoo" + }, + new + { + Id = 3, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Penal X" + }, + new + { + Id = 4, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Neo Tokyo" + }, + new + { + Id = 5, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Neo Barcelona" + }, + new + { + Id = 6, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Neo Manchester" + }, + new + { + Id = 7, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Neo Bangkok" + }, + new + { + Id = 8, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Neo Amsterdam" + }, + new + { + Id = 9, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Killaklowns" + }, + new + { + Id = 10, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Sol" + }, + new + { + Id = 11, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "DEC" + }, + new + { + Id = 12, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Leopards" + }, + new + { + Id = 13, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Harlequins" + }, + new + { + Id = 14, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Gladiators" + }, + new + { + Id = 15, + CoachId = 0, + CreatedDate = new DateTime(2025, 4, 4, 17, 7, 27, 33, DateTimeKind.Unspecified), + ModifiedDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), + Name = "Fiz-O" + }); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Match", b => + { + b.HasOne("EntityFrameworkCore.Domain.Team", "AwayTeam") + .WithMany("AwayMatches") + .HasForeignKey("AwayTeamId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EntityFrameworkCore.Domain.Team", "HomeTeam") + .WithMany("HomeMatches") + .HasForeignKey("HomeTeamId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("AwayTeam"); + + b.Navigation("HomeTeam"); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Team", b => + { + b.HasOne("EntityFrameworkCore.Domain.League", "League") + .WithMany("Teams") + .HasForeignKey("LeagueId"); + + b.Navigation("League"); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.League", b => + { + b.Navigation("Teams"); + }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Team", b => + { + b.Navigation("AwayMatches"); + + b.Navigation("HomeMatches"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.cs b/EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.cs new file mode 100644 index 0000000..782b92a --- /dev/null +++ b/EntityFrameworkCore.Data/Migrations/20250407091019_AddManyToManyRelationshipTeamsMatches.cs @@ -0,0 +1,92 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace EntityFrameworkCore.Data.Migrations +{ + /// + public partial class AddManyToManyRelationshipTeamsMatches : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "AwayTeamScore", + table: "Matches", + type: "INTEGER", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "HomeTeamScore", + table: "Matches", + type: "INTEGER", + nullable: false, + defaultValue: 0); + + migrationBuilder.CreateIndex( + name: "IX_Teams_Name", + table: "Teams", + column: "Name", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_Matches_AwayTeamId", + table: "Matches", + column: "AwayTeamId"); + + migrationBuilder.CreateIndex( + name: "IX_Matches_HomeTeamId", + table: "Matches", + column: "HomeTeamId"); + + migrationBuilder.AddForeignKey( + name: "FK_Matches_Teams_AwayTeamId", + table: "Matches", + column: "AwayTeamId", + principalTable: "Teams", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_Matches_Teams_HomeTeamId", + table: "Matches", + column: "HomeTeamId", + principalTable: "Teams", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Matches_Teams_AwayTeamId", + table: "Matches"); + + migrationBuilder.DropForeignKey( + name: "FK_Matches_Teams_HomeTeamId", + table: "Matches"); + + migrationBuilder.DropIndex( + name: "IX_Teams_Name", + table: "Teams"); + + migrationBuilder.DropIndex( + name: "IX_Matches_AwayTeamId", + table: "Matches"); + + migrationBuilder.DropIndex( + name: "IX_Matches_HomeTeamId", + table: "Matches"); + + migrationBuilder.DropColumn( + name: "AwayTeamScore", + table: "Matches"); + + migrationBuilder.DropColumn( + name: "HomeTeamScore", + table: "Matches"); + } + } +} diff --git a/EntityFrameworkCore.Data/Migrations/DeadBallZoneLeagueDbContextModelSnapshot.cs b/EntityFrameworkCore.Data/Migrations/DeadBallZoneLeagueDbContextModelSnapshot.cs index 94717c7..b9735ee 100644 --- a/EntityFrameworkCore.Data/Migrations/DeadBallZoneLeagueDbContextModelSnapshot.cs +++ b/EntityFrameworkCore.Data/Migrations/DeadBallZoneLeagueDbContextModelSnapshot.cs @@ -112,6 +112,9 @@ namespace EntityFrameworkCore.Data.Migrations b.Property("AwayTeamId") .HasColumnType("INTEGER"); + b.Property("AwayTeamScore") + .HasColumnType("INTEGER"); + b.Property("CreatedBy") .HasColumnType("TEXT"); @@ -124,6 +127,9 @@ namespace EntityFrameworkCore.Data.Migrations b.Property("HomeTeamId") .HasColumnType("INTEGER"); + b.Property("HomeTeamScore") + .HasColumnType("INTEGER"); + b.Property("ModifiedBy") .HasColumnType("TEXT"); @@ -135,6 +141,10 @@ namespace EntityFrameworkCore.Data.Migrations b.HasKey("Id"); + b.HasIndex("AwayTeamId"); + + b.HasIndex("HomeTeamId"); + b.ToTable("Matches"); }); @@ -169,6 +179,9 @@ namespace EntityFrameworkCore.Data.Migrations b.HasIndex("LeagueId"); + b.HasIndex("Name") + .IsUnique(); + b.ToTable("Teams"); b.HasData( @@ -294,6 +307,25 @@ namespace EntityFrameworkCore.Data.Migrations }); }); + modelBuilder.Entity("EntityFrameworkCore.Domain.Match", b => + { + b.HasOne("EntityFrameworkCore.Domain.Team", "AwayTeam") + .WithMany("AwayMatches") + .HasForeignKey("AwayTeamId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EntityFrameworkCore.Domain.Team", "HomeTeam") + .WithMany("HomeMatches") + .HasForeignKey("HomeTeamId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("AwayTeam"); + + b.Navigation("HomeTeam"); + }); + modelBuilder.Entity("EntityFrameworkCore.Domain.Team", b => { b.HasOne("EntityFrameworkCore.Domain.League", "League") @@ -307,6 +339,13 @@ namespace EntityFrameworkCore.Data.Migrations { b.Navigation("Teams"); }); + + modelBuilder.Entity("EntityFrameworkCore.Domain.Team", b => + { + b.Navigation("AwayMatches"); + + b.Navigation("HomeMatches"); + }); #pragma warning restore 612, 618 } }