21 lines
1.2 KiB
C#
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);
|
|
}
|
|
} |