import { IsNumber, IsNotEmpty, IsOptional } from 'class-validator';
import { IsAlphaWithMessage } from 'src/common/errors/custom-validation-message';
import { Transform } from 'class-transformer';

export class UpdateAuthDto {
  @IsOptional()
  @IsNotEmpty({ message: 'First name should not be empty.' })
  @IsAlphaWithMessage({ message: 'First Name should be only alphabetic.' })
  @Transform(({ value }) => value.trim().replace(/\s+/g, ' '))
  first_name: string;

  @IsOptional()
  @IsNotEmpty({ message: 'Last name should not be empty.' })
  @Transform(({ value }) => value.trim().replace(/\s+/g, ' '))
  last_name: string;

  @IsOptional()
  @IsNumber({}, { message: 'Contact number must be a number.' })
  @IsNotEmpty({ message: 'Contact number should not be empty.' })
  @Transform(({ value }) =>
    typeof value === 'string' ? parseFloat(value.replace(/\s+/g, '')) : value,
  )
  contact_no: number;

  @IsOptional()
  @Transform(({ value }) => value.trim().replace(/\s+/g, ' '))
  profile_picture?: string;
}
