using Microsoft.EntityFrameworkCore; using TeamUp.Modules.Memory.Domain; using TeamUp.SharedKernel.Persistence; namespace TeamUp.Modules.Memory.Persistence; internal sealed class MemoryDbContext(DbContextOptions options) : DbContext(options), IModuleDbContext { public DbSet Entries => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasDefaultSchema("memory"); modelBuilder.Entity(entry => { entry.ToTable("memory_entries"); entry.HasKey(e => e.Id); entry.Property(e => e.Kind).HasConversion().HasMaxLength(20); entry.Property(e => e.Content).IsRequired(); entry.Property(e => e.Embedding).HasColumnType("vector(384)"); entry.HasIndex(e => new { e.TeamId, e.CreatedAtUtc }); }); } }