http-api/src/Persistence/PostgreSql/Configurations/RegionConfiguration.cs

48 lines
1.4 KiB
C#

using cuqmbr.TravelGuide.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace cuqmbr.TravelGuide.Persistence.PostgreSql.Configurations;
public class RegionConfiguration : BaseConfiguration<Region>
{
public override void Configure(EntityTypeBuilder<Region> builder)
{
builder
.ToTable("regions");
base.Configure(builder);
builder
.Property(r => r.Name)
.HasColumnName("name")
.HasColumnType("varchar(64)")
.IsRequired(true);
builder
.Property(r => r.CountryId)
.HasColumnName("country_id")
.HasColumnType("bigint")
.IsRequired(true);
builder
.HasOne(r => r.Country)
.WithMany(c => c.Regions)
.HasForeignKey(r => r.CountryId)
.HasConstraintName(
"fk_" +
$"{builder.Metadata.GetTableName()}_" +
$"{builder.Property(r => r.CountryId).Metadata.GetColumnName()}")
.OnDelete(DeleteBehavior.Cascade);
builder
.HasIndex(r => r.CountryId)
.HasDatabaseName(
"ix_" +
$"{builder.Metadata.GetTableName()}_" +
$"{builder.Property(r => r.CountryId).Metadata.GetColumnName()}");
}
}