Spaces:
Sleeping
Sleeping
| import { IsOptional, IsEnum, IsNumber, Min } from 'class-validator'; | |
| import { ApiPropertyOptional } from '@nestjs/swagger'; | |
| import { Type } from 'class-transformer'; | |
| import { ApiPropertyStringEnumOptional } from '../../../common/swagger/string-enum.schema'; | |
| import { TaskStatus, TaskPriority, TaskType } from '../entities/student-task.entity'; | |
| export enum TaskSortBy { | |
| DUE_DATE = 'due_date', | |
| CREATED_AT = 'created_at', | |
| PRIORITY = 'priority', | |
| } | |
| export class TaskQueryDto { | |
| ({ | |
| description: 'Filter by status', | |
| enumObject: TaskStatus, | |
| }) | |
| () | |
| (TaskStatus) | |
| status?: TaskStatus; | |
| ({ | |
| description: 'Filter by priority', | |
| enumObject: TaskPriority, | |
| }) | |
| () | |
| (TaskPriority) | |
| priority?: TaskPriority; | |
| ({ | |
| description: 'Filter by task type', | |
| enumObject: TaskType, | |
| }) | |
| () | |
| (TaskType) | |
| taskType?: TaskType; | |
| ({ description: 'Page number', example: 1, default: 1 }) | |
| () | |
| () | |
| (1) | |
| (() => Number) | |
| page?: number = 1; | |
| ({ description: 'Items per page', example: 20, default: 20 }) | |
| () | |
| () | |
| (1) | |
| (() => Number) | |
| limit?: number = 20; | |
| ({ | |
| description: 'Sort by field', | |
| enumObject: TaskSortBy, | |
| default: TaskSortBy.CREATED_AT, | |
| }) | |
| () | |
| (TaskSortBy) | |
| sortBy?: TaskSortBy = TaskSortBy.CREATED_AT; | |
| } | |