// Path: inventory-aggregate-root/src/main/java/org/myeslib/example/SampleDomain.java
// @Value
// public static class DecreaseInventory implements Command {
//     @NonNull
//     UUID commandId;
//     @NonNull
//     UUID id;
//     @NonNull
//     Integer howMany;
//     Long targetVersion;
// }


import java.util.List;
import java.util.UUID;
import org.apache.camel.component.dataset.DataSetSupport;
import org.myeslib.example.SampleDomain.DecreaseInventory;
package org.myeslib.cmdproducer.datasets;



public class DecreaseCommandDataSet extends DataSetSupport {

	public final List<UUID> ids;
	
	public DecreaseCommandDataSet(List<UUID> ids, int howManyAggregates) {
		this.ids = ids;
		setSize(howManyAggregates);
		setReportCount(Math.min(100, howManyAggregates));
	}

	@Override
	protected Object createMessageBody(long messageIndex) {
		UUID id = ids.get((int) messageIndex);
		DecreaseInventory command = new DecreaseInventory(UUID.randomUUID(), id, 1, 2L);
// Path: inventory-aggregate-root/src/main/java/org/myeslib/example/SampleDomain.java
// @Value
// public static class DecreaseInventory implements Command {
//     @NonNull
//     UUID commandId;
//     @NonNull
//     UUID id;
//     @NonNull
//     Integer howMany;
//     Long targetVersion;
// }


// Path: inventory-cmd-producer/src/main/java/org/myeslib/cmdproducer/datasets/DecreaseCommandDataSet.java
import java.util.List;
import java.util.UUID;
import org.apache.camel.component.dataset.DataSetSupport;
import org.myeslib.example.SampleDomain.DecreaseInventory;

package org.myeslib.cmdproducer.datasets;



public class DecreaseCommandDataSet extends DataSetSupport {

	public final List<UUID> ids;
	
	public DecreaseCommandDataSet(List<UUID> ids, int howManyAggregates) {
		this.ids = ids;
		setSize(howManyAggregates);
		setReportCount(Math.min(100, howManyAggregates));
	}

	@Override
	protected Object createMessageBody(long messageIndex) {
		UUID id = ids.get((int) messageIndex);
		DecreaseInventory command = new DecreaseInventory(UUID.randomUUID(), id, 1, 2L);
		return command;