Fix FastEndpoints/Swagger wiring and missing required fields in DTOs

- Register FastEndpoints, SwaggerDocument, DbContext in Program.cs
- Add DbContextOptions constructor to PyroFetesDbContext
- Add CityId to Show DTOs and endpoints (NOT NULL in DB)
- Add F4T2NumberApproval/F4T2ExpirationDate to Staff DTOs and endpoints
- Simplify DeleteShow to rely on DB cascade instead of manual includes
- Default NOT NULL string fields to empty string on create

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 19:35:01 +02:00
parent 3a09bfc8ad
commit 6c1330e570
18 changed files with 70 additions and 53 deletions
@@ -21,12 +21,6 @@ public class DeleteShowEndpoint(PyroFetesDbContext pyroFetesDbContext) : Endpoin
}
var show = await pyroFetesDbContext.Shows
.Include(s => s.ShowTrucks)
.Include(s => s.ShowStaffs)
.Include(s => s.SoundTimecodes)
.Include(s => s.ProductTimecodes)
.Include(s => s.Contracts)
.Include(s => s.ShowMaterials)
.FirstOrDefaultAsync(s => s.Id == req.Id.Value, ct);
if (show is null)
@@ -35,16 +29,6 @@ public class DeleteShowEndpoint(PyroFetesDbContext pyroFetesDbContext) : Endpoin
return;
}
// Supprimer les relations associées
if (show.ShowTrucks != null && show.ShowTrucks.Any())
{
pyroFetesDbContext.ShowTrucks.RemoveRange(show.ShowTrucks);
}
// Note: Les autres relations (ShowStaffs, SoundTimecodes, etc.) devront aussi être gérées
// en fonction de votre modèle de données et de vos règles métier
// Pour l'instant, je laisse juste ShowTrucks comme exemple
pyroFetesDbContext.Shows.Remove(show);
await pyroFetesDbContext.SaveChangesAsync(ct);