[Ingest] Persistent crawl run-log + per-source breakdown on admin queue
CI/CD / CI · dotnet build (push) Has been cancelled
CI/CD / Deploy · hamkadr (push) Has been cancelled

Each ingestion run now records an IngestionRun row (found/queued/published/flagged/spam/duplicates + a per-source detail string). Admin → صف آگهی‌ها shows a «تاریخچه جمع‌آوری» table of the last 15 runs (hover a row for the per-source breakdown), so admins can see how much each source found vs added over time. IngestionSummary gains TotalFetched. Migration: IngestionRuns table.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-08 06:23:58 +03:30
parent 524c66e25e
commit 487c7ca82f
8 changed files with 1525 additions and 1 deletions
@@ -421,6 +421,44 @@ namespace JobsMedical.Web.Migrations
b.ToTable("FacilityDocuments");
});
modelBuilder.Entity("JobsMedical.Web.Models.IngestionRun", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Detail")
.HasMaxLength(2000)
.HasColumnType("character varying(2000)");
b.Property<int>("Duplicates")
.HasColumnType("integer");
b.Property<int>("Fetched")
.HasColumnType("integer");
b.Property<int>("Flagged")
.HasColumnType("integer");
b.Property<int>("Published")
.HasColumnType("integer");
b.Property<int>("Queued")
.HasColumnType("integer");
b.Property<DateTime>("RunAt")
.HasColumnType("timestamp with time zone");
b.Property<int>("Spam")
.HasColumnType("integer");
b.HasKey("Id");
b.ToTable("IngestionRuns");
});
modelBuilder.Entity("JobsMedical.Web.Models.InterestEvent", b =>
{
b.Property<long>("Id")