//
using System;
using Api.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Api.Migrations
{
[DbContext(typeof(RagDbContext))]
partial class RagDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("rag")
.HasAnnotation("ProductVersion", "10.0.7")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Api.Data.Entities.RagChatCompletionCacheEntity", b =>
{
b.Property("CacheKey")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("CreatedAt")
.ValueGeneratedOnAdd()
.HasColumnType("datetime2")
.HasDefaultValueSql("SYSUTCDATETIME()");
b.Property("Model")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("nvarchar(120)");
b.Property("ResponseText")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("Temperature")
.HasColumnType("decimal(4,2)");
b.HasKey("CacheKey");
b.ToTable("ChatCompletionCache", "rag");
});
modelBuilder.Entity("Api.Data.Entities.RagChunkEntity", b =>
{
b.Property("Id")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("ChunkIndex")
.HasColumnType("int");
b.Property("DocumentId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("Embedding")
.IsRequired()
.HasColumnType("varbinary(max)");
b.Property("Text")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("DocumentId");
b.ToTable("Chunks", "rag");
});
modelBuilder.Entity("Api.Data.Entities.RagDocumentEntity", b =>
{
b.Property("Id")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("CreatedAt")
.ValueGeneratedOnAdd()
.HasColumnType("datetime2")
.HasDefaultValueSql("SYSUTCDATETIME()");
b.Property("DocumentType")
.IsRequired()
.HasMaxLength(80)
.HasColumnType("nvarchar(80)");
b.Property("MetadataJson")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(max)")
.HasDefaultValue("{}");
b.Property("RawText")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("SourceUrl")
.HasMaxLength(1200)
.HasColumnType("nvarchar(1200)");
b.Property("TextHash")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("Title")
.IsRequired()
.HasMaxLength(300)
.HasColumnType("nvarchar(300)");
b.Property("TypeConfidence")
.HasColumnType("float");
b.HasKey("Id");
b.HasIndex("DocumentType");
b.HasIndex("TextHash");
b.ToTable("Documents", "rag");
});
modelBuilder.Entity("Api.Data.Entities.RagEmbeddingCacheEntity", b =>
{
b.Property("CacheKey")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("CreatedAt")
.ValueGeneratedOnAdd()
.HasColumnType("datetime2")
.HasDefaultValueSql("SYSUTCDATETIME()");
b.Property("Model")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("nvarchar(120)");
b.Property("TextHash")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("Vector")
.IsRequired()
.HasColumnType("varbinary(max)");
b.HasKey("CacheKey");
b.HasIndex("TextHash");
b.ToTable("EmbeddingCache", "rag");
});
modelBuilder.Entity("Api.Data.Entities.RagChunkEntity", b =>
{
b.HasOne("Api.Data.Entities.RagDocumentEntity", "Document")
.WithMany("Chunks")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Document");
});
modelBuilder.Entity("Api.Data.Entities.RagDocumentEntity", b =>
{
b.Navigation("Chunks");
});
#pragma warning restore 612, 618
}
}
}