import { IsNotEmpty, IsString, IsNumber, IsOptional } from 'class-validator';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { Type } from 'class-transformer';

export class ValidateCouponDto {
  @IsNotEmpty()
  @IsString()
  @ApiProperty({ example: 'DISCOUNT10', description: 'Coupon code to validate' })
  code!: string;

  @IsOptional()
  @IsNumber()
  @Type(() => Number)
  @ApiPropertyOptional({ example: 150000, description: 'Order total amount for validation' })
  orderAmount?: number;

  @IsOptional()
  @IsString()
  @ApiPropertyOptional({ example: 'user-id', description: 'User ID for per-user usage limits' })
  userId?: string;
}
