using MediatR;
using IamService.Domain.AggregatesModel.UserAggregate;

namespace IamService.API.Application.Queries.Users;

/// <summary>
/// EN: Query to get user by ID.
/// VI: Query để lấy user theo ID.
/// </summary>
/// <param name="UserId">User ID / ID của user</param>
public record GetUserByIdQuery(Guid UserId) : IRequest<GetUserByIdQueryResult?>;

/// <summary>
/// EN: Query result containing user data.
/// VI: Kết quả query chứa dữ liệu user.
/// </summary>
public record GetUserByIdQueryResult(
    Guid Id,
    string Email,
    string FirstName,
    string LastName,
    string FullName,
    UserStatus Status,
    DateTime CreatedAt,
    DateTime? LastLoginAt);
