using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; public class ScannedDocumentConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("scanned_documents"); builder.HasKey(d => d.Id); builder.Property(d => d.Id).HasColumnName("id").HasDefaultValueSql("gen_random_uuid()"); builder.Property(d => d.BatchId).HasColumnName("batch_id").IsRequired(); builder.Property(d => d.ObjectKey).HasColumnName("object_key").HasMaxLength(500).IsRequired(); builder.Property(d => d.Sha256).HasColumnName("sha256").HasMaxLength(64).IsRequired(); builder.Property(d => d.ContentType).HasColumnName("content_type").HasMaxLength(100).IsRequired(); builder.Property(d => d.FileSizeBytes).HasColumnName("file_size_bytes").IsRequired(); builder.Property(d => d.UploadedAt).HasColumnName("uploaded_at").HasDefaultValueSql("NOW()"); builder.HasOne(d => d.Batch).WithOne(b => b.Document).HasForeignKey(d => d.BatchId).OnDelete(DeleteBehavior.Restrict); builder.HasIndex(d => d.Sha256); } }