using InkForge.Data.Infrastructure; using Microsoft.EntityFrameworkCore; namespace InkForge.Data; public class NoteDbContext( DbContextOptions options ) : DbContext(options) { public DbSet Blobs { get; set; } = default!; public DbSet Metadata { get; set; } = default!; public DbSet MetadataHistory { get; set; } = default!; public DbSet Notes { get; set; } = default!; public DbSet NoteVersions { get; set; } = default!; protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(options => { options.HasKey(m => m.Id); }); modelBuilder.Entity(options => { options.Property(m => m.Id).IsRequired(); options.HasKey(m => m.Version); options.HasIndex(nameof(MetadataVersionEntity.Id), nameof(MetadataVersionEntity.Version)).IsUnique(); }); modelBuilder.Entity(options => { options.OwnsOne(m => m.Value); options.HasKey(m => m.Id); }); modelBuilder.Entity(options => { options.OwnsOne(m => m.Value); options.Property(m => m.Id).IsRequired(); options.HasKey(m => m.Version); options.HasIndex(nameof(NoteVersionEntity.Id), nameof(NoteVersionEntity.Version)).IsUnique(); }); } }