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