/* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this, @typescript-eslint/consistent-type-imports */
import type { ClassType } from "@aet/gql-tools/macro"
import { AutoObjectType } from "@aet/gql-tools/macro"

export function PaginatedResponse<_TItem extends object>(_TItem: ClassType<_TItem>) {
  @AutoObjectType()
  abstract class PaginatedResponseClass {
    items!: _TItem[]
    total!: number
    hasMore!: boolean
  }

  return PaginatedResponseClass
}
