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
}
}