Files
vigilcare-records/VigilCareRecordsAPI/Data/Configurations/ScannedDocumentConfiguration.cs
T
2026-06-26 04:20:20 +08:00

21 lines
1.2 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
public class ScannedDocumentConfiguration : IEntityTypeConfiguration<ScannedDocument>
{
public void Configure(EntityTypeBuilder<ScannedDocument> 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<ScannedDocument>(d => d.BatchId).OnDelete(DeleteBehavior.Restrict);
builder.HasIndex(d => d.Sha256);
}
}