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;
}
