From 661cccc2da9a6c32b7b56c60313787282a9084ea Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Tue, 21 Oct 2025 15:34:24 +0200 Subject: Begin implementing --- .../Data/AppDbContext.cs | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/Costasdev.Busurbano.ServiceViewer/Data/AppDbContext.cs (limited to 'src/Costasdev.Busurbano.ServiceViewer/Data/AppDbContext.cs') diff --git a/src/Costasdev.Busurbano.ServiceViewer/Data/AppDbContext.cs b/src/Costasdev.Busurbano.ServiceViewer/Data/AppDbContext.cs new file mode 100644 index 0000000..55a5a08 --- /dev/null +++ b/src/Costasdev.Busurbano.ServiceViewer/Data/AppDbContext.cs @@ -0,0 +1,52 @@ +using Costasdev.ServiceViewer.Data.Gtfs; +using Costasdev.ServiceViewer.Data.Gtfs.Enums; +using Microsoft.EntityFrameworkCore; + +namespace Costasdev.ServiceViewer.Data; + +public class AppDbContext : DbContext +{ + public AppDbContext(DbContextOptions options) : base(options) + { + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + // Relación Trip -> StopTimes (cascade delete) + modelBuilder.Entity() + .HasMany() + .WithOne(st => st.GtfsTrip) + .HasForeignKey(st => st.TripId) + .OnDelete(DeleteBehavior.Cascade); + + // Relación Stop -> StopTimes (cascade delete) + modelBuilder.Entity() + .HasMany() + .WithOne(st => st.GtfsStop) + .HasForeignKey(st => st.StopId) + .OnDelete(DeleteBehavior.Cascade); + + // Relación Route -> Trips (cascade delete) + modelBuilder.Entity() + .HasMany() + .WithOne(t => t.Route) + .HasForeignKey(t => t.RouteId) + .OnDelete(DeleteBehavior.Cascade); + + modelBuilder.Entity() + .Property(t => t.TripWheelchairAccessible) + .HasDefaultValue(TripWheelchairAccessible.Empty); + + modelBuilder.Entity() + .Property(t => t.TripBikesAllowed) + .HasDefaultValue(TripBikesAllowed.Empty); + } + + public DbSet Agencies { get; set; } + public DbSet Calendars { get; set; } + public DbSet CalendarDates { get; set; } + public DbSet Routes { get; set; } + public DbSet Stops { get; set; } + public DbSet StopTimes { get; set; } + public DbSet Trips { get; set; } +} -- cgit v1.3