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

export class CreateClientCompanyContactDto {
  @ApiProperty({ example: 1 })
  @IsInt()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "client_company_id",
    }),
  })
  client_company_id: number

  @ApiProperty({ example: "John" })
  @IsString()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "first_name",
    }),
  })
  first_name: string

  @ApiProperty({ example: "Doe" })
  @IsString()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "last_name",
    }),
  })
  last_name: string

  @ApiProperty({ example: "john.doe@example.com" })
  @IsEmail()
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "email",
    }),
  })
  email: string

  @ApiProperty({ example: "+91" })
  @IsString()
  @IsOptional()
  country_code: string

  @ApiProperty({ example: "9876543210" })
  @IsString()
  @IsOptional()
  phone_number: string

  @ApiPropertyOptional({ example: "Manager" })
  @IsString()
  @IsOptional()
  position?: string
}
