using Microsoft.EntityFrameworkCore; using MongoDB.EntityFrameworkCore.Extensions; using SpMega.Backend.Persistent.Models.Telemetry; using SpMega.Backend.Persistent.Models.Transactions; using SpMega.Backend.Persistent.Models.Users; using SpMega.Backend.Services; namespace SpMega.Backend.Persistent.Database; public class AppDbContext(DbContextOptions options) : DbContext(options) { internal DbSet Transactions { get; set; } internal DbSet Users { get; set; } internal DbSet UserSessions { get; set; } internal DbSet ModTelemetry { get; set; } internal DbSet BackendRequestTelemetry { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .OwnsMany(u => u.Cards, card => { card.Property(c => c.Token) .HasConversion( v => EncryptionHelper.Encrypt(v), v => EncryptionHelper.Decrypt(v) ); }); } }