import { ApiProperty } from "@nestjs/swagger";
import { FxStrategy } from "@prisma/client";
import { IsBoolean, IsEnum, IsInt, IsObject, IsOptional, Max, Min } from "class-validator";

export class UpdateProviderConfigDto {
  @ApiProperty({
    required: false,
    description: "Si se envía, **reemplaza completamente** las credenciales actuales (re-encriptadas).",
    example: { apiKey: "new_api_key", secretKey: "new_secret_key" },
  })
  @IsOptional()
  @IsObject()
  credentials?: Record<string, unknown>;

  @ApiProperty({ required: false, enum: FxStrategy })
  @IsOptional()
  @IsEnum(FxStrategy)
  fxStrategy?: FxStrategy;

  @ApiProperty({ required: false, example: 10 })
  @IsOptional()
  @IsInt()
  @Min(0)
  @Max(1000)
  priority?: number;

  @ApiProperty({ required: false, example: false })
  @IsOptional()
  @IsBoolean()
  active?: boolean;
}
