using MediatR;
using TakeoutSaaS.Application.App.Stores.Dto;
using TakeoutSaaS.Domain.Stores.Enums;
using TakeoutSaaS.Shared.Abstractions.Results;
namespace TakeoutSaaS.Application.App.Stores.Queries;
///
/// 门店列表查询。
///
public sealed class SearchStoresQuery : IRequest>
{
///
/// 租户 ID(为空则查询全部租户)。
///
public long? TenantId { get; init; }
///
/// 商户 ID(可选)。
///
public long? MerchantId { get; init; }
///
/// 状态过滤。
///
public StoreStatus? Status { get; init; }
///
/// 审核状态过滤。
///
public StoreAuditStatus? AuditStatus { get; init; }
///
/// 经营状态过滤。
///
public StoreBusinessStatus? BusinessStatus { get; init; }
///
/// 主体类型过滤。
///
public StoreOwnershipType? OwnershipType { get; init; }
///
/// 关键词(名称/编码)。
///
public string? Keyword { get; init; }
///
/// 是否包含已软删除数据。
///
public bool IncludeDeleted { get; init; }
///
/// 页码。
///
public int Page { get; init; } = 1;
///
/// 每页条数。
///
public int PageSize { get; init; } = 20;
///
/// 排序字段(name/code/status/createdAt)。
///
public string? SortBy { get; init; }
///
/// 是否倒序。
///
public bool SortDescending { get; init; } = true;
}