import { ApiProperty } from "@nestjs/swagger"
import { IsInt, IsOptional } from "class-validator"
import { messageKey } from "../../../constants/message-keys"
import { validationMessage } from "../../../utils/helpers"

export class MyMisFiltersDto {
  @ApiProperty({
    description: "Page number for pagination",
    example: 1,
    required: false,
  })
  @IsOptional()
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "page",
      ":type": "integer",
    }),
  })
  page?: number

  @ApiProperty({
    description: "Number of items per page",
    example: 10,
    required: false,
  })
  @IsOptional()
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "limit",
      ":type": "integer",
    }),
  })
  limit?: number

  @ApiProperty({
    description: "Year filter",
    example: 2024,
    required: false,
  })
  @IsOptional()
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "year",
      ":type": "integer",
    }),
  })
  year?: number
}
