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

export class UpdateCompletionPercentageDto {
  @ApiProperty({
    description: "Project Completion Percentage",
    example: 75.5,
    minimum: 0,
    maximum: 100,
  })
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "completion_percentage",
    }),
  })
  @IsNumber(
    { maxDecimalPlaces: 2 },
    {
      message: validationMessage(messageKey.field_type_validation_error, {
        ":field": "completion_percentage",
        ":type": "number",
      }),
    },
  )
  @Min(0, {
    message: validationMessage(messageKey.field_min_validation_error, {
      ":field": "completion_percentage",
      ":min": "0",
    }),
  })
  @Max(100, {
    message: validationMessage(messageKey.field_max_validation_error, {
      ":field": "completion_percentage",
      ":max": "100",
    }),
  })
  completion_percentage: number
}
