using JSMR.Domain.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace JSMR.Infrastructure.Data.Configuration; public sealed class JobConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Jobs"); builder.HasKey(x => x.Id); builder.Property(x => x.Code) .HasMaxLength(100) .IsRequired(); builder.Property(x => x.RequestedByUserId) .HasMaxLength(100); builder.Property(x => x.RequestedSource) .HasMaxLength(50) .IsRequired(); builder.Property(x => x.WorkerName) .HasMaxLength(200); builder.Property(x => x.CurrentStep) .HasMaxLength(500); builder.Property(x => x.ResultSummary) .HasMaxLength(2000); builder.Property(x => x.Error) .HasColumnType("TEXT"); builder.Property(x => x.ParametersJson) .HasColumnType("LONGTEXT"); builder.HasIndex(x => new { x.Status, x.CreatedUtc }); builder.HasIndex(x => x.Code); } }