import { ApiProperty } from "@nestjs/swagger";

// swagger query builder example
export class PaginatedQueryDto {
    @ApiProperty({ example: 1, required: false, description: 'Page' })
    page: number;

    @ApiProperty({ example: 10, required: false, description: 'Limit' })
    limit: number;

    @ApiProperty({ example: 'createdAt', required: false, description: 'Sort (Supports multiple fields. Eg: createdAt,-updatedAt)' })
    sort: string;

    @ApiProperty({ example: 'name,user', required: false, description: 'Fields that you want to get (Supports multiple fields. Eg: name,user)' })
    fields: string;

    @ApiProperty({ example: 'hello', required: false, description: 'Search text' })
    searchTerm: string;

    // dynamic fields (Record<string, unknown> is equivalent to object)
    @ApiProperty({ example: { isVerified: true, isBlocked: false, isDeleted: false }, required: false, description: 'Dynamic fields' })
    dynamicFields: Record<string, unknown>;
}