using System.Reflection; using cuqmbr.TravelGuide.Domain.Enums; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Options; using cuqmbr.TravelGuide.Persistence.PostgreSql.TypeConverters; namespace cuqmbr.TravelGuide.Persistence.PostgreSql; public class PostgreSqlDbContext : DbContext { public PostgreSqlDbContext( DbContextOptions options, IOptions configurationOptions) : base(options) { DefaultSchema = configurationOptions.Value.PartitionName; } public static string DefaultSchema { get; private set; } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.HasDefaultSchema(DefaultSchema); builder .ApplyConfigurationsFromAssembly( Assembly.GetExecutingAssembly(), t => t.Namespace == "cuqmbr.TravelGuide.Persistence.PostgreSql.Configurations"); } protected override void ConfigureConventions( ModelConfigurationBuilder builder) { builder .Properties() .HaveColumnType("vehicle_type") .HaveConversion(); } }