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

export class RecalcularListaDto {
  @ApiProperty({ description: 'ID de la lista de precios a recalcular' })
  @IsUUID()
  listaPreciosId: string;

  @ApiPropertyOptional({
    description: 'IDs de producto a recalcular. Vacío = todo el catálogo con precio_costo cargado.',
    type: [String],
  })
  @IsOptional()
  @IsArray()
  @IsUUID('4', { each: true })
  productoIds?: string[];

  @ApiPropertyOptional({
    description: 'Si true, no toca productos cuyo precio en la lista fue editado manualmente (override)',
    default: true,
  })
  @IsOptional()
  @IsBoolean()
  preservarOverride?: boolean;

  @ApiPropertyOptional({ description: 'Si true, también regenera la grilla de cuotas de cada producto afectado', default: true })
  @IsOptional()
  @IsBoolean()
  generarCuotas?: boolean;
}
