// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/command/Command.java
// public abstract class Command {
// 
//   @Override
//   public boolean equals(Object o) {
//     return EqualsBuilder.reflectionEquals(this, o);
//   }
// 
//   @Override
//   public int hashCode() {
//     return HashCodeBuilder.reflectionHashCode(this);
//   }
// 
//   @Override
//   public String toString() {
//     return ToStringBuilder.reflectionToString(this, SHORT_PREFIX_STYLE);
//   }
// 
// }
// 
// Path: order-context-parent/eventbus-contract/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/ProductId.java
// public class ProductId extends GenericId {
// 
//   public ProductId(@JsonProperty("id") String id) {
//     super(id);
//   }
// 
//   public static ProductId randomId() {
//     return new ProductId(UUID.randomUUID().toString());
//   }
// 
// }
// 
// Path: order-context-parent/eventbus-contract/src/main/java/se/citerus/cqrs/bookstore/ordercontext/publishercontract/PublisherContractId.java
// public class PublisherContractId extends GenericId {
// 
//   public PublisherContractId(@JsonProperty("id") String id) {
//     super(id);
//   }
// 
//   public static PublisherContractId randomId() {
//     return new PublisherContractId(UUID.randomUUID().toString());
//   }
// 
// }


import se.citerus.cqrs.bookstore.command.Command;
import se.citerus.cqrs.bookstore.ordercontext.order.ProductId;
import se.citerus.cqrs.bookstore.ordercontext.publishercontract.PublisherContractId;
import static com.google.common.base.Preconditions.checkArgument;
package se.citerus.cqrs.bookstore.ordercontext.publishercontract.command;



public class RegisterPurchaseCommand extends Command {

  public final PublisherContractId publisherContractId;
  public final ProductId productId;
  public final long unitPrice;
// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/command/Command.java
// public abstract class Command {
// 
//   @Override
//   public boolean equals(Object o) {
//     return EqualsBuilder.reflectionEquals(this, o);
//   }
// 
//   @Override
//   public int hashCode() {
//     return HashCodeBuilder.reflectionHashCode(this);
//   }
// 
//   @Override
//   public String toString() {
//     return ToStringBuilder.reflectionToString(this, SHORT_PREFIX_STYLE);
//   }
// 
// }
// 
// Path: order-context-parent/eventbus-contract/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/ProductId.java
// public class ProductId extends GenericId {
// 
//   public ProductId(@JsonProperty("id") String id) {
//     super(id);
//   }
// 
//   public static ProductId randomId() {
//     return new ProductId(UUID.randomUUID().toString());
//   }
// 
// }
// 
// Path: order-context-parent/eventbus-contract/src/main/java/se/citerus/cqrs/bookstore/ordercontext/publishercontract/PublisherContractId.java
// public class PublisherContractId extends GenericId {
// 
//   public PublisherContractId(@JsonProperty("id") String id) {
//     super(id);
//   }
// 
//   public static PublisherContractId randomId() {
//     return new PublisherContractId(UUID.randomUUID().toString());
//   }
// 
// }


// Path: order-context-parent/publisher-contract-command/src/main/java/se/citerus/cqrs/bookstore/ordercontext/publishercontract/command/RegisterPurchaseCommand.java
import se.citerus.cqrs.bookstore.command.Command;
import se.citerus.cqrs.bookstore.ordercontext.order.ProductId;
import se.citerus.cqrs.bookstore.ordercontext.publishercontract.PublisherContractId;
import static com.google.common.base.Preconditions.checkArgument;

package se.citerus.cqrs.bookstore.ordercontext.publishercontract.command;



public class RegisterPurchaseCommand extends Command {

  public final PublisherContractId publisherContractId;
  public final ProductId productId;
  public final long unitPrice;
  public final int quantity;