Files
myAi/cv-matcher-api/Data/CvMatcherDbContext.cs
T
claude 20b4127fda
Build and Push Docker Images / build (push) Successful in 2s
Changes
2026-05-04 21:41:14 +03:00

41 lines
1.6 KiB
C#

using Api.Data.Entities;
using Microsoft.EntityFrameworkCore;
namespace Api.Data;
public sealed class CvMatcherDbContext : DbContext
{
public CvMatcherDbContext(DbContextOptions<CvMatcherDbContext> options) : base(options)
{
}
public DbSet<CvMatchResultEntity> CvMatchResults => Set<CvMatchResultEntity>();
public DbSet<CvMatcherChatCacheEntity> CvMatcherChatCache => Set<CvMatcherChatCacheEntity>();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<CvMatchResultEntity>(entity =>
{
entity.ToTable("CvMatchResults");
entity.HasKey(x => x.Id);
entity.Property(x => x.Id).HasMaxLength(64);
entity.Property(x => x.CvDocumentId).HasMaxLength(64).IsRequired();
entity.Property(x => x.JobDocumentId).HasMaxLength(64).IsRequired();
entity.Property(x => x.ResultJson).IsRequired();
entity.Property(x => x.CreatedAt).HasDefaultValueSql("SYSUTCDATETIME()");
entity.HasIndex(x => new { x.CvDocumentId, x.JobDocumentId }).IsUnique();
});
modelBuilder.Entity<CvMatcherChatCacheEntity>(entity =>
{
entity.ToTable("CvMatcherChatCache");
entity.HasKey(x => x.CacheKey);
entity.Property(x => x.CacheKey).HasMaxLength(64);
entity.Property(x => x.Model).HasMaxLength(120).IsRequired();
entity.Property(x => x.Temperature).HasColumnType("decimal(4,2)");
entity.Property(x => x.ResponseText).IsRequired();
entity.Property(x => x.CreatedAt).HasDefaultValueSql("SYSUTCDATETIME()");
});
}
}