import { ApiProperty } from "@nestjs/swagger"
import { IsBoolean, IsNotEmpty, IsOptional, IsString } from "class-validator"
import { messageKey } from "src/constants/message-keys"
import { validationMessage } from "src/utils/helpers"

export class CreatePlanDto {
  @ApiProperty({
    description: "Name of the plan",
    example: "Premium Plan",
  })
  @IsString()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "Name",
    }),
  })
  name: string

  @ApiProperty({
    description: "Id of the charge type",
    example: "1",
  })
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "Charge type",
    }),
  })
  charge_type_id: number

  @ApiProperty({
    description: "Description of the plan",
    example: "This plan includes premium features and support.",
    required: false,
  })
  @IsString()
  @IsOptional()
  description?: string

  @ApiProperty({
    description: "Indicates if this plan is the default one",
    example: false,
    default: false,
  })
  @IsOptional()
  @IsBoolean()
  is_default?: boolean
}
