using cuqmbr.TravelGuide.Domain.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace cuqmbr.TravelGuide.Persistence.PostgreSql.Configurations; public class RouteAddressDetailConfiguration : BaseConfiguration { public override void Configure(EntityTypeBuilder builder) { builder .ToTable("route_address_details"); base.Configure(builder); builder .Property(rad => rad.TimeToNextAddress) .HasColumnName("time_to_next_address") .HasColumnType("interval") .IsRequired(true); builder .Property(rad => rad.CostToNextAddress) .HasColumnName("cost_to_next_address") .HasColumnType("numeric(24,12)") .IsRequired(true); builder .Property(rad => rad.CurrentAddressStopTime) .HasColumnName("current_address_stop_time") .HasColumnType("interval") .IsRequired(true); builder .Property(rad => rad.VehicleEnrollmentId) .HasColumnName("vehicle_enrollment_id") .HasColumnType("bigint") .IsRequired(true); builder .HasOne(rad => rad.VehicleEnrollment) .WithMany(ve => ve.RouteAddressDetails) .HasForeignKey(rad => rad.VehicleEnrollmentId) .HasConstraintName( "fk_" + $"{builder.Metadata.GetTableName()}_" + $"{builder.Property(rad => rad.VehicleEnrollmentId).Metadata.GetColumnName()}") .OnDelete(DeleteBehavior.Cascade); builder .HasIndex(rad => rad.VehicleEnrollmentId) .HasDatabaseName( "ix_" + $"{builder.Metadata.GetTableName()}_" + $"{builder.Property(rad => rad.VehicleEnrollmentId).Metadata.GetColumnName()}"); builder .Property(rad => rad.RouteAddressId) .HasColumnName("route_address_id") .HasColumnType("bigint") .IsRequired(true); builder .HasOne(rad => rad.RouteAddress) .WithMany(ra => ra.Details) .HasForeignKey(rad => rad.RouteAddressId) .HasConstraintName( "fk_" + $"{builder.Metadata.GetTableName()}_" + $"{builder.Property(rad => rad.RouteAddressId).Metadata.GetColumnName()}") .OnDelete(DeleteBehavior.Cascade); builder .HasIndex(rad => rad.RouteAddressId) .HasDatabaseName( "ix_" + $"{builder.Metadata.GetTableName()}_" + $"{builder.Property(rad => rad.RouteAddressId).Metadata.GetColumnName()}"); } }