diff --git a/src/main/java/de/rwu/easydrop/core/Core.java b/src/main/java/de/rwu/easydrop/core/Core.java new file mode 100644 index 0000000..b242b44 --- /dev/null +++ b/src/main/java/de/rwu/easydrop/core/Core.java @@ -0,0 +1,34 @@ +package de.rwu.easydrop.core; + +import java.util.List; +import de.rwu.easydrop.model.Offer; + +public class Core { + + private OfferIdentifier ident; + private OfferProvisioner provis; + private OfferReviewer review; + private OfferUpdater update; + + + public Core(){ + this.ident = new OfferIdentifier(); + this.provis = new OfferProvisioner(); + this.review = new OfferReviewer(); + this.update = new OfferUpdater(); + + } + + + public void runCore(){ + List identifiedOffers = ident.runIdentifier(); + provis.runProvisioner(identifiedOffers); + List updatingOffers = review.runReviewer(); + update.runUpdater(updatingOffers); + + + + } + + +} diff --git a/src/main/java/de/rwu/easydrop/core/OfferIdentifier.java b/src/main/java/de/rwu/easydrop/core/OfferIdentifier.java new file mode 100644 index 0000000..1d20353 --- /dev/null +++ b/src/main/java/de/rwu/easydrop/core/OfferIdentifier.java @@ -0,0 +1,31 @@ +package de.rwu.easydrop.core; + +import de.rwu.easydrop.model.Offer; +import java.util.List; +import java.util.ArrayList; + + + +public class OfferIdentifier { + + + + + public OfferIdentifier() { + + } + + public List runIdentifier() { + /* muss die Kataloge durchforsten nach vergleichbaren Produkten auf mehreren Händlerwebseiten (APIs) + * muss Preisermittler als Abhängigkeit für jeden Katalog aufrufen + * erhält dadurch Liste von Produkten, die auf verschiedenen Plattformen eingestellt werden können, gibt diese Liste zurück + * muss Datenbank nach Produktangeboten durchforsten, ob diese Produkte schon eingestellt wurden vom OfferProvisioner + * wenn ja, muss er die Liste um diese Angebote kürzen + * + */ + return new ArrayList(); + + } + + +} diff --git a/src/main/java/de/rwu/easydrop/core/OfferProvisioner.java b/src/main/java/de/rwu/easydrop/core/OfferProvisioner.java new file mode 100644 index 0000000..3b6f9bb --- /dev/null +++ b/src/main/java/de/rwu/easydrop/core/OfferProvisioner.java @@ -0,0 +1,24 @@ +package de.rwu.easydrop.core; + +import de.rwu.easydrop.model.Offer; + +import java.util.List; + +public class OfferProvisioner { + + public OfferProvisioner(/*OfferWriter for database? */) { + + } + + public void runProvisioner(List offersToProvision) { + /* + * Bekommt vom Identifier eine Liste mit Angeboten, die er einstellen soll auf Zielplattformen + * Stellt Angebote bei der Zielplattform ein + * Schreibt eingestellte Angebote in die Datenbank + */ + + + + } + +} diff --git a/src/main/java/de/rwu/easydrop/core/OfferReviewer.java b/src/main/java/de/rwu/easydrop/core/OfferReviewer.java new file mode 100644 index 0000000..f410f41 --- /dev/null +++ b/src/main/java/de/rwu/easydrop/core/OfferReviewer.java @@ -0,0 +1,23 @@ +package de.rwu.easydrop.core; + +import de.rwu.easydrop.model.Offer; +import java.util.List; +import java.util.ArrayList; + +public class OfferReviewer { + + public OfferReviewer(/*OfferReader/retriever for database? */){ + + } + + public List runReviewer() { + /* + * Liest eingestellte Angebote in der Datenbank + * Prüft Zielplattformen der SourceProducts, ob diese noch verfügbar sind (Issue#12) bzw. ob sie sich im Preis geändert haben + * Gibt Liste zurück von Offers, die geändert werden müssen, wird übergeben an OfferUpdater mit availability true oder false + */ + return new ArrayList(); + + } + +} diff --git a/src/main/java/de/rwu/easydrop/core/OfferUpdater.java b/src/main/java/de/rwu/easydrop/core/OfferUpdater.java new file mode 100644 index 0000000..33091cb --- /dev/null +++ b/src/main/java/de/rwu/easydrop/core/OfferUpdater.java @@ -0,0 +1,21 @@ +package de.rwu.easydrop.core; + +import java.util.List; +import de.rwu.easydrop.model.Offer; + +public class OfferUpdater { + + public OfferUpdater() { + + } + + public void runUpdater(List offersToUpdate) { + /* + * Bekommt vom OfferReviewer eine Liste mit zu ändernden Offers übergeben. + * Bei availability=false löscht der Updater das Angebot aus der Datenbank und von der Zielplattform. + * Der Updater ändert die geänderten Parameter in der Liste in der Datenbank und in der Zielplattform ab. + * Er ändert das upDate in der Datenbank nach der Änderung. + */ + + } +} diff --git a/src/main/java/de/rwu/easydrop/model/Offer.java b/src/main/java/de/rwu/easydrop/model/Offer.java new file mode 100644 index 0000000..f1772d6 --- /dev/null +++ b/src/main/java/de/rwu/easydrop/model/Offer.java @@ -0,0 +1,52 @@ +package de.rwu.easydrop.model; + +import java.util.Date; + + +import lombok.Data; + +/** + * An Offer. + * + * @since 0.3.0 + */ + +@Data +public class Offer { + /* + * The product that our software buys + */ + Product sourceProduct; + + /* + * The product that our software sells + */ + Product saleProduct; + + /* + * Boolean to check if sourceProduct is still available on source website + */ + boolean availability; + + /* + * Date of the creation of the offer + * NOTE: Use Timestamp? https://docs.oracle.com/javase/8/docs/api/java/sql/Timestamp.html + */ + Date creationDate; + + /* + * Date of last update of the offer on the destination website (API) + */ + Date upDate; + + /* + * Date of last check if offer is still valid + */ + Date checkDate; + + + + + + +}