using MediatR;
using SocialService.Domain.Services;

namespace SocialService.API.Application.Queries;

/// <summary>
/// EN: Query to get friend suggestions for a user.
/// VI: Query để lấy gợi ý kết bạn cho user.
/// </summary>
/// <param name="UserId">EN: ID of user / VI: ID của user</param>
/// <param name="Limit">EN: Maximum suggestions / VI: Số gợi ý tối đa</param>
public record GetFriendSuggestionsQuery(Guid UserId, int Limit = 10) : IRequest<GetFriendSuggestionsResult>;

/// <summary>
/// EN: Result of get friend suggestions query.
/// VI: Kết quả của query lấy gợi ý kết bạn.
/// </summary>
public record GetFriendSuggestionsResult(IEnumerable<FriendSuggestionDto> Suggestions);

/// <summary>
/// EN: DTO for friend suggestion.
/// VI: DTO cho gợi ý kết bạn.
/// </summary>
public record FriendSuggestionDto(Guid UserId, string DisplayName, string? AvatarUrl, int MutualFriendsCount);
