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