#nullable enable
using Baya.Application.Models.Common;
using Baya.Application.Models.Search;
using Mediator;

namespace Baya.Application.Features.Search.Queries.SearchNurses;

/// <summary>
/// The single family-facing discovery query. Category + city are required; district is optional (NULL =
/// whole-city geography is resolved by the backend). Same-gender matching is a first-class facet; price is
/// an IRR <c>long</c> range. Only <c>is_searchable = 1</c> rows are ever returned. Delegates to the
/// <see cref="Baya.Application.Contracts.Search.INurseSearch"/> seam so an Elasticsearch backend can drop in
/// later by configuration alone.
/// </summary>
public record SearchNursesQuery(
    long ServiceCategoryId,
    long CityId,
    long? DistrictId = null,
    string? NurseGender = null,
    long? MinPrice = null,
    long? MaxPrice = null,
    string? PriceUnit = null,
    int Page = 1,
    int PageSize = 50) : IRequest<OperationResult<PagedResult<NurseSearchResultDto>>>;
