//
using System;
using Costasdev.ServiceViewer.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NetTopologySuite.Geometries;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Data.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20251211153852_Initial")]
partial class Initial
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "10.0.1")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.Feed", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("DownloadUrl")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)");
b.Property("Etag")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)");
b.Property("InsertedAt")
.HasColumnType("timestamp with time zone");
b.Property("LongName")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)");
b.Property("ShortName")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)");
b.HasKey("Id");
b.ToTable("feeds");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsAgency", b =>
{
b.Property("Id")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("agency_id");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("Email")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("agency_email");
b.Property("FareUrl")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("agency_fare_url");
b.Property("Language")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("character varying(5)")
.HasColumnName("agency_lang");
b.Property("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("agency_name");
b.Property("Phone")
.HasMaxLength(30)
.HasColumnType("character varying(30)")
.HasColumnName("agency_phone");
b.Property("Timezone")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)")
.HasColumnName("agency_timezone");
b.Property("Url")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("agency_url");
b.HasKey("Id", "FeedId");
b.HasIndex("FeedId");
b.ToTable("gtfs_agencies");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsCalendar", b =>
{
b.Property("ServiceId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("service_id");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("EndDate")
.HasColumnType("date")
.HasColumnName("end_date");
b.Property("Friday")
.HasColumnType("boolean")
.HasColumnName("friday");
b.Property("Monday")
.HasColumnType("boolean")
.HasColumnName("monday");
b.Property("Saturday")
.HasColumnType("boolean")
.HasColumnName("saturday");
b.Property("StartDate")
.HasColumnType("date")
.HasColumnName("start_date");
b.Property("Sunday")
.HasColumnType("boolean")
.HasColumnName("sunday");
b.Property("Thursday")
.HasColumnType("boolean")
.HasColumnName("thursday");
b.Property("Tuesday")
.HasColumnType("boolean")
.HasColumnName("tuesday");
b.Property("Wednesday")
.HasColumnType("boolean")
.HasColumnName("wednesday");
b.HasKey("ServiceId", "FeedId");
b.HasIndex("FeedId");
b.ToTable("gtfs_calendar");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsCalendarDate", b =>
{
b.Property("ServiceId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("service_id");
b.Property("Date")
.HasColumnType("timestamp with time zone")
.HasColumnName("date");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("ExceptionType")
.HasColumnType("integer")
.HasColumnName("exception_type");
b.HasKey("ServiceId", "Date", "FeedId");
b.HasIndex("FeedId");
b.ToTable("gtfs_calendar_dates");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsRoute", b =>
{
b.Property("Id")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("route_id");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("AgencyId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("agency_id");
b.Property("Color")
.HasMaxLength(7)
.HasColumnType("character varying(7)")
.HasColumnName("route_color");
b.Property("Description")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("route_desc");
b.Property("LongName")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("route_long_name");
b.Property("ShortName")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("route_short_name");
b.Property("SortOrder")
.HasColumnType("integer")
.HasColumnName("route_sort_order");
b.Property("TextColor")
.HasMaxLength(7)
.HasColumnType("character varying(7)")
.HasColumnName("route_text_color");
b.Property("Type")
.HasColumnType("integer")
.HasColumnName("route_type");
b.Property("Url")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("route_url");
b.HasKey("Id", "FeedId");
b.HasIndex("FeedId");
b.HasIndex("AgencyId", "FeedId");
b.ToTable("gtfs_routes");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsStop", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("stop_id");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("Code")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("stop_code");
b.Property("Description")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("stop_desc");
b.Property("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("stop_name");
b.Property("Position")
.HasColumnType("geometry")
.HasColumnName("stop_pos");
b.Property("Timezone")
.HasMaxLength(50)
.HasColumnType("character varying(50)")
.HasColumnName("stop_timezone");
b.Property("Url")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("stop_url");
b.Property("WheelchairBoarding")
.HasColumnType("integer")
.HasColumnName("wheelchair_boarding");
b.HasKey("Id", "FeedId");
b.HasIndex("FeedId");
b.ToTable("gtfs_stops");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsStopTime", b =>
{
b.Property("TripId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("trip_id");
b.Property("StopSequence")
.HasColumnType("integer")
.HasColumnName("stop_sequence");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("Arrival")
.IsRequired()
.HasColumnType("text")
.HasColumnName("arrival_time");
b.Property("Departure")
.IsRequired()
.HasColumnType("text")
.HasColumnName("departure_time");
b.Property("ShapeDistTraveled")
.HasColumnType("double precision")
.HasColumnName("shape_dist_traveled");
b.Property("StopId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("stop_id");
b.HasKey("TripId", "StopSequence", "FeedId");
b.HasIndex("FeedId");
b.HasIndex("StopId", "FeedId");
b.HasIndex("TripId", "FeedId");
b.ToTable("gtfs_stop_times");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsTrip", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("trip_id");
b.Property("FeedId")
.HasColumnType("integer")
.HasColumnName("feed_id");
b.Property("BlockId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("block_id");
b.Property("DirectionId")
.HasColumnType("integer")
.HasColumnName("direction_id");
b.Property("RouteId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("route_id");
b.Property("ServiceId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("service_id");
b.Property("ShapeId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("shape_id");
b.Property("TripBikesAllowed")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("trip_bikes_allowed");
b.Property("TripHeadsign")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("trip_headsign");
b.Property("TripShortName")
.HasMaxLength(255)
.HasColumnType("character varying(255)")
.HasColumnName("trip_short_name");
b.Property("TripWheelchairAccessible")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("trip_wheelchair_accessible");
b.HasKey("Id", "FeedId");
b.HasIndex("FeedId");
b.HasIndex("RouteId", "FeedId");
b.ToTable("gtfs_trips");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsAgency", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Feed");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsCalendar", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Feed");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsCalendarDate", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Feed");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsRoute", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.GtfsAgency", "Agency")
.WithMany()
.HasForeignKey("AgencyId", "FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Agency");
b.Navigation("Feed");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsStop", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Feed");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsStopTime", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.GtfsStop", "GtfsStop")
.WithMany()
.HasForeignKey("StopId", "FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.GtfsTrip", "GtfsTrip")
.WithMany()
.HasForeignKey("TripId", "FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Feed");
b.Navigation("GtfsStop");
b.Navigation("GtfsTrip");
});
modelBuilder.Entity("Costasdev.ServiceViewer.Data.Gtfs.GtfsTrip", b =>
{
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.Feed", "Feed")
.WithMany()
.HasForeignKey("FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Costasdev.ServiceViewer.Data.Gtfs.GtfsRoute", "Route")
.WithMany()
.HasForeignKey("RouteId", "FeedId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Feed");
b.Navigation("Route");
});
#pragma warning restore 612, 618
}
}
}