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

export class BulkAssignActivitiesDto {
  @ApiProperty({
    description: "Array of Activity Type IDs to assign to the project",
    example: [1, 2, 3, 4],
    type: [Number],
  })
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "activity_type_ids",
    }),
  })
  @IsArray({
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "activity_type_ids",
      ":type": "array",
    }),
  })
  @ArrayMinSize(1, {
    message: validationMessage(messageKey.field_min_validation_error, {
      ":field": "activity_type_ids",
      ":min": "1",
    }),
  })
  @IsInt({
    each: true,
    message: validationMessage(messageKey.field_type_validation_error, {
      ":field": "activity_type_ids",
      ":type": "array of integers",
    }),
  })
  activity_type_ids: number[]
}
