using ManagerService.Data.SubSection; using ManagerService.DTOs; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Text.Json; namespace ManagerService.Data { public class MyInfoMateDbContext : DbContext { public MyInfoMateDbContext(DbContextOptions options) : base(options) { } public DbSet Instances { get; set; } public DbSet Configurations { get; set; } public DbSet
Sections { get; set; } public DbSet Devices { get; set; } public DbSet Resources { get; set; } public DbSet Users { get; set; } // MAP public DbSet GeoPoints { get; set; } // QUIZ public DbSet QuizQuestions { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }; base.OnModelCreating(modelBuilder); modelBuilder.Entity() .Property(s => s.Title) .HasColumnType("jsonb") .HasConversion( v => JsonSerializer.Serialize(v, options), v => JsonSerializer.Deserialize>(v, options)); modelBuilder.Entity
() .HasDiscriminator("Discriminator") .HasValue
("Base") .HasValue("Agenda") .HasValue("Article") .HasValue("Map") .HasValue("Menu") .HasValue("PDF") .HasValue("Puzzle") .HasValue("Quiz") .HasValue("Slider") .HasValue("Video") .HasValue("Weather") .HasValue("Web"); modelBuilder.Entity
() .Property(s => s.Title) .HasColumnType("jsonb") .HasConversion( v => JsonSerializer.Serialize(v, options), v => JsonSerializer.Deserialize>(v, options)); modelBuilder.Entity
() .Property(s => s.Description) .HasColumnType("jsonb") .HasConversion( v => JsonSerializer.Serialize(v, options), v => JsonSerializer.Deserialize>(v, options)); } } }