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

export class CreatePedidoItemDto {
  @ApiProperty({ description: 'ID del producto' })
  @IsNotEmpty()
  @IsUUID()
  producto_id: string;

  @ApiPropertyOptional({ description: 'ID de la presentación (null = unidad base)' })
  @IsOptional()
  @IsUUID()
  presentacion_id?: string;

  @ApiProperty({ description: 'Cantidad solicitada' })
  @IsNotEmpty()
  @IsNumber()
  @Min(0.0001)
  cantidad: number;

  @ApiPropertyOptional({ description: 'Precio negociado (si difiere del precio lista)' })
  @IsOptional()
  @IsNumber()
  @Min(0)
  precio_negociado?: number;

  @ApiPropertyOptional({ description: 'Porcentaje de descuento aplicado al item' })
  @IsOptional()
  @IsNumber()
  @Min(0)
  descuento_porcentaje?: number;

  @ApiPropertyOptional({ description: 'Observación del item' })
  @IsOptional()
  @IsString()
  observacion?: string;
}
