import { ApiPropertyOptional, OmitType } from "@nestjs/swagger"
import { IsInt, IsOptional } from "class-validator"
import { CreateTimeTrackingDto } from "./create-time-tracking.dto"
import { validationMessage } from "../../../utils/helpers"
import { messageKey } from "../../../constants/message-keys"

export class UpdateTimeTrackingDto extends OmitType(CreateTimeTrackingDto, [
  "project_id",
  "activity_type_id",
] as const) {
  @ApiPropertyOptional({ description: "Project ID", example: 1 })
  @IsOptional()
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "project_id",
      ":type": "integer",
    }),
  })
  project_id?: number

  @ApiPropertyOptional({ description: "Activity Type ID", example: 1 })
  @IsOptional()
  @IsInt({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "activity_type_id",
      ":type": "integer",
    }),
  })
  activity_type_id?: number
}
