import { IsNotEmpty, IsUUID, IsOptional, IsObject, IsBoolean } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';

export class InfluencerPaymentMethodCreateDto {
  @ApiProperty({ example: 'UUID', required: true, description: 'Payment method ID' })
  @IsNotEmpty({ message: 'Payment method ID is required.' })
  @IsUUID(undefined, { message: 'Payment method ID is invalid.' })
  payment_method_id: string;

  @ApiProperty({ 
    example: { account_number: '1234567890', bank_name: 'ABC Bank', account_holder: 'John Doe' }, 
    required: false,
    description: 'JSON data for payment method configuration'
  })
  @IsOptional()
  @IsObject()
  json_data?: Record<string, any>;

  @ApiProperty({ example: true, required: false, description: 'Whether the payment method is active' })
  @IsOptional()
  @IsBoolean()
  is_active?: boolean;
}
