package org.cryptocoinpartners.schema;
import java.math.BigDecimal;
import javax.annotation.Nullable;
import org.joda.time.Instant;
import com.google.inject.assistedinject.Assisted;
public interface TradeFactory {
Trade create(Market market, Instant time, @Nullable String remoteKey, @Assisted("tradePriceCount") long priceCount,
@Assisted("tradeVolumeCount") long volumeCount);
Trade create(Market market, @Assisted("tradeTime") Instant time, @Assisted("tradeTimeRecieved") Instant timeRecieved, @Nullable String remoteKey,
@Assisted("tradePriceCount") long priceCount, @Assisted("tradeVolumeCount") long volumeCount);
Trade create(Market market, Instant time, @Nullable String remoteKey, @Assisted("tradePrice") BigDecimal price, @Assisted("tradeVolume") BigDecimal volume);
Trade fromDoubles(Market market, Instant time, String remoteKey, @Assisted("tradePrice") double price, @Assisted("tradeVolume") double volume);
Trade fromDoubles(Market market, @Assisted("tradeTime") Instant time, @Assisted("timeRecieved") Instant timeRecieved, String remoteKey,
@Assisted("tradePrice") double price, @Assisted("tradeVolume") double volume);
}