Remove /api prefix from all routes and fix CityId FK constraint

- Strip /api prefix from all endpoint routes
- Make Show.CityId nullable (no longer required FK)
- Drop CityId FK constraint and alter column to NULL at startup via raw SQL
- Add migration MakeCityIdNullable for schema consistency
- Update Show DTOs to reflect nullable CityId

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 20:32:55 +02:00
parent 6c1330e570
commit b3612f5bec
36 changed files with 111 additions and 36 deletions
@@ -0,0 +1,59 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PyroFetes.Migrations
{
/// <inheritdoc />
public partial class MakeCityIdNullable : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Shows_Cities_CityId",
table: "Shows");
migrationBuilder.AlterColumn<int>(
name: "CityId",
table: "Shows",
type: "int",
nullable: true,
oldClrType: typeof(int),
oldType: "int");
migrationBuilder.AddForeignKey(
name: "FK_Shows_Cities_CityId",
table: "Shows",
column: "CityId",
principalTable: "Cities",
principalColumn: "Id");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Shows_Cities_CityId",
table: "Shows");
migrationBuilder.AlterColumn<int>(
name: "CityId",
table: "Shows",
type: "int",
nullable: false,
defaultValue: 0,
oldClrType: typeof(int),
oldType: "int",
oldNullable: true);
migrationBuilder.AddForeignKey(
name: "FK_Shows_Cities_CityId",
table: "Shows",
column: "CityId",
principalTable: "Cities",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
}
}
@@ -813,7 +813,7 @@ namespace PyroFetes.Migrations
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("CityId")
b.Property<int?>("CityId")
.HasColumnType("int");
b.Property<DateOnly?>("Date")
@@ -1594,8 +1594,7 @@ namespace PyroFetes.Migrations
b.HasOne("PyroFetes.Models.City", "City")
.WithMany("Shows")
.HasForeignKey("CityId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
.OnDelete(DeleteBehavior.ClientSetNull);
b.Navigation("City");
});