using JSMR.Application.Enums;
using JSMR.Domain.ValueObjects;

namespace JSMR.Infrastructure.Scanning;

public static class DLSiteSearchFilterBuilderExtensions
{
    public static DLSiteSearchFilterBuilder UseDefaultLocale(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.UseLocale(Locale.Japanese);
    }

    public static DLSiteSearchFilterBuilder UseEnglishLocale(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.UseLocale(Locale.English);
    }

    public static DLSiteSearchFilterBuilder IncludeJapaneseSupportedLanguage(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.IncludeSupportedLanguage(SupportedLanguage.Japanese);
    }

    public static DLSiteSearchFilterBuilder IncludeEnglishSupportedLanguage(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.IncludeSupportedLanguage(SupportedLanguage.English);
    }

    public static DLSiteSearchFilterBuilder IncludeSimplifiedChineseSupportedLanguage(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.IncludeSupportedLanguage(SupportedLanguage.ChineseSimplified);
    }

    public static DLSiteSearchFilterBuilder IncludeTraditionalChineseSupportedLanguage(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.IncludeSupportedLanguage(SupportedLanguage.ChineseTraditional);
    }

    public static DLSiteSearchFilterBuilder IncludeKoreanSupportedLanguage(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.IncludeSupportedLanguage(SupportedLanguage.Korean);
    }

    public static DLSiteSearchFilterBuilder IncludeAlingualSupportedLanguage(this DLSiteSearchFilterBuilder searchFilterBuilder)
    {
        return searchFilterBuilder.IncludeSupportedLanguage(SupportedLanguage.Alingual);
    }
}