import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { ArrayMaxSize, ArrayNotEmpty, IsArray, IsBoolean, IsOptional, IsUUID } from 'class-validator';

/** Mismo tope que la selección "todo el filtro" de productos (BULK_PRODUCTOS_MAX_IDS_SELECCION). */
export const BUSQUEDA_MAX_PRODUCTOS = 20000;

export class CrearBusquedaDto {
  @ApiProperty({ type: [String], description: 'IDs de productos a procesar (resueltos con /productos/bulk/ids)' })
  @IsArray()
  @ArrayNotEmpty()
  @ArrayMaxSize(BUSQUEDA_MAX_PRODUCTOS)
  @IsUUID('4', { each: true })
  producto_ids: string[];

  @ApiPropertyOptional({ default: true, description: 'Saltar productos que ya tienen alguna imagen activa' })
  @IsOptional()
  @IsBoolean()
  solo_sin_imagen?: boolean = true;

  @ApiPropertyOptional({
    default: false,
    description: 'Procesar solo productos con existencias (suma de stock_deposito > 0). Evita gastar IA en productos que no se venden.',
  })
  @IsOptional()
  @IsBoolean()
  solo_con_stock?: boolean = false;
}
