import { FilterableField, QueryOptions, PagingStrategies } from '@ptc-org/nestjs-query-graphql'
import { ObjectType, ID, GraphQLISODateTime, Field } from '@nestjs/graphql'
@ObjectType('TodoItem')
@QueryOptions({
pagingStrategy: PagingStrategies.OFFSET, // use offset based paging for this DTO
enableTotalCount: true, // enable querying for totalCount
defaultResultSize: 5, // return 5 records by default
maxResultSize: 100, // do not allow querying for more than 100 records at a time
defaultFilter: { completed: { is: true } }, // default filter when one is not provided
defaultSort: [{ field: 'title', direction: SortDirection.ASC }] // default sort when one is not provided.
})
export class TodoItemDTO {
@FilterableField(() => ID)
id!: string
@FilterableField()
title!: string
@FilterableField()
completed!: boolean
@FilterableField(() => GraphQLISODateTime)
created!: Date
@FilterableField(() => GraphQLISODateTime)
updated!: Date
}