Files
SPMega/backend/SpMega.Backend/Persistent/Database/AppDbContext.cs
T
Dmitrii 0e53d7dd8c
Java CI / build (push) Successful in 56s
.NET+Docker CI/CD / Unit and Integration tests (push) Successful in 38s
.NET+Docker CI/CD / Push Docker image to ghcr.io (push) Failing after 44s
Implement telemetry system with data collection and reporting
Signed-off-by: Dmitrii <computer@yawaflua.tech>

Took 20 minutes
2026-07-11 00:38:28 +03:00

37 lines
1.3 KiB
C#

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<AppDbContext> options) : DbContext(options)
{
internal DbSet<Transaction> Transactions { get; set; }
internal DbSet<User> Users { get; set; }
internal DbSet<UserSession> UserSessions { get; set; }
internal DbSet<ModTelemetryDocument> ModTelemetry { get; set; }
internal DbSet<BackendRequestTelemetryDocument> BackendRequestTelemetry { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>()
.OwnsMany(u => u.Cards, card =>
{
card.Property(c => c.Token)
.HasConversion(
v => EncryptionHelper.Encrypt(v),
v => EncryptionHelper.Decrypt(v)
);
});
}
}