#39 Added basic implementation

This commit is contained in:
Marvin Scham
2023-05-23 02:58:10 +02:00
parent 175140451d
commit 70221d26a6
5 changed files with 304 additions and 10 deletions

View File

@@ -1,8 +1,146 @@
package de.rwu.easydrop.api.dto;
import de.rwu.easydrop.util.FormattingUtil;
/**
* Product data transfer object.
*
* @since 0.1.0
*/
public class ProductDTO {
/**
* Data source platform, like "Amazon".
*/
private String dataOrigin;
/**
* @return the dataOrigin
*/
public String getDataOrigin() {
return dataOrigin;
}
/**
* @param newDataOrigin the dataOrigin to set
*/
public void setDataOrigin(final String newDataOrigin) {
this.dataOrigin = newDataOrigin;
}
/**
* Platform internal product identifier.
*/
private String productId;
/**
* @return the productId
*/
public String getProductId() {
return productId;
}
/**
* @param newProductId the productId to set
*/
public void setProductId(final String newProductId) {
this.productId = newProductId;
}
/**
* Current product price per piece in Euro.
*/
private double currentPrice;
/**
* @return the currentPrice
*/
public double getCurrentPrice() {
return currentPrice;
}
/**
* @param newCurrentPrice the currentPrice to set
*/
public void setCurrentPrice(final double newCurrentPrice) {
this.currentPrice = newCurrentPrice;
}
/**
* Name of mercant offering the product on the platform.
*/
private String merchant;
/**
* @return the merchant
*/
public String getMerchant() {
return merchant;
}
/**
* @param newMerchant the merchant to set
*/
public void setMerchant(final String newMerchant) {
this.merchant = newMerchant;
}
/**
* Additional Cost for delivery in Euro.
*/
private double deliveryPrice;
/**
* @return the deliveryPrice
*/
public double getDeliveryPrice() {
return deliveryPrice;
}
/**
* @param newDeliveryPrice the deliveryPrice to set
*/
public void setDeliveryPrice(final double newDeliveryPrice) {
this.deliveryPrice = newDeliveryPrice;
}
/**
* Whether the product can be purchased at this point.
*/
private boolean available;
/**
* @return the available
*/
public boolean isAvailable() {
return available;
}
/**
* @param newAvailable the available to set
*/
public void setAvailable(final boolean newAvailable) {
this.available = newAvailable;
}
/**
* Creates ProductDTO instance.
*
* @param newProductId Interal Product indetifier
* @param newDataOrigin Data Origin
*/
public ProductDTO(final String newProductId, final String newDataOrigin) {
this.productId = newProductId;
this.dataOrigin = newDataOrigin;
}
@Override
public final String toString() {
return "ProductDTO{"
+ productId + " from "
+ merchant + " ("
+ dataOrigin + ")"
+ " at "
+ FormattingUtil.formatEuro(currentPrice) + " (available: "
+ (available ? "yes" : "no") + ")}";
}
}