using MediatR;
using TakeoutSaaS.Application.Identity.Contracts;
using TakeoutSaaS.Domain.Identity.Enums;
using TakeoutSaaS.Shared.Abstractions.Results;
namespace TakeoutSaaS.Application.Identity.Queries;
///
/// 用户列表查询。
///
public sealed record SearchIdentityUsersQuery : IRequest>
{
///
/// 租户 ID(超级管理员可选)。
///
public long? TenantId { get; init; }
///
/// 关键字(账号/姓名/手机号/邮箱)。
///
public string? Keyword { get; init; }
///
/// 用户状态。
///
public IdentityUserStatus? Status { get; init; }
///
/// 角色 ID。
///
public long? RoleId { get; init; }
///
/// 创建开始时间(UTC)。
///
public DateTime? CreatedAtFrom { get; init; }
///
/// 创建结束时间(UTC)。
///
public DateTime? CreatedAtTo { get; init; }
///
/// 最近登录开始时间(UTC)。
///
public DateTime? LastLoginFrom { get; init; }
///
/// 最近登录结束时间(UTC)。
///
public DateTime? LastLoginTo { get; init; }
///
/// 是否包含已删除用户。
///
public bool IncludeDeleted { get; init; }
///
/// 页码(从 1 开始)。
///
public int Page { get; init; } = 1;
///
/// 每页条数。
///
public int PageSize { get; init; } = 20;
///
/// 排序字段。
///
public string? SortBy { get; init; }
///
/// 是否降序。
///
public bool SortDescending { get; init; } = true;
}