using MediatR;

namespace SocialService.API.Application.Queries;

/// <summary>
/// EN: Query to get all blocks with pagination (admin).
/// VI: Query để lấy tất cả blocks với phân trang (admin).
/// </summary>
public record GetAllBlocksQuery(
    int Skip = 0,
    int Take = 20) : IRequest<GetAllBlocksResult>;

/// <summary>
/// EN: Result for GetAllBlocksQuery.
/// VI: Kết quả cho GetAllBlocksQuery.
/// </summary>
public record GetAllBlocksResult(
    IEnumerable<BlockAdminDto> Blocks,
    int TotalCount);

/// <summary>
/// EN: DTO for block in admin list.
/// VI: DTO cho block trong danh sách admin.
/// </summary>
public record BlockAdminDto(
    Guid Id,
    Guid BlockerId,
    Guid BlockedId,
    string? Reason,
    DateTime CreatedAt);
