import { ApiProperty } from '@nestjs/swagger';
import { IsIn, IsNotEmpty, IsOptional, IsString, Length, ValidateIf } from 'class-validator';

export class VerificarCodigoDto {
  @ApiProperty({ example: '595981743120', description: 'Celular' })
  @ValidateIf((o: VerificarCodigoDto) => !o.celular)
  @IsNotEmpty({ message: 'Celular es obligatorio' })
  @IsString()
  @IsOptional()
  celular: string;

  @ApiProperty({ example: '123456', description: 'Código' })
  @IsNotEmpty({ message: 'Código es obligatorio' })
  @IsString()
  @Length(6, 6, { message: 'Código debe tener exactamente 6 dígitos' })
  codigo: string;

  @ApiProperty({ example: 'email', description: 'Tipo de verificación' })
  @IsNotEmpty({ message: 'Tipo es obligatorio' })
  @IsString()
  @IsIn(['celular', 'email'], { message: 'Tipo debe ser "celular" o "email"' })
  tipo: 'celular' | 'email';
}
