add inheritance and enums configuration to in memory db context
All checks were successful
/ tests (push) Successful in 31s
/ build (push) Successful in 7m9s
/ build-docker (push) Successful in 5m34s

This commit is contained in:
cuqmbr 2025-05-20 10:33:35 +03:00
parent 674130c52a
commit 5fc9308ada
Signed by: cuqmbr
GPG Key ID: 0AA446880C766199

View File

@ -1,4 +1,5 @@
using cuqmbr.TravelGuide.Domain.Enums; using cuqmbr.TravelGuide.Domain.Enums;
using cuqmbr.TravelGuide.Domain.Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using cuqmbr.TravelGuide.Persistence.TypeConverters; using cuqmbr.TravelGuide.Persistence.TypeConverters;
@ -12,6 +13,15 @@ public class InMemoryDbContext : DbContext
protected override void OnModelCreating(ModelBuilder builder) protected override void OnModelCreating(ModelBuilder builder)
{ {
base.OnModelCreating(builder); base.OnModelCreating(builder);
builder
.Entity<Vehicle>()
.ToTable("vehicles")
.UseTphMappingStrategy()
.HasDiscriminator(v => v.VehicleType)
.HasValue<Bus>(VehicleType.Bus)
.HasValue<Aircraft>(VehicleType.Aircraft)
.HasValue<Train>(VehicleType.Train);
} }
protected override void ConfigureConventions( protected override void ConfigureConventions(
@ -19,12 +29,26 @@ public class InMemoryDbContext : DbContext
{ {
builder builder
.Properties<VehicleType>() .Properties<VehicleType>()
.HaveColumnType("vehicle_type") .HaveColumnType("varchar(16)")
.HaveConversion<VehicleTypeConverter>(); .HaveConversion<VehicleTypeConverter>();
builder builder
.Properties<Currency>() .Properties<Currency>()
.HaveColumnType("currency") .HaveColumnType("varchar(8)")
.HaveConversion<CurrencyConverter>(); .HaveConversion<CurrencyConverter>();
builder
.Properties<DocumentType>()
.HaveColumnType("varchar(64)")
.HaveConversion<DocumentTypeConverter>();
builder
.Properties<Sex>()
.HaveColumnType("varchar(32)")
.HaveConversion<SexConverter>();
builder
.Properties<DateTimeOffset>()
.HaveConversion<DateTimeOffsetConverter>();
} }
} }