using JobsMedical.Web.Models;
using Microsoft.Extensions.Hosting;

namespace JobsMedical.Web.Services.Scraping;

/// <summary>
/// Built-in representative Persian posts (good, incomplete, and spam) so the whole pipeline can be
/// demoed. Only active in Development — never injects sample data into production.
/// </summary>
public class SampleListingSource : IListingSource
{
    private readonly IHostEnvironment _env;
    public SampleListingSource(IHostEnvironment env) => _env = env;

    public string Name => "نمونه (کانال آزمایشی)";

    private static readonly string[] Posts =
    {
        "درمانگاه شبانه‌روزی در سعادت‌آباد نیازمند پزشک عمومی برای شیفت شب، کارانه ۳ میلیون تومان. تماس ۰۹۱۲۳۴۵۶۷۸۹",
        "کلینیک تخصصی در تهران به پرستار خانم برای شیفت عصر نیازمند است، ۵۰٪ سهم درآمد. ۰۹۳۵۱۱۱۲۲۳۳",
        "استخدام ماما تمام‌وقت در بیمارستان خصوصی، حقوق توافقی. منطقه شهرک غرب.",
        "نیازمند تکنسین اتاق عمل آقا جهت همکاری در نارمک، شیفت صبح. ۰۹۱۲۰۰۰۰۰۰۰",
        "فروش فالوور و بک لینک ارزان، سرمایه گذاری در ارز دیجیتال با سود تضمینی!",
        "پزشک",
        "بیمارستان آتیه جهت تکمیل کادر درمان به پزشک عمومی مقیم نیازمند است. قرارداد یک‌ساله، حقوق ۴۵ میلیون ماهانه. تهرانپارس.",
    };

    public Task<IReadOnlyList<ScrapedItem>> FetchAsync(AppSetting settings, CancellationToken ct = default)
        => Task.FromResult<IReadOnlyList<ScrapedItem>>(
            _env.IsDevelopment()
                ? Posts.Select(p => new ScrapedItem(Name, p)).ToList()
                : Array.Empty<ScrapedItem>());
}
