using MediatR;

namespace SocialService.API.Application.Queries;

/// <summary>
/// EN: Query to get friends of a user.
/// VI: Query để lấy danh sách bạn bè của user.
/// </summary>
/// <param name="UserId">EN: ID of user / VI: ID của user</param>
/// <param name="Skip">EN: Number of items to skip / VI: Số item bỏ qua</param>
/// <param name="Take">EN: Number of items to take / VI: Số item lấy</param>
public record GetFriendsQuery(Guid UserId, int Skip = 0, int Take = 20) : IRequest<GetFriendsResult>;

/// <summary>
/// EN: Result of get friends query.
/// VI: Kết quả của query lấy danh sách bạn bè.
/// </summary>
public record GetFriendsResult(IEnumerable<FriendDto> Friends, int TotalCount);

/// <summary>
/// EN: DTO for friend.
/// VI: DTO cho bạn bè.
/// </summary>
public record FriendDto(Guid UserId, string DisplayName, string? AvatarUrl, DateTime FriendsSince);
