import { IsObject, IsOptional, IsString, IsUUID, MaxLength } from 'class-validator';

/**
 * Body de POST /middleware-sifen/evento/:tipoEvento/:tipoDocumento.
 *
 * `datosCliente` (usado en el evento de nominación) se valida solo como objeto
 * opcional —sin @ValidateNested— a propósito: es un payload dinámico que se pasa
 * tal cual al middleware SIFEN, por lo que sus propiedades internas no deben ser
 * removidas por el whitelist del ValidationPipe.
 */
export class EnviarEventoDto {
  @IsUUID()
  documentoId: string;

  @IsOptional()
  @IsString()
  @MaxLength(500)
  motivo?: string;

  @IsOptional()
  @IsObject()
  datosCliente?: Record<string, unknown>;
}
