namespace Hutopy.Web.Features.Contents.Data; public class ContentDbContext( DbContextOptions options) : DbContext(options) { public const string SchemaName = "Content"; public DbSet Contents => Set(); public DbSet Creators => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasDefaultSchema(SchemaName); modelBuilder .Entity() .Property(c => c.CreatedAt) .ValueGeneratedOnAdd() .HasDefaultValueSql("CURRENT_TIMESTAMP"); modelBuilder .Entity() .HasOne(c => c.Creator) .WithMany() .HasForeignKey(c => c.CreatedBy); modelBuilder .Entity() .OwnsMany(c => c.Reactions) .ToTable("Reactions"); modelBuilder .Entity() .Property(c => c.ThumbnailUrl); modelBuilder .Entity() .OwnsOne(x => x.Socials) .ToTable(nameof(Socials)); modelBuilder .Entity() .OwnsOne(x => x.Colors) .ToTable(nameof(Colors)); modelBuilder .Entity() .OwnsOne(x => x.Images) .ToTable(nameof(Images)); modelBuilder .Entity() .OwnsOne(x => x.PresentationInfos) .ToTable(nameof(PresentationInfos)); } }