import { ResponseArgs } from './response-args';

/**
 * Extended response structure specifically for paginated list data.
 * Includes pagination metadata in addition to standard response properties.
 *
 * @template T - The type of individual items in the result array
 */
export interface ListResponseArgs<T> extends ResponseArgs<T[]> {
  /**
   * Number of items skipped in the result set (pagination offset)
   * Used for calculating the starting position in paginated results
   */
  skip: number;

  /**
   * Maximum number of items to include in the result set (page size)
   * Defines how many items should be returned per page
   */
  take: number;

  /**
   * Total number of items available in the complete result set
   * Used for calculating total pages and showing pagination information
   */
  hits: number;
}
