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