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

export class KpiRatingDto {
  @ApiProperty({
    description: "Month",
    example: 1,
    required: true,
  })
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "month",
      ":type": "integer",
    }),
  })
  month: number

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

  @ApiProperty({
    description: "Department ID",
    example: 1,
    required: true,
  })
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "department_id",
      ":type": "integer",
    }),
  })
  department_id: number

  @ApiProperty({
    description: "KPI ID",
    example: 1,
    required: true,
  })
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "kpi_id",
      ":type": "integer",
    }),
  })
  kpi_id: number

  @ApiProperty({
    description: "Rating value",
    example: 4.5,
    required: true,
  })
  @IsNumber(
    {},
    {
      message: validationMessage(messageKey.field_type_validation_error, {
        ":field": "rating",
        ":type": "number",
      }),
    },
  )
  rating: number
}
