bb8c6c3be5
New MedboomListingSource: a WordPress medical-classifieds board crawled like medjobs (wp-sitemap.xml -> posts-post-N.xml, newest first), filtered to clinical-role slugs and Tehran-only for launch. medboom skews toward doctors/dentists/pharmacists and carries both hiring and availability posts, so it directly broadens the role mix the nurse-heavy Divar content lacks. Iranian-hosted -> no proxy/VPN needed (relevant now that Telegram is off). Wired like the other sources: AppSetting toggles (MedboomEnabled/MaxAds/UseProxy) + EF migration, SettingsService persistence, admin Settings UI, DI registration. Off by default. Validated against live data: Tehran clinical ads at named clinics (pharmacy/dental/etc.). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
1.4 KiB
C#
52 lines
1.4 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace JobsMedical.Web.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class MedboomSource : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.AddColumn<bool>(
|
|
name: "MedboomEnabled",
|
|
table: "AppSettings",
|
|
type: "boolean",
|
|
nullable: false,
|
|
defaultValue: false);
|
|
|
|
migrationBuilder.AddColumn<int>(
|
|
name: "MedboomMaxAds",
|
|
table: "AppSettings",
|
|
type: "integer",
|
|
nullable: false,
|
|
defaultValue: 40);
|
|
|
|
migrationBuilder.AddColumn<bool>(
|
|
name: "MedboomUseProxy",
|
|
table: "AppSettings",
|
|
type: "boolean",
|
|
nullable: false,
|
|
defaultValue: false);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropColumn(
|
|
name: "MedboomEnabled",
|
|
table: "AppSettings");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "MedboomMaxAds",
|
|
table: "AppSettings");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "MedboomUseProxy",
|
|
table: "AppSettings");
|
|
}
|
|
}
|
|
}
|