Удалены <remarks>, <summary> сжаты до короткой фразы, вырезаны ссылки на Task/Ruling/этап/python/прототип; //-комментарии со ссылками на процесс удалены; то же в .proto. Правила обновлены в docs/spec/Код-стайл-Дейл.md. Строк комментариев 27210 -> ~19100.
31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
using Deal.Infrastructure.Persistence.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
|
|
|
namespace Deal.Infrastructure.Persistence.Configurations;
|
|
|
|
/// <summary>
|
|
/// EF-конфигурация отсева пайплайна
|
|
/// </summary>
|
|
public sealed class RejectedItemConfiguration : IEntityTypeConfiguration<RejectedItemEntity>
|
|
{
|
|
public void Configure(EntityTypeBuilder<RejectedItemEntity> builder)
|
|
{
|
|
builder.ToTable("RejectedItems");
|
|
|
|
builder.HasKey(x => x.Id);
|
|
|
|
builder.Property(x => x.Text).HasColumnType("text");
|
|
builder.Property(x => x.Reason).HasColumnType("text");
|
|
builder.Property(x => x.Kw).HasColumnType("text");
|
|
|
|
builder.Property(x => x.SearchTsv)
|
|
.HasComputedColumnSql("to_tsvector('russian', coalesce(\"Text\",''))", stored: true);
|
|
|
|
// Автоочистка старше 3 суток и сортировка списка идут по времени отсева.
|
|
builder.HasIndex(x => x.RejectedAt);
|
|
|
|
builder.HasIndex(x => x.SearchTsv).HasMethod("gin");
|
|
}
|
|
}
|