From 0996ee9afb296335e61a6efa235be175827eaf88 Mon Sep 17 00:00:00 2001
From: Nicolas Fley <nicolas.fley@student.ecp.fr>
Date: Tue, 4 Apr 2017 21:44:38 +0200
Subject: [PATCH] Corentin merging file

---
 src/Cards/BasicFidelityCard.java              |  15 ++
 src/Cards/FidelityCard.java                   |  29 ++++
 src/Cards/LotteryFidelityCard.java            |  21 +++
 src/Cards/PointFidelityCard.java              |  19 +++
 .../foodora/code/core => Core}/MyFoodora.java |   3 +-
 src/Others/Adress.java                        |  44 ++++++
 src/Others/Date.java                          |  43 ++++++
 src/Others/Historique.java                    |  33 +++++
 src/Others/IDCard.java                        |  22 +++
 src/Trash/UserFactory.java                    |  48 +++++++
 src/User/Customer.java                        |  74 ++++++++++
 src/User/FactoryUserFactory.java              |  21 +++
 src/User/HumanUser.java                       |  16 +++
 src/User/HumanUserFactory.java                |  17 +++
 src/User/Manager.java                         |  85 ++++++++++++
 src/User/MoralUser.java                       |  13 ++
 src/User/MoralUserFactory.java                |  14 ++
 src/User/Restaurant.java                      |  24 ++++
 src/User/User.java                            | 129 ++++++++++++++++++
 src/User/UserFactory.java                     |  23 ++++
 20 files changed, 692 insertions(+), 1 deletion(-)
 create mode 100644 src/Cards/BasicFidelityCard.java
 create mode 100644 src/Cards/FidelityCard.java
 create mode 100644 src/Cards/LotteryFidelityCard.java
 create mode 100644 src/Cards/PointFidelityCard.java
 rename src/{my/foodora/code/core => Core}/MyFoodora.java (98%)
 create mode 100644 src/Others/Adress.java
 create mode 100644 src/Others/Date.java
 create mode 100644 src/Others/Historique.java
 create mode 100644 src/Others/IDCard.java
 create mode 100644 src/Trash/UserFactory.java
 create mode 100644 src/User/Customer.java
 create mode 100644 src/User/FactoryUserFactory.java
 create mode 100644 src/User/HumanUser.java
 create mode 100644 src/User/HumanUserFactory.java
 create mode 100644 src/User/Manager.java
 create mode 100644 src/User/MoralUser.java
 create mode 100644 src/User/MoralUserFactory.java
 create mode 100644 src/User/Restaurant.java
 create mode 100644 src/User/User.java
 create mode 100644 src/User/UserFactory.java

diff --git a/src/Cards/BasicFidelityCard.java b/src/Cards/BasicFidelityCard.java
new file mode 100644
index 0000000..7ab7bb9
--- /dev/null
+++ b/src/Cards/BasicFidelityCard.java
@@ -0,0 +1,15 @@
+package Cards;
+
+public class BasicFidelityCard extends FidelityCard {
+
+	public BasicFidelityCard(long id) {
+		super(id);
+		// TODO Auto-generated constructor stub
+	}
+
+	@Override
+	public String returnType() {
+		return "Basic";
+	}
+
+}
diff --git a/src/Cards/FidelityCard.java b/src/Cards/FidelityCard.java
new file mode 100644
index 0000000..4a8fee5
--- /dev/null
+++ b/src/Cards/FidelityCard.java
@@ -0,0 +1,29 @@
+package Cards;
+
+public abstract class FidelityCard {
+	
+	private long id;
+
+	public FidelityCard (long id){
+		this.id = id;
+	}
+	
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	@Override
+	public String toString() {
+		return "FidelityCard [id=" + id + "]";
+	}
+	
+	public abstract String returnType();
+
+	
+
+}
diff --git a/src/Cards/LotteryFidelityCard.java b/src/Cards/LotteryFidelityCard.java
new file mode 100644
index 0000000..dfd1594
--- /dev/null
+++ b/src/Cards/LotteryFidelityCard.java
@@ -0,0 +1,21 @@
+package Cards;
+
+public class LotteryFidelityCard extends FidelityCard {
+	
+	private double percentage;
+	
+	
+	public LotteryFidelityCard(long id,double percentage) {
+		super(id);
+		this.percentage = percentage;
+		
+	}
+
+
+	@Override
+	public String returnType() {
+		// TODO Auto-generated method stub
+		return "Lottery";
+	}
+
+}
diff --git a/src/Cards/PointFidelityCard.java b/src/Cards/PointFidelityCard.java
new file mode 100644
index 0000000..d455631
--- /dev/null
+++ b/src/Cards/PointFidelityCard.java
@@ -0,0 +1,19 @@
+package Cards;
+
+public class PointFidelityCard extends FidelityCard {
+	
+	
+	private long nbOfPoint;
+	
+	public PointFidelityCard(long id,long nbOfPoint) {
+		super(id);
+		this.nbOfPoint =nbOfPoint;
+	}
+
+	@Override
+	public String returnType() {
+		// TODO Auto-generated method stub
+		return "Point";
+	}
+
+}
diff --git a/src/my/foodora/code/core/MyFoodora.java b/src/Core/MyFoodora.java
similarity index 98%
rename from src/my/foodora/code/core/MyFoodora.java
rename to src/Core/MyFoodora.java
index 9c10bbc..f56012b 100644
--- a/src/my/foodora/code/core/MyFoodora.java
+++ b/src/Core/MyFoodora.java
@@ -1,7 +1,8 @@
-package my.foodora.code.core;
+package Core;
 
 import java.util.ArrayList;
 
+/* to be deleted */
 import provisoire.entities.ContextDeliveryPolicy;
 import provisoire.entities.ContextTargetProfit;
 import provisoire.entities.Courier;
diff --git a/src/Others/Adress.java b/src/Others/Adress.java
new file mode 100644
index 0000000..e91df73
--- /dev/null
+++ b/src/Others/Adress.java
@@ -0,0 +1,44 @@
+package Others;
+
+public class Adress {
+	
+	private double x;
+	private double y;
+	
+	
+	public Adress(double x, double y) {
+		super();
+		this.x = x;
+		this.y = y;
+	}
+
+
+	public double getX() {
+		return x;
+	}
+
+
+	public void setX(double x) {
+		this.x = x;
+	}
+
+
+	public double getY() {
+		return y;
+	}
+
+
+	public void setY(double y) {
+		this.y = y;
+	}
+
+
+	@Override
+	public String toString() {
+		return "Adress = [" + x + "," + y + "]";
+	}
+	
+	
+	
+
+}
diff --git a/src/Others/Date.java b/src/Others/Date.java
new file mode 100644
index 0000000..ee90a9c
--- /dev/null
+++ b/src/Others/Date.java
@@ -0,0 +1,43 @@
+package Others;
+
+public class Date {
+	
+	private String year,month,day;
+
+	@Override
+	public String toString() {
+		return "Date dd/mm/yyyy : " + day + "-" + month + "-" + year ;
+	}
+
+	public String getYear() {
+		return year;
+	}
+
+	public void setYear(String year) {
+		this.year = year;
+	}
+
+	public String getMonth() {
+		return month;
+	}
+
+	public void setMonth(String month) {
+		this.month = month;
+	}
+
+	public String getDay() {
+		return day;
+	}
+
+	public void setDay(String day) {
+		this.day = day;
+	}
+
+	public Date(String year, String month, String day) {
+		super();
+		this.year = year;
+		this.month = month;
+		this.day = day;
+	}
+
+}
diff --git a/src/Others/Historique.java b/src/Others/Historique.java
new file mode 100644
index 0000000..3ff35b5
--- /dev/null
+++ b/src/Others/Historique.java
@@ -0,0 +1,33 @@
+package Others;
+
+import java.util.ArrayList;
+
+import provisoire.Order;
+
+public class Historique {
+	
+	ArrayList<Order> listOfOrder;
+
+	public Historique(ArrayList<Order> listOfOrder) {
+		super();
+		this.listOfOrder = listOfOrder;
+	}
+
+	public ArrayList<Order> getListOfOrder() {
+		return listOfOrder;
+	}
+
+	public void setListOfOrder(ArrayList<Order> listOfOrder) {
+		this.listOfOrder = listOfOrder;
+	}
+
+	@Override
+	public String toString() {
+		return "Historique [listOfOrder=" + listOfOrder + "]";
+	} 
+	
+	
+	}
+	
+	
+
diff --git a/src/Others/IDCard.java b/src/Others/IDCard.java
new file mode 100644
index 0000000..fde40ba
--- /dev/null
+++ b/src/Others/IDCard.java
@@ -0,0 +1,22 @@
+package Others;
+
+public class IDCard {
+	
+
+		/** Constructeur priv� */
+		private IDCard()
+		{}
+	 
+		/** Instance unique non pr�initialis�e */
+		private static IDCard INSTANCE = null;
+	 
+		/** Point d'acc�s pour l'instance unique du singleton */
+		public static IDCard getInstance()
+		{			
+			if (INSTANCE == null)
+			{ 	INSTANCE = new IDCard();	
+			}
+			return INSTANCE;
+		}
+	}
+	
diff --git a/src/Trash/UserFactory.java b/src/Trash/UserFactory.java
new file mode 100644
index 0000000..4d1600a
--- /dev/null
+++ b/src/Trash/UserFactory.java
@@ -0,0 +1,48 @@
+package Trash;
+
+
+import java.io.*;
+import java.lang.*;
+import java.util.*;
+
+import javax.management.RuntimeErrorException;
+
+import Others.Adress;
+
+public class UserFactory {
+	
+	private ArrayList<User> listOfUser;
+
+	public UserFactory(ArrayList<User> listOfUser) {
+		super();
+		this.listOfUser = listOfUser;
+	}
+
+	public ArrayList<User> getListOfUser() {
+		return listOfUser;
+	}
+
+	public void setListOfUser(ArrayList<User> listOfUser) {
+		this.listOfUser = listOfUser;
+	}
+
+	@Override
+	public String toString() {
+		return "UserFactory [listOfUser=" + listOfUser + "]";
+	}
+	
+	public void createRestaurant(long id, long phoneNumber, String name, String username, String mail, String password, Adress adress,
+			boolean activated, String typeOfHumanUser){
+		if(typeOfUser == "Restaurant"){
+		try{
+		User newUser = new Restaurant(id,phoneNumber,name,username,mail,password,adress,activated);
+		listOfUser.add(newUser);
+		}
+		catch (Exception e) {
+			
+			} // faire le try/catch � l'ajout d'un User pour �viter les doublons.
+		}
+		}
+	}
+
+
diff --git a/src/User/Customer.java b/src/User/Customer.java
new file mode 100644
index 0000000..ea66fbd
--- /dev/null
+++ b/src/User/Customer.java
@@ -0,0 +1,74 @@
+package User;
+
+import Cards.BasicFidelityCard;
+import Cards.FidelityCard;
+import Others.Adress;
+import Others.Historique;
+import Others.IDCard;
+import provisoire.Order;
+
+public class Customer extends HumanUser {
+
+	
+	boolean spamAgree;
+	Historique historique;
+	FidelityCard card;
+	
+	public Customer(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated, String birthdayDate, String surname,boolean spamAgree,Historique historique,FidelityCard card ) {
+		super(id, phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
+		this.spamAgree = spamAgree;
+		this.historique = historique;
+		this.card = card;
+	}
+
+	public boolean isSpamAgree() {
+		return spamAgree;
+	}
+
+	public void setSpamAgree(boolean spamAgree) {
+		this.spamAgree = spamAgree;
+	}
+
+	public Historique getHistorique() {
+		return historique;
+	}
+
+	public void setHistorique(Historique historique) {
+		this.historique = historique;
+	}
+
+	public FidelityCard getCard() {
+		return card;
+	}
+
+	public void setCard(FidelityCard card) {
+		this.card = card;
+	}
+
+	@Override
+	public String toString() {
+		return "Customer [spamAgree=" + spamAgree + ", historique=" + historique + ", card=" + card + "]";
+	}
+	
+	public void placeOrder(Order order, Restaurant restaurant){
+		
+	}
+	
+	public void registerFidelityPlan(String newTypeOfFidelityCard){
+		if(newTypeOfFidelityCard == this.card.returnType()){
+			System.out.println("You have already this card");
+		if ((newTypeOfFidelityCard != "Basic") &(newTypeOfFidelityCard != "Lottery")&(newTypeOfFidelityCard != "Point")){
+			System.out.println("You have to choose between Point, Lottery or Basic card");
+		}
+		else {
+			if (newTypeOfFidelityCard == "Basic"){
+				this.card = new BasicFidelityCard(new IDCard().getId);
+			}
+		}
+		}
+	}
+	
+	
+
+}
diff --git a/src/User/FactoryUserFactory.java b/src/User/FactoryUserFactory.java
new file mode 100644
index 0000000..1600004
--- /dev/null
+++ b/src/User/FactoryUserFactory.java
@@ -0,0 +1,21 @@
+package User;
+
+public class FactoryUserFactory {
+	
+	public UserFactory createUserFactory(String typeOfUserFactory){
+		if(typeOfUserFactory == "Human"){
+			HumanUserFactory humanUF = new HumanUserFactory();
+			return humanUF ;
+		}
+		else if (typeOfUserFactory == "Moral"){
+			MoralUserFactory moralUF = new MoralUserFactory();
+			return moralUF ;
+		}
+		else {
+			System.out.println("Please choose your type of User to create between Human and Moral");
+			return null;
+		}
+		
+	}
+
+}
diff --git a/src/User/HumanUser.java b/src/User/HumanUser.java
new file mode 100644
index 0000000..76182c0
--- /dev/null
+++ b/src/User/HumanUser.java
@@ -0,0 +1,16 @@
+package User;
+
+import Others.Adress;
+
+public class HumanUser extends User {
+	
+	String birthdayDate, surname;
+
+	public HumanUser(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated , String birthdayDate, String surname) {
+		super(id, phoneNumber, name, username, mail, password, adress, activated);
+		this.birthdayDate = birthdayDate;
+		this.surname = surname;
+	}
+
+}
diff --git a/src/User/HumanUserFactory.java b/src/User/HumanUserFactory.java
new file mode 100644
index 0000000..348b050
--- /dev/null
+++ b/src/User/HumanUserFactory.java
@@ -0,0 +1,17 @@
+package User;
+
+import Others.Adress;
+
+public class HumanUserFactory extends UserFactory {
+	
+	@Override
+	public void createUser(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated) {
+		try{
+		User newUser = new Restaurant(id,phoneNumber,name,username,mail,password,adress,activated);
+		}
+		catch (Exception e) {} // faire le try/catch � l'ajout d'un User pour �viter les doublons.
+		
+	}
+
+}
diff --git a/src/User/Manager.java b/src/User/Manager.java
new file mode 100644
index 0000000..96ee82a
--- /dev/null
+++ b/src/User/Manager.java
@@ -0,0 +1,85 @@
+package User;
+
+import java.util.ArrayList;
+
+import Others.Adress;
+import provisoire.MyFoodora;
+
+public class Manager extends HumanUser {
+
+	public Manager(long id, long phoneNumber, String name, String username, String mail, String password, Adress adress,
+			boolean activated, String birthdayDate, String surname) {
+		super(id, phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
+
+	}
+	
+	public void addUser(User u,MyFoodora foodora, String typeOfUser){
+		
+	}
+	
+	public void removeUser(User u, MyFoodora foodora){
+		
+	}
+	
+	public void changeServiceFee(double newServiceFee, MyFoodora foodora){
+		
+	}
+	
+	public void changeMarkupPercentage (double newMarkupPercentage, MyFoodora foodora){
+		
+	}
+	
+	public void changeDeliveryCost(double newDeliveryCost, MyFoodora foodora){
+		
+	}
+	
+	public double getTotalIncome(){
+		return 1;
+	}
+	
+	public double getProfit(){
+		return 1;
+	}
+	
+	public double getAverageIncome(){
+		return 1;
+	}
+	
+	public double getAverageProfit(){
+		return 1;
+	}
+	
+	public double getAverageIncomePerCustomer(){
+		return 1;
+	}
+	
+	public void setTargetProfitPolicy(){
+		
+	}
+	
+	public void setDeliveryPolicy(){
+			
+	}
+	
+	public String getMostSellingRestaurant(){
+		return null;
+	}
+	
+	public String getLeastSellingRestaurant(){
+		return null ;
+	}
+	
+	public void activateUser(){
+		
+	}
+	
+	public void desactivateUser(){
+		
+	}
+	
+	
+	
+	
+	
+	
+}
diff --git a/src/User/MoralUser.java b/src/User/MoralUser.java
new file mode 100644
index 0000000..7ce03c7
--- /dev/null
+++ b/src/User/MoralUser.java
@@ -0,0 +1,13 @@
+package User;
+
+import Others.Adress;
+
+public class MoralUser extends User {
+
+	public MoralUser(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated) {
+		super(id, phoneNumber, name, username, mail, password, adress, activated);
+		// TODO Auto-generated constructor stub
+	}
+
+}
diff --git a/src/User/MoralUserFactory.java b/src/User/MoralUserFactory.java
new file mode 100644
index 0000000..f73a8b6
--- /dev/null
+++ b/src/User/MoralUserFactory.java
@@ -0,0 +1,14 @@
+package User;
+
+import Others.Adress;
+
+public class MoralUserFactory extends UserFactory {
+
+	@Override
+	public void createUser(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/src/User/Restaurant.java b/src/User/Restaurant.java
new file mode 100644
index 0000000..fe7cdc5
--- /dev/null
+++ b/src/User/Restaurant.java
@@ -0,0 +1,24 @@
+package User;
+
+import Others.Adress;
+
+public class Restaurant extends MoralUser {
+	
+	//ArrayList<Meal> listOfMeal;
+	
+	public Restaurant(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated) {
+		super(id, phoneNumber, name, username, mail, password, adress, activated);
+		//this.listOfMeal = listOfMeal
+	}
+	
+	
+	public void addMeal(){
+		
+	}
+	
+	public void removeItem(){
+		
+	}
+
+}
diff --git a/src/User/User.java b/src/User/User.java
new file mode 100644
index 0000000..1fa1fb6
--- /dev/null
+++ b/src/User/User.java
@@ -0,0 +1,129 @@
+package User;
+
+import Others.Adress;
+import java.io.*;
+import java.lang.*;
+import java.util.*;
+
+public abstract class User {
+
+	private long id,phoneNumber;
+	private String name,username,mail,password;
+	private Adress adress;
+	private boolean activated;
+	
+	
+	public User(long id, long phoneNumber, String name, String username, String mail, String password, Adress adress,
+			boolean activated) {
+		super();
+		this.id = id;
+		this.phoneNumber = phoneNumber;
+		this.name = name;
+		this.username = username;
+		this.mail = mail;
+		this.password = password;
+		this.adress = adress;
+		this.activated = activated;
+	}
+
+
+	public long getId() {
+		return id;
+	}
+
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+
+	public long getPhoneNumber() {
+		return phoneNumber;
+	}
+
+
+	public void setPhoneNumber(long phoneNumber) {
+		this.phoneNumber = phoneNumber;
+	}
+
+
+	public String getName() {
+		return name;
+	}
+
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+
+	public String getUsername() {
+		return username;
+	}
+
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+
+	public String getMail() {
+		return mail;
+	}
+
+
+	public void setMail(String mail) {
+		this.mail = mail;
+	}
+
+
+	public String getPassword() {
+		return password;
+	}
+
+
+	public void setpassword(String password) {
+		this.password = password;
+	}
+
+
+	public Adress getAdress() {
+		return adress;
+	}
+
+
+	public void setAdress(Adress adress) {
+		this.adress = adress;
+	}
+
+
+	public boolean isActivated() {
+		return activated;
+	}
+
+
+	public void setActivated(boolean activated) {
+		this.activated = activated;
+	}
+
+
+	@Override
+	public String toString() {
+		return "User [id=" + id + ", phoneNumber=" + phoneNumber + ", name=" + name + ", username=" + username
+				+ ", mail=" + mail + ", password=" + password + ", adress=" + adress + ", activated=" + activated + "]";
+	}
+	
+	public void register(){
+		System.out.println("Please writte your username");
+		Scanner sc = new Scanner(System.in);
+		String usernametest = sc.nextLine();
+		System.out.println("Please enter your password");
+		String passwordtest = sc.nextLine();
+		// faire un if sur la condition d'appartenance � MyFoodora core + try/catch
+		
+		
+	}
+	
+
+	
+}
diff --git a/src/User/UserFactory.java b/src/User/UserFactory.java
new file mode 100644
index 0000000..2e620b3
--- /dev/null
+++ b/src/User/UserFactory.java
@@ -0,0 +1,23 @@
+package User;
+
+
+import java.io.*;
+import java.lang.*;
+import java.util.*;
+
+import javax.management.RuntimeErrorException;
+
+import Others.Adress;
+
+public abstract class UserFactory {
+	
+	
+	public abstract void createUser(long id, long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated);
+
+
+	
+
+	}
+
+
-- 
GitLab