http-api/src/Persistence/PostgreSql/PostgreSqlDbContext.cs
cuqmbr afe626bd78
All checks were successful
/ build (push) Successful in 5m8s
/ tests (push) Successful in 33s
/ build-docker (push) Successful in 4m15s
add LiqPay integration for ticket purchase
hosted services deletes ticket groups with reserved status that were created more than 10 minutes ago

payment link expires in 10 minutes from the time it was created
2025-05-26 12:16:46 +03:00

67 lines
1.9 KiB
C#

using System.Reflection;
using cuqmbr.TravelGuide.Domain.Enums;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
using cuqmbr.TravelGuide.Persistence.TypeConverters;
namespace cuqmbr.TravelGuide.Persistence.PostgreSql;
public class PostgreSqlDbContext : DbContext
{
public PostgreSqlDbContext(
DbContextOptions<PostgreSqlDbContext> options,
IOptions<ConfigurationOptions> 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<VehicleType>()
.HaveColumnType("varchar(16)")
.HaveConversion<VehicleTypeConverter>();
builder
.Properties<Currency>()
.HaveColumnType("varchar(8)")
.HaveConversion<CurrencyConverter>();
builder
.Properties<DocumentType>()
.HaveColumnType("varchar(64)")
.HaveConversion<DocumentTypeConverter>();
builder
.Properties<Sex>()
.HaveColumnType("varchar(32)")
.HaveConversion<SexConverter>();
builder
.Properties<TicketStatus>()
.HaveColumnType("varchar(32)")
.HaveConversion<TicketStatusConverter>();
builder
.Properties<DateTimeOffset>()
.HaveConversion<DateTimeOffsetConverter>();
}
}