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

export class CreateServicePricingDto {
  @ApiProperty({
    description: "The ID of the pricing plan this vehicle pricing belongs to",
    example: 1,
  })
  @IsNumber()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "Plan ID",
    }),
  })
  plan_id: number

  @ApiProperty({
    description: "The ID of the service type",
    example: 3,
  })
  @IsNumber()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "charge Type ID",
    }),
  })
  charge_type_id: number

  @ApiProperty({
    description: "The ID of the service type",
    example: 3,
  })
  @IsNumber()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "service Type ID",
    }),
  })
  service_type_id: number

  @ApiPropertyOptional({
    description: "The ID of the city (optional)",
    example: 10,
  })
  @IsOptional()
  @IsNumber()
  city_id?: number

  @ApiProperty({
    description:
      "The price for this plan, vehicle, service, and city combination",
    example: 499.99,
  })
  @IsNumber()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "Price",
    }),
  })
  price: number
}
