import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsNotEmpty, IsOptional, IsString, IsUrl } from 'class-validator'; export class SubmitKycDto { @ApiProperty({ example: 'CCCD', description: 'Document type (CCCD, CMND, passport)' }) @IsString() @IsNotEmpty({ message: 'Loại giấy tờ không được để trống' }) documentType!: string; @ApiProperty({ example: '001234567890', description: 'Document number' }) @IsString() @IsNotEmpty({ message: 'Số giấy tờ không được để trống' }) documentNumber!: string; @ApiProperty({ example: 'https://cdn.goodgo.vn/kyc/front-123.jpg', description: 'Front image presigned URL', }) @IsString() @IsUrl({}, { message: 'URL ảnh mặt trước không hợp lệ' }) @IsNotEmpty({ message: 'Vui lòng tải ảnh mặt trước giấy tờ' }) frontImageUrl!: string; @ApiPropertyOptional({ example: 'https://cdn.goodgo.vn/kyc/back-123.jpg', description: 'Back image presigned URL', }) @IsOptional() @IsString() @IsUrl({}, { message: 'URL ảnh mặt sau không hợp lệ' }) backImageUrl?: string; @ApiPropertyOptional({ example: 'https://cdn.goodgo.vn/kyc/selfie-123.jpg', description: 'Selfie image presigned URL', }) @IsOptional() @IsString() @IsUrl({}, { message: 'URL ảnh selfie không hợp lệ' }) selfieUrl?: string; }