From a0eed3ce51ee17f9880d4e7bd5be2b8abc6a44fa Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Fri, 27 Jan 2023 15:14:36 +0100 Subject: [PATCH 01/10] Food, User --- .../AccountMgr.java | 13 +++ .../essensbestellungsverwaltung/Address.java | 37 ++++++++ .../essensbestellungsverwaltung/Allergy.java | 25 +++++ .../ConsoleLib.java | 47 ++++++---- .../ConsoleMain.java | 46 +++++----- .../essensbestellungsverwaltung/Database.java | 91 ++++++++++--------- .../bib/essensbestellungsverwaltung/Food.java | 54 +++++++++++ .../essensbestellungsverwaltung/FoodMgr.java | 79 ++++++++++++---- .../essensbestellungsverwaltung/FoodType.java | 19 ++++ .../bib/essensbestellungsverwaltung/User.java | 55 +++++++++++ 10 files changed, 366 insertions(+), 100 deletions(-) create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/Address.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/Food.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/User.java diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java b/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java index a6d821f..3d5a923 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java @@ -84,6 +84,19 @@ public class AccountMgr { return id; } + protected static User getUserById(long id){ + List entry = Database.getEntryById("user",id); + String[] parts = entry.get(0).split(":"); + Address address = getAddressById(id); + return new User(id,parts[1],parts[2],parts[4],parts[5],address,isWorker(String.valueOf(id)),isParent(String.valueOf(id))); + } + + protected static Address getAddressById(long id){ + List entry = Database.getEntryById("address",id); + String[] parts = entry.get(0).split(":"); + return new Address(Long.parseLong(parts[0]),parts[1],parts[2],parts[3],parts[4]); + } + /** * creates entries in the database to match parent to child * @param parentId id of parent diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Address.java b/src/main/java/com/bib/essensbestellungsverwaltung/Address.java new file mode 100644 index 0000000..106ce77 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Address.java @@ -0,0 +1,37 @@ +package com.bib.essensbestellungsverwaltung; + +public class Address { + private long id; + private String street; + private String number; + private String plz; + private String city; + + public long getId() { + return id; + } + + public String getStreet() { + return street; + } + + public String getNumber() { + return number; + } + + public String getPlz() { + return plz; + } + + public String getCity() { + return city; + } + + public Address(long id, String street, String number, String plz, String city) { + this.id = id; + this.street = street; + this.number = number; + this.plz = plz; + this.city = city; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java b/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java new file mode 100644 index 0000000..46e4e14 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java @@ -0,0 +1,25 @@ +package com.bib.essensbestellungsverwaltung; + +public class Allergy { + private final long id; + private final String name; + private final String handle; + + public Allergy(long id, String name, String handle) { + this.id = id; + this.name = name; + this.handle = handle; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getHandle() { + return handle; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java index fa9775f..f4f5627 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java @@ -119,7 +119,13 @@ public class ConsoleLib { System.out.print("Allergienummer: "); String allergies = sc.nextLine(); String[] allergyData = allergies.split(","); - if(FoodMgr.createFood(foodData,allergyData) < 1){ + FoodType foodType = FoodMgr.getFoodTypeById(Long.parseLong(foodData[3])); + List allergyList = new ArrayList<>(); + for (String data : allergyData) { + allergyList.add(FoodMgr.getAllergyById(Long.parseLong(data))); + } + Food food = new Food(foodData[0],foodData[1],true,foodType,allergyList); + if(FoodMgr.createFood(food) < 1){ System.out.println("Fehler"); } } @@ -131,6 +137,9 @@ public class ConsoleLib { while (id == -1){ System.out.print("Email: "); String email = sc.nextLine(); + if(email.isEmpty()){ + return -1; + } System.out.print("Passwort: "); String pw = sc.nextLine(); id = AccountMgr.login(email,pw); @@ -183,16 +192,25 @@ public class ConsoleLib { Scanner sc = new Scanner(System.in); System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: "); food_planData[0] = sc.nextLine(); - printConsole(FoodMgr.getVeganFood(false)); + List veganMain = FoodMgr.getVeganFood(false); + for (Food food : veganMain) { + System.out.println(food.getId() + " : " + food.getName()); + } System.out.print("Veganes Hauptgericht Nr: "); food_planData[1] = sc.nextLine(); - printConsole(FoodMgr.getFood(false)); + List foodMain = FoodMgr.getFood(false); System.out.print("Zweites Hauptgericht Nr: "); food_planData[2] = sc.nextLine(); - printConsole(FoodMgr.getVeganFood(true)); + List veganDessert = FoodMgr.getVeganFood(true); + for (Food food : veganDessert) { + System.out.println(food.getId() + " : " + food.getName()); + } System.out.print("Veganes Dessert Nr: "); food_planData[3] = sc.nextLine(); - printConsole(FoodMgr.getFood(true)); + List foodDessert = FoodMgr.getFood(true); + for (Food food : foodDessert) { + System.out.println(food.getId() + " : " + food.getName()); + } System.out.print("Zweites Dessert Nr: "); food_planData[4] = sc.nextLine(); long id = FoodMgr.createFood_plan(food_planData); @@ -207,7 +225,8 @@ public class ConsoleLib { System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: "); String date = sc.nextLine(); List plan = FoodMgr.getFood_plan(date); - List food = new ArrayList<>(); + List foodList = new ArrayList<>(); + Food food; StringBuilder sb; for (String day : plan) { sb = new StringBuilder(); @@ -216,23 +235,19 @@ public class ConsoleLib { sb.append(parts[1]); sb.append(" Veganesgericht: "); food = FoodMgr.getFoodById(Long.parseLong(parts[2])); - String[] foodParts = food.get(0).split(":"); - sb.append(foodParts[1]); + sb.append(food.getName()); sb.append(" Zweites Hauptgericht: "); food = FoodMgr.getFoodById(Long.parseLong(parts[3])); - foodParts = food.get(0).split(":"); - sb.append(foodParts[1]); + sb.append(food.getName()); sb.append(" Veganesdessert: "); food = FoodMgr.getFoodById(Long.parseLong(parts[4])); - foodParts = food.get(0).split(":"); - sb.append(foodParts[1]); + sb.append(food.getName()); sb.append(" Zweites Dessert: "); food = FoodMgr.getFoodById(Long.parseLong(parts[5])); - foodParts = food.get(0).split(":"); - sb.append(foodParts[1]); - food.add(sb.toString()); + sb.append(food.getName()); + foodList.add(sb.toString()); } - printConsole(food); + printConsole(foodList); } public static void createFood_selectionPrompt(){ diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java index 6d823e5..ec5ebac 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java @@ -32,21 +32,23 @@ public class ConsoleMain { } public static void defaultMenu(){ + System.out.println("0: Programm beenden"); System.out.println("1: Login"); System.out.println("2: Essensplan anzeigen"); - System.out.println("3: Programm beenden"); + System.out.println("3: Registrieren"); System.out.print("Auswahl: "); Scanner sc = new Scanner(System.in); String selection = sc.nextLine(); switch (selection) { + case "0" -> currentUserId = -2; case "1" -> { currentUserId = ConsoleLib.loginPrompt(); isWorker = AccountMgr.isWorker(String.valueOf(currentUserId)); isParent = AccountMgr.isParent(String.valueOf(currentUserId)); } case "2" -> ConsoleLib.showFood_planPrompt(); - case "3" -> currentUserId = -2; + case "3" -> ConsoleLib.createParentPrompt(); } } @@ -57,14 +59,14 @@ public class ConsoleMain { System.out.println("3: Ein neues Kind anlegen"); System.out.println("4: Kind einem Elternteil zuordnen"); System.out.println("5: Ein neues Essen anlegen"); - System.out.println("6: Table"); - System.out.println("7: Einen Essensplan erstellen"); - System.out.println("8: Essensplan anzeigen"); - System.out.println("9: Löschen"); - System.out.println("10: Essen auswählen"); - System.out.println("11: Bestellungen des Tages sammeln"); - System.out.println("12: Monatsabrechnung"); - System.out.println("13: Preis ändern"); + System.out.println("6: Einen Essensplan erstellen"); + System.out.println("7: Essensplan anzeigen"); + System.out.println("8: Essen auswählen"); + System.out.println("9: Bestellungen des Tages sammeln"); + System.out.println("10: Monatsabrechnung"); + System.out.println("11: Preis ändern"); + System.out.println("x1: Table"); + System.out.println("x2: Löschen"); System.out.print("Auswahl: "); @@ -81,14 +83,14 @@ public class ConsoleMain { case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUserId)); case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUserId)); case "5" -> ConsoleLib.createFoodPrompt(); - case "6" -> ConsoleLib.tablePrompt(); - case "7" -> ConsoleLib.createFood_planPrompt(); - case "8" -> ConsoleLib.showFood_planPrompt(); - case "9" -> ConsoleLib.deletePrompt(); - case "10" -> ConsoleLib.createFood_selectionPrompt(); - case "11" -> ConsoleLib.dayOrderPrompt(); - case "12" -> ConsoleLib.invoicePrompt(); - case "13" -> ConsoleLib.changePricePrompt(); + case "6" -> ConsoleLib.createFood_planPrompt(); + case "7" -> ConsoleLib.showFood_planPrompt(); + case "8" -> ConsoleLib.createFood_selectionPrompt(); + case "9" -> ConsoleLib.dayOrderPrompt(); + case "10" -> ConsoleLib.invoicePrompt(); + case "11" -> ConsoleLib.changePricePrompt(); + case "x1" -> ConsoleLib.tablePrompt(); + case "x2" -> ConsoleLib.deletePrompt(); } } @@ -96,7 +98,8 @@ public class ConsoleMain { public static void parentMenu(){ System.out.println("0: Ausloggen"); System.out.println("3: Ein neues Kind anlegen"); - System.out.println("4: Kind einem Elternteil zuordnen"); + System.out.println("7: Essensplan anzeigen"); + System.out.println("8: Essen auswählen"); System.out.print("Auswahl: "); @@ -109,10 +112,9 @@ public class ConsoleMain { isParent = false; } case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUserId)); - case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUserId)); case "6" -> ConsoleLib.tablePrompt(); - default -> { - } + case "7" -> ConsoleLib.showFood_planPrompt(); + case "8" -> ConsoleLib.createFood_selectionPrompt(); } } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Database.java b/src/main/java/com/bib/essensbestellungsverwaltung/Database.java index a09068a..bb6f167 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/Database.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Database.java @@ -62,7 +62,8 @@ public class Database { sql[2] = """ CREATE TABLE IF NOT EXISTS allergy ( id integer PRIMARY KEY, - name text UNIQUE + name text UNIQUE, + handle text UNIQUE );"""; sql[3] = """ CREATE TABLE IF NOT EXISTS severity ( @@ -180,71 +181,71 @@ public class Database { INSERT OR IGNORE INTO food_type (id,name) VALUES ('3','Fleischhaltig');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('1','Eier');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('1','Eier','a');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('2','Soja');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('2','Soja','b');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('3','Milch');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('3','Milch','c');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('4','Erdnüsse');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('4','Erdnüsse','d');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('5','Weichtiere');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('5','Weichtiere','e');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('6','Krebstiere');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('6','Krebstiere','f');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('7','Getreide');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('7','Getreide','g');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('8','Senf');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('8','Senf','h');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('9','Sesam');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('9','Sesam','i');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('10','Schwefeldioxid und Sulfit');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('10','Schwefeldioxid und Sulfit','j');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('11','Nüsse');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('11','Nüsse','k');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('12','Sellerie');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('12','Sellerie','l');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('13','Fische');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('13','Fische','m');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('14','Lupinen');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('14','Lupinen','n');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('15','Nitrit-Pökelsalz');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('15','Nitrit-Pökelsalz','1');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('16','Phosphat');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('16','Phosphat','2');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('17','Nitrat');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('17','Nitrat','3');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('18','Antioxidationsmittel');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('18','Antioxidationsmittel','4');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('19','Farbstoff');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('19','Farbstoff','5');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('20','Geschmacksverstärker');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('20','Geschmacksverstärker','6');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('21','Süßungsmittel');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('21','Süßungsmittel','7');"""); sqls.add(""" - INSERT OR IGNORE INTO allergy (id,name) - VALUES('22','Konservierungsstoff');"""); + INSERT OR IGNORE INTO allergy (id,name,handle) + VALUES('22','Konservierungsstoff','8');"""); sqls.add(""" INSERT OR IGNORE INTO severity (id,name) VALUES('1','Harmlos');"""); diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Food.java b/src/main/java/com/bib/essensbestellungsverwaltung/Food.java new file mode 100644 index 0000000..0cd67a0 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Food.java @@ -0,0 +1,54 @@ +package com.bib.essensbestellungsverwaltung; + +import java.util.List; + +public class Food { + private long id; + private String name; + private String description; + private boolean isDessert; + private FoodType foodType; + private List allergies; + + public Food(long id, String name, String description, boolean isDessert, FoodType foodType, List allergies) { + this.id = id; + this.name = name; + this.description = description; + this.isDessert = isDessert; + this.foodType = foodType; + this.allergies = allergies; + } + + public Food(String name, String description, boolean isDessert, FoodType foodType, List allergies) { + this.id = -1; + this.name = name; + this.description = description; + this.isDessert = isDessert; + this.foodType = foodType; + this.allergies = allergies; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public boolean isDessert() { + return isDessert; + } + + public FoodType getFoodType() { + return foodType; + } + + public List getAllergies() { + return allergies; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java index 5aa44b8..bde280b 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java @@ -6,21 +6,21 @@ package com.bib.essensbestellungsverwaltung; import java.util.ArrayList; import java.util.List; + public class FoodMgr { /** * inserts a food int to the database and creates the food_restriction entries - * @param foodData name, description, isdessert, food_typeid - * @param allergyData allergyids * @return id of food or -1 */ - public static long createFood(String[] foodData, String[] allergyData){ + public static long createFood(Food food){ String[] foodH = {"name","description","isDessert","food_typeid"}; String[] food_restrictionH = {"foodid","allergyid"}; - long id = Database.insert("food",foodH,foodData); - if(allergyData.length > 0){ + String[] foodD = {food.getName(),food.getDescription(),(food.isDessert() ? "1" : "0"), String.valueOf(food.getFoodType().getId())}; + long id = Database.insert("food",foodH,foodD); + if(food.getAllergies().size() > 0){ String sId = String.valueOf(id); - for (String allergyId : allergyData) { - String[] food_restrictionD = {sId,allergyId}; + for (Allergy allergy : food.getAllergies()) { + String[] food_restrictionD = {sId, String.valueOf(allergy.getId())}; Database.insert("food_restriction",food_restrictionH, food_restrictionD); } } @@ -42,10 +42,16 @@ public class FoodMgr { * @param isDessert true for only desserts false for non desserts * @return a list of all non desserts or all desserts */ - public static List getFood(boolean isDessert){ + public static List getFood(boolean isDessert){ String[] foodH = {"isDessert"}; String[] foodD = {(isDessert ? "1" : "0")}; - return Database.select("food",foodH,foodD); + List entries = Database.select("food",foodH,foodD); + List foods = new ArrayList<>(); + for (String entry : entries) { + String[] parts = entry.split(":"); + foods.add(getFoodById(Long.parseLong(parts[0]))); + } + return foods; } /** @@ -53,10 +59,16 @@ public class FoodMgr { * @param isDessert true for only desserts false for non desserts * @return a list of all vegan non desserts or all vegan desserts */ - public static List getVeganFood(boolean isDessert){ + public static List getVeganFood(boolean isDessert){ String[] foodH = {"isDessert","food_typeid"}; String[] foodD = {(isDessert ? "1" : "0"),"1"}; - return Database.select("food",foodH,foodD); + List entries = Database.select("food",foodH,foodD); + List foods = new ArrayList<>(); + for (String entry : entries) { + String[] parts = entry.split(":"); + foods.add(getFoodById(Long.parseLong(parts[0]))); + } + return foods; } /** @@ -70,8 +82,42 @@ public class FoodMgr { return Database.select("food_plan",food_planH,food_planD); } - public static List getFoodById(long id){ - return Database.getEntryById("food",id); + public static Food getFoodById(long id){ + List entry = Database.getEntryById("food",id); + String[] parts = entry.get(0).split(":"); + String name = parts[1]; + String description = parts[2]; + boolean isDessert; + isDessert = parts[3].equals("0"); + FoodType foodType = getFoodTypeById(Long.parseLong(parts[4])); + List allergies = getAllergies(id); + return new Food(id,name,description,isDessert,foodType,allergies); + } + + public static FoodType getFoodTypeById(long id){ + List entry = Database.getEntryById("foodtype",id); + String[] typeParts = entry.get(0).split(":"); + return new FoodType(Long.parseLong(typeParts[0]),typeParts[1]); + } + + public static Allergy getAllergyById(long id){ + String[] allergyH = {"id"}; + String[] allergyD = {String.valueOf(id)}; + List allergies = Database.select("allergy",allergyH,allergyD); + String[] allergyParts = allergies.get(0).split(":"); + return new Allergy(id,allergyParts[1],allergyParts[2]); + } + + public static List getAllergies(long foodId){ + List allergies = new ArrayList<>(); + String[] restrictionsH = {"foodid"}; + String[] restrictionsD = {String.valueOf(foodId)}; + List restrictions = Database.select("food_restrictions",restrictionsH,restrictionsD); + for (String restriction : restrictions) { + String[] partsRestrictions = restriction.split(":"); + allergies.add(getAllergyById(Long.parseLong(partsRestrictions[2]))); + } + return allergies; } /** @@ -100,11 +146,10 @@ public class FoodMgr { List food_plan = getFood_plan(date); String[] food_planParts = food_plan.get(0).split(":"); for(int i = 2; i < 2+4; i++){ - List food = getFoodById(Long.parseLong(food_planParts[i])); - String[] foodParts = food.get(0).split(":"); - String foodName = foodParts[1]; + Food food = getFoodById(Long.parseLong(food_planParts[i])); + String foodName = food.getName(); String[] food_selectionH = {"food_planid","foodid"}; - String[] food_selectionD = {food_planParts[0],foodParts[0]}; + String[] food_selectionD = {food_planParts[0], String.valueOf(food.getId())}; int count = Database.count("food_selection",food_selectionH,food_selectionD); orders.add(foodName+":"+count); } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java new file mode 100644 index 0000000..3efa4c4 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java @@ -0,0 +1,19 @@ +package com.bib.essensbestellungsverwaltung; + +public class FoodType { + private long id; + private String name; + + public FoodType(long id, String name) { + this.id = id; + this.name = name; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/User.java b/src/main/java/com/bib/essensbestellungsverwaltung/User.java new file mode 100644 index 0000000..3422fc9 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/User.java @@ -0,0 +1,55 @@ +package com.bib.essensbestellungsverwaltung; + +public class User { + private long id; + private String name; + private String firstname; + private String password; + private String email; + private Address address; + private boolean isWorker; + private boolean isParent; + + public User(long id, String name, String firstname, String password, String email, Address address, boolean isWorker, boolean isParent) { + this.id = id; + this.name = name; + this.firstname = firstname; + this.password = password; + this.email = email; + this.address = address; + this.isWorker = isWorker; + this.isParent = isParent; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getFirstname() { + return firstname; + } + + public String getPassword() { + return password; + } + + public String getEmail() { + return email; + } + + public Address getAddress() { + return address; + } + + public boolean isWorker() { + return isWorker; + } + + public boolean isParent() { + return isParent; + } +} From 81bcb44d74ddf7394766d03db7dfc7153faff467 Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 04:26:30 +0100 Subject: [PATCH 02/10] most Objects done --- .../AccountMgr.java | 105 ++++++++++++------ .../essensbestellungsverwaltung/Address.java | 10 ++ .../essensbestellungsverwaltung/Allergy.java | 3 + .../AllergySeverity.java | 28 +++++ .../essensbestellungsverwaltung/Child.java | 49 ++++++++ .../ConsoleLib.java | 81 ++++++++------ .../ConsoleMain.java | 36 +++--- .../essensbestellungsverwaltung/Database.java | 10 +- .../bib/essensbestellungsverwaltung/Food.java | 8 ++ .../essensbestellungsverwaltung/FoodMgr.java | 64 +++++++---- .../essensbestellungsverwaltung/FoodPlan.java | 58 ++++++++++ .../essensbestellungsverwaltung/FoodType.java | 3 + .../essensbestellungsverwaltung/Parent.java | 24 ++++ .../bib/essensbestellungsverwaltung/User.java | 25 ++--- .../essensbestellungsverwaltung/Worker.java | 13 +++ 15 files changed, 396 insertions(+), 121 deletions(-) create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/Child.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/Parent.java create mode 100644 src/main/java/com/bib/essensbestellungsverwaltung/Worker.java diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java b/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java index 3d5a923..95b306f 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java @@ -18,12 +18,10 @@ public class AccountMgr { /** * creates a user with createUser(...) and adds its id to the 'worker' table - * @param userData String[] name, firstname, password, email - * @param addressData String[] street, number, plz, city * @return userid or -1 */ - protected static long createWorker(String[] userData, String[] addressData){ - long id = createUser(userData, addressData); + protected static long createWorker(Worker worker){ + long id = createUser(worker); String sId = String.valueOf(id); Database.insert("worker", new String[]{"userid"}, new String[]{sId}); return id; @@ -31,12 +29,10 @@ public class AccountMgr { /** * creates a user with createUser(...) and adds its id to the 'parent' table - * @param userData String[] name, firstname, password, email - * @param addressData String[] street, number, plz, city * @return userid or -1 */ - protected static long createParent(String[] userData, String[] addressData){ - long id = createUser(userData, addressData); + protected static long createParent(Parent parent){ + long id = createUser(parent); String sId = String.valueOf(id); Database.insert("parent", new String[]{"userid"}, new String[]{sId}); return id; @@ -44,42 +40,43 @@ public class AccountMgr { /** * adds a user to the database - * @param userData String[] name, firstname, password, email - * @param addressData String[] street, number, plz, city * @return userid or -1 */ - protected static long createUser(String[] userData, String[] addressData) { - String[] addressH = {"street", "number", "plz", "city"}; + protected static long createUser(User user) { String[] userH = {"name", "firstname", "addressid", "password", "email"}; - String name = userData[0]; - String firstname = userData[1]; - String pw = hashAndSalt(userData[2], getSalt()); - String email = userData[3]; + String name = user.getName(); + String firstname = user.getFirstname(); + String pw = hashAndSalt(user.getPassword(), getSalt()); + String email = user.getEmail(); + long addressId = user.getAddress().getId(); + if(addressId < 1){ + addressId = createAddress(user.getAddress()); + } + String[] userD = {name, firstname, String.valueOf(addressId), pw, email}; + return Database.insert("user", userH, userD); + } - long id = Database.insert("address", addressH, addressData); - String sId = String.valueOf(id); - String[] userD = {name, firstname, sId, pw, email}; - id = Database.insert("user", userH, userD); - return id; + protected static long createAddress(Address address){ + String[] addressH = {"street", "number", "plz", "city"}; + String[] addressD = {address.getStreet(),address.getNumber(),address.getPlz(),address.getCity()}; + return Database.insert("address",addressH,addressD); } /** * adds a child and allergies to the database - * @param childData name, firstname, addressid - * @param allergyData id of allergies order matching with severityData - * @param severityData id of severity order matching with allergyData * @return id of child or -1 */ - protected static long createChild(String[] childData,String[] allergyData, String[] severityData){ + protected static long createChild(Child child){ String[] childH = {"name","firstname","addressid"}; + String[] childD = {child.getName(), child.getFirstname(), String.valueOf(child.getAddress().getId())}; + long id = Database.insert("child", childH, childD); String[] child_allergyH = {"childid","allergyid","severityid"}; - long id = Database.insert("child", childH, childData); - if(allergyData.length > 0){ - for(int i = 0; i < allergyData.length; i++){ - String sId = String.valueOf(id); - String[] child_allergyD = {sId,allergyData[i],severityData[i]}; - Database.insert("child_allergy",child_allergyH,child_allergyD); - } + for (AllergySeverity allergy: child.getAllergies()) { + String sId = String.valueOf(id); + String sAllergyId = String.valueOf(allergy.getAllergy().getId()); + String sSeverityId = String.valueOf(allergy.getSeverityId()); + String[] child_allergyD = {sId,sAllergyId,sSeverityId}; + Database.insert("child_allergy",child_allergyH,child_allergyD); } return id; } @@ -88,7 +85,36 @@ public class AccountMgr { List entry = Database.getEntryById("user",id); String[] parts = entry.get(0).split(":"); Address address = getAddressById(id); - return new User(id,parts[1],parts[2],parts[4],parts[5],address,isWorker(String.valueOf(id)),isParent(String.valueOf(id))); + if(isWorker(String.valueOf(id))){ + return new Worker(id,parts[1],parts[2],parts[4],parts[5],address); + }else{ + String[] parent_childH = {"parentuserid"}; + String[] parent_childD = {String.valueOf(id)}; + List children = new ArrayList<>(); + List parent_childEntries = Database.select("parent_child",parent_childH,parent_childD); + for (String parent_childEntry: parent_childEntries) { + String[] parent_childParts = parent_childEntry.split(":"); + children.add(getChildById(Long.parseLong(parent_childParts[2]))); + } + return new Parent(id,parts[1],parts[2],parts[4],parts[5],address,children); + } + } + + protected static Child getChildById(long id){ + List entry = Database.getEntryById("child",id); + String[] parts = entry.get(0).split(":"); + String[] child_allergyH = {"childid"}; + String[] child_allergyD = {String.valueOf(id)}; + List entriesAllergy = Database.select("child_allergy",child_allergyH,child_allergyD); + List allergySeverities = new ArrayList<>(); + for (String entryAllergy : entriesAllergy) { + String[] allergyParts = entryAllergy.split(":"); + List severity = Database.getEntryById("severity", Long.parseLong(allergyParts[3])); + String sSeverity = severity.get(0).split(":")[1]; + long lSeverity = Long.parseLong(severity.get(0).split(":")[0]); + allergySeverities.add(new AllergySeverity(FoodMgr.getAllergyById(Long.parseLong(allergyParts[2])),lSeverity,sSeverity)); + } + return new Child(id,parts[1],parts[2],getAddressById(Long.parseLong(parts[3])),allergySeverities); } protected static Address getAddressById(long id){ @@ -162,7 +188,7 @@ public class AccountMgr { * @param pw the password to hash * @return hashed and salted password */ - protected static String hashAndSalt(String pw, String salt){ + private static String hashAndSalt(String pw, String salt){ Base64.Decoder dec = Base64.getDecoder(); byte[] bySalt = dec.decode(salt); KeySpec spec = new PBEKeySpec(pw.toCharArray(), bySalt,310001,256); @@ -218,4 +244,15 @@ public class AccountMgr { invoice.add("Total: " + (invoice.size()-2) + " X " + price + "€ = " + ((invoice.size()-2)*price) + "€"); return invoice; } + + protected static void getPriceFromDb(){ + List priceEntry = Database.getEntryById("price",1); + price = Double.parseDouble(priceEntry.get(0).split(":")[1])/100.0; + } + + protected static void setPriceInDb(){ + String[] priceH = {"id","price"}; + String[] priceD = {"1", String.valueOf(price*100)}; + Database.update("price",priceH,priceD); + } } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Address.java b/src/main/java/com/bib/essensbestellungsverwaltung/Address.java index 106ce77..641330d 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/Address.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Address.java @@ -1,4 +1,7 @@ package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ public class Address { private long id; @@ -34,4 +37,11 @@ public class Address { this.plz = plz; this.city = city; } + public Address(String street, String number, String plz, String city) { + this.id = -1; + this.street = street; + this.number = number; + this.plz = plz; + this.city = city; + } } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java b/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java index 46e4e14..77518be 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java @@ -1,4 +1,7 @@ package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ public class Allergy { private final long id; diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java b/src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java new file mode 100644 index 0000000..5ad3e9e --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java @@ -0,0 +1,28 @@ +package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ + +public class AllergySeverity { + private Allergy allergy; + private long severityId; + private String severity; + + public AllergySeverity(Allergy allergy, long severityId, String severity) { + this.allergy = allergy; + this.severityId = severityId; + this.severity = severity; + } + + public Allergy getAllergy() { + return allergy; + } + + public long getSeverityId() { + return severityId; + } + + public String getSeverity() { + return severity; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Child.java b/src/main/java/com/bib/essensbestellungsverwaltung/Child.java new file mode 100644 index 0000000..697e055 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Child.java @@ -0,0 +1,49 @@ +package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ + +import java.util.List; + +public class Child { + private long id; + private String name; + private String firstname; + private Address address; + private List allergies; + + public Child(long id, String name, String firstname, Address address, List allergies) { + this.id = id; + this.name = name; + this.firstname = firstname; + this.address = address; + this.allergies = allergies; + } + public Child(String name, String firstname, Address address, List allergies) { + this.id = -1; + this.name = name; + this.firstname = firstname; + this.address = address; + this.allergies = allergies; + } + + public String getName() { + return name; + } + + public String getFirstname() { + return firstname; + } + + public Address getAddress() { + return address; + } + + public long getId() { + return id; + } + + public List getAllergies() { + return allergies; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java index f4f5627..c8d7eaf 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java @@ -29,7 +29,9 @@ public class ConsoleLib { userData[3] = sc.nextLine(); System.out.print("Passwort: "); userData[2] = sc.nextLine(); - long id = AccountMgr.createWorker(userData,addressData); + Address address = new Address(addressData[0],addressData[1],addressData[2],addressData[3]); + Worker worker = new Worker(userData[0],userData[1],userData[2],userData[3],address); + long id = AccountMgr.createWorker(worker); if(id < 1){ System.out.println("Fehler beim erstellen"); } @@ -56,7 +58,9 @@ public class ConsoleLib { userData[3] = sc.nextLine(); System.out.print("Passwort: "); userData[2] = sc.nextLine(); - long id = AccountMgr.createParent(userData,addressData); + Address address = new Address(addressData[0],addressData[1],addressData[2],addressData[3]); + Parent parent = new Parent(userData[0],userData[1],userData[2],userData[3],address); + long id = AccountMgr.createParent(parent); if(id < 1){ System.out.println("Fehler beim erstellen"); } @@ -88,7 +92,15 @@ public class ConsoleLib { System.out.print("Schweren (1 Harmlos - 3 Kritisch[2,3,1,3]): "); String severities = sc.nextLine(); String[] severityData = severities.split(","); - long id = AccountMgr.createChild(childData,allergyData,severityData); + Address address = AccountMgr.getAddressById(Long.parseLong(childData[2])); + List allergySeverities = new ArrayList<>(); + for(int i = 0; i < allergyData.length; i++){ + List allergySeverity = Database.getEntryById("severity", Long.parseLong(severityData[i])); + String[] asParts = allergySeverity.get(0).split(":"); + allergySeverities.add(new AllergySeverity(FoodMgr.getAllergyById(Long.parseLong(allergyData[0])),Long.parseLong(asParts[0]),asParts[1])); + } + Child child = new Child(childData[0],childData[1],address,allergySeverities); + long id = AccountMgr.createChild(child); if(id < 1){ System.out.println("Fehler beim erstellen"); return; @@ -124,31 +136,34 @@ public class ConsoleLib { for (String data : allergyData) { allergyList.add(FoodMgr.getAllergyById(Long.parseLong(data))); } - Food food = new Food(foodData[0],foodData[1],true,foodType,allergyList); + boolean isDessert = !foodData[2].equals("0"); + Food food = new Food(foodData[0],foodData[1],isDessert,foodType,allergyList); if(FoodMgr.createFood(food) < 1){ System.out.println("Fehler"); } } - public static long loginPrompt(){ + public static User loginPrompt(){ System.out.println("Login"); Scanner sc = new Scanner(System.in); - long id = -1; - while (id == -1){ + User user = null; + while (user == null){ System.out.print("Email: "); String email = sc.nextLine(); if(email.isEmpty()){ - return -1; + return null; } System.out.print("Passwort: "); String pw = sc.nextLine(); - id = AccountMgr.login(email,pw); + long id = AccountMgr.login(email,pw); if(id == -1){ System.out.println("Login fehlgeschlagen"); + }else { + user = AccountMgr.getUserById(id); } } System.out.println("Login erfolgreich"); - return id; + return user; } public static void matchParentChildPrompt(String parentId){ @@ -193,12 +208,16 @@ public class ConsoleLib { System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: "); food_planData[0] = sc.nextLine(); List veganMain = FoodMgr.getVeganFood(false); + System.out.println(veganMain.size()); for (Food food : veganMain) { System.out.println(food.getId() + " : " + food.getName()); } System.out.print("Veganes Hauptgericht Nr: "); food_planData[1] = sc.nextLine(); List foodMain = FoodMgr.getFood(false); + for (Food food : foodMain) { + System.out.println(food.getId() + " : " + food.getName()); + } System.out.print("Zweites Hauptgericht Nr: "); food_planData[2] = sc.nextLine(); List veganDessert = FoodMgr.getVeganFood(true); @@ -213,7 +232,12 @@ public class ConsoleLib { } System.out.print("Zweites Dessert Nr: "); food_planData[4] = sc.nextLine(); - long id = FoodMgr.createFood_plan(food_planData); + FoodPlan foodPlan = new FoodPlan(food_planData[0], + FoodMgr.getFoodById(Long.parseLong(food_planData[1])), + FoodMgr.getFoodById(Long.parseLong(food_planData[2])), + FoodMgr.getFoodById(Long.parseLong(food_planData[3])), + FoodMgr.getFoodById(Long.parseLong(food_planData[4]))); + long id = FoodMgr.createFood_plan(foodPlan); if(id < 0){ System.out.println("Fehler"); } @@ -224,29 +248,21 @@ public class ConsoleLib { Scanner sc = new Scanner(System.in); System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: "); String date = sc.nextLine(); - List plan = FoodMgr.getFood_plan(date); + FoodPlan plan = FoodMgr.getFoodPlan(date); List foodList = new ArrayList<>(); - Food food; StringBuilder sb; - for (String day : plan) { - sb = new StringBuilder(); - String[] parts = day.split(":"); - sb.append("Tag: "); - sb.append(parts[1]); - sb.append(" Veganesgericht: "); - food = FoodMgr.getFoodById(Long.parseLong(parts[2])); - sb.append(food.getName()); - sb.append(" Zweites Hauptgericht: "); - food = FoodMgr.getFoodById(Long.parseLong(parts[3])); - sb.append(food.getName()); - sb.append(" Veganesdessert: "); - food = FoodMgr.getFoodById(Long.parseLong(parts[4])); - sb.append(food.getName()); - sb.append(" Zweites Dessert: "); - food = FoodMgr.getFoodById(Long.parseLong(parts[5])); - sb.append(food.getName()); - foodList.add(sb.toString()); - } + sb = new StringBuilder(); + sb.append("Tag: "); + sb.append(plan.getDate()); + sb.append(" Veganesgericht: "); + sb.append(plan.getFoodVegan().getName()); + sb.append(" Zweites Hauptgericht: "); + sb.append(plan.getFoodSecond().getName()); + sb.append(" Veganesdessert: "); + sb.append(plan.getDessertVegan().getName()); + sb.append(" Zweites Dessert: "); + sb.append(plan.getDessertSecond().getName()); + foodList.add(sb.toString()); printConsole(foodList); } @@ -306,5 +322,6 @@ public class ConsoleLib { double price = sc.nextDouble(); sc.nextLine(); AccountMgr.price = price; + AccountMgr.setPriceInDb(); } } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java index ec5ebac..2927351 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java @@ -6,9 +6,8 @@ package com.bib.essensbestellungsverwaltung; import java.util.Scanner; public class ConsoleMain { - static long currentUserId = -1; - static boolean isWorker = false; - static boolean isParent = false; + static User currentUser = null; + static boolean running = true; public static void main(String[] args) { boolean firstRun = Database.init(); if(firstRun){ @@ -16,15 +15,14 @@ public class ConsoleMain { Database.fillDb(); ConsoleLib.createWorkerPrompt(); } - while (true){ - if(currentUserId == -2){ - break; - }else if(currentUserId < 0){ + AccountMgr.getPriceFromDb(); + while (running){ + if(currentUser == null){ defaultMenu(); }else{ - if(isWorker){ + if(currentUser.getClass().getSimpleName().equals("Worker")){ adminMenu(); - }else if(isParent){ + }else if(currentUser.getClass().getSimpleName().equals("Parent")){ parentMenu(); } } @@ -41,11 +39,9 @@ public class ConsoleMain { Scanner sc = new Scanner(System.in); String selection = sc.nextLine(); switch (selection) { - case "0" -> currentUserId = -2; + case "0" -> running = false; case "1" -> { - currentUserId = ConsoleLib.loginPrompt(); - isWorker = AccountMgr.isWorker(String.valueOf(currentUserId)); - isParent = AccountMgr.isParent(String.valueOf(currentUserId)); + currentUser = ConsoleLib.loginPrompt(); } case "2" -> ConsoleLib.showFood_planPrompt(); case "3" -> ConsoleLib.createParentPrompt(); @@ -74,14 +70,12 @@ public class ConsoleMain { String selection = sc.nextLine(); switch (selection) { case "0" -> { - currentUserId = -1; - isWorker = false; - isParent = false; + currentUser = null; } case "1" -> ConsoleLib.createWorkerPrompt(); case "2" -> ConsoleLib.createParentPrompt(); - case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUserId)); - case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUserId)); + case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUser.getId())); + case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUser.getId())); case "5" -> ConsoleLib.createFoodPrompt(); case "6" -> ConsoleLib.createFood_planPrompt(); case "7" -> ConsoleLib.showFood_planPrompt(); @@ -107,11 +101,9 @@ public class ConsoleMain { String selection = sc.nextLine(); switch (selection) { case "0" -> { - currentUserId = -1; - isWorker = false; - isParent = false; + currentUser = null; } - case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUserId)); + case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUser.getId())); case "6" -> ConsoleLib.tablePrompt(); case "7" -> ConsoleLib.showFood_planPrompt(); case "8" -> ConsoleLib.createFood_selectionPrompt(); diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Database.java b/src/main/java/com/bib/essensbestellungsverwaltung/Database.java index bb6f167..887a822 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/Database.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Database.java @@ -45,7 +45,7 @@ public class Database { * creates the initial structure of the db */ protected static void createDb(){ - String[] sql = new String[14]; + String[] sql = new String[15]; sql[0] = """ CREATE TABLE IF NOT EXISTS address ( id integer PRIMARY KEY, @@ -157,6 +157,11 @@ public class Database { FOREIGN KEY(food_planid) REFERENCES food_plan(id), FOREIGN KEY(foodid) REFERENCES food(id) );"""; + sql[14] = """ + CREATE TABLE IF NOT EXISTS price ( + id integer PRIMARY KEY, + price integer + );"""; try(Connection conn = connect(); Statement stmt = conn.createStatement()){ for(int i = 0; i < sql.length; i++){ stmt.execute(sql[i]); @@ -255,6 +260,9 @@ public class Database { sqls.add(""" INSERT OR IGNORE INTO severity (id,name) VALUES('3','Kritisch');"""); + sqls.add(""" + INSERT OR IGNORE INTO price (id,price) + VALUES('1','500');"""); try(Connection conn = connect(); Statement stmt = conn.createStatement()){ for (String sql : sqls) { stmt.execute(sql); diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Food.java b/src/main/java/com/bib/essensbestellungsverwaltung/Food.java index 0cd67a0..f8b3816 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/Food.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Food.java @@ -1,4 +1,7 @@ package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ import java.util.List; @@ -51,4 +54,9 @@ public class Food { public List getAllergies() { return allergies; } + + @Override + public String toString() { + return getName(); + } } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java index bde280b..ac1bcc1 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java @@ -29,12 +29,16 @@ public class FoodMgr { /** * inserts a food_plan into the database - * @param food_planData date[YYYY-MM-DD], foodid[vegan], foodid, foodid[dessert,vegan], foodid[dessert] * @return id of food_plan or -1 */ - public static long createFood_plan(String[] food_planData){ + public static long createFood_plan(FoodPlan foodPlan){ String[] food_planH = {"date","food1","food2","dessert1","dessert2"}; - return Database.insert("food_plan",food_planH,food_planData); + String[] food_planD = {foodPlan.getDate(), + String.valueOf(foodPlan.getFoodVegan().getId()), + String.valueOf(foodPlan.getFoodSecond().getId()), + String.valueOf(foodPlan.getDessertVegan().getId()), + String.valueOf(foodPlan.getDessertSecond().getId())}; + return Database.insert("food_plan",food_planH,food_planD); } /** @@ -76,10 +80,28 @@ public class FoodMgr { * @param date YYYY-MM-DD one day * @return food_plan for date */ - public static List getFood_plan(String date){ + public static FoodPlan getFoodPlan(String date){ String[] food_planH = {"date"}; String[] food_planD = {date}; - return Database.select("food_plan",food_planH,food_planD); + List entry = Database.select("food_plan",food_planH,food_planD); + String[] parts = entry.get(0).split(":"); + Food foodVegan = getFoodById(Long.parseLong(parts[2])); + Food foodSecond = getFoodById(Long.parseLong(parts[3])); + Food dessertVegan = getFoodById(Long.parseLong(parts[4])); + Food dessertSecond = getFoodById(Long.parseLong(parts[5])); + boolean isSent = !parts[6].equals("0"); + return new FoodPlan(Long.parseLong(parts[0]),date,foodVegan,foodSecond,dessertVegan,dessertSecond,isSent); + } + + public static FoodPlan getFoodPlanById(long id){ + List entry = Database.getEntryById("food_plan",id); + String[] parts = entry.get(0).split(":"); + Food foodVegan = getFoodById(Long.parseLong(parts[2])); + Food foodSecond = getFoodById(Long.parseLong(parts[3])); + Food dessertVegan = getFoodById(Long.parseLong(parts[4])); + Food dessertSecond = getFoodById(Long.parseLong(parts[5])); + boolean isSent = !parts[6].equals("0"); + return new FoodPlan(id,parts[1], foodVegan,foodSecond,dessertVegan,dessertSecond,isSent); } public static Food getFoodById(long id){ @@ -95,7 +117,7 @@ public class FoodMgr { } public static FoodType getFoodTypeById(long id){ - List entry = Database.getEntryById("foodtype",id); + List entry = Database.getEntryById("food_type",id); String[] typeParts = entry.get(0).split(":"); return new FoodType(Long.parseLong(typeParts[0]),typeParts[1]); } @@ -112,7 +134,7 @@ public class FoodMgr { List allergies = new ArrayList<>(); String[] restrictionsH = {"foodid"}; String[] restrictionsD = {String.valueOf(foodId)}; - List restrictions = Database.select("food_restrictions",restrictionsH,restrictionsD); + List restrictions = Database.select("food_restriction",restrictionsH,restrictionsD); for (String restriction : restrictions) { String[] partsRestrictions = restriction.split(":"); allergies.add(getAllergyById(Long.parseLong(partsRestrictions[2]))); @@ -127,9 +149,8 @@ public class FoodMgr { */ public static long createFood_selection(String[] food_selectionData){ String[] food_selectionH = {"childid","food_planid","foodid"}; - List food_plan = Database.getEntryById("food_plan",Long.parseLong(food_selectionData[1])); - String[] food_planParts = food_plan.get(0).split(":"); - if(Long.parseLong(food_planParts[6]) == 0){ + FoodPlan food_plan = getFoodPlanById(Long.parseLong(food_selectionData[1])); + if(!food_plan.isSent()){ return Database.insert("food_selection",food_selectionH,food_selectionData); }else { return -1; @@ -143,18 +164,23 @@ public class FoodMgr { */ public static List getDayOrder(String date){ List orders = new ArrayList<>(); - List food_plan = getFood_plan(date); - String[] food_planParts = food_plan.get(0).split(":"); - for(int i = 2; i < 2+4; i++){ - Food food = getFoodById(Long.parseLong(food_planParts[i])); - String foodName = food.getName(); - String[] food_selectionH = {"food_planid","foodid"}; - String[] food_selectionD = {food_planParts[0], String.valueOf(food.getId())}; + FoodPlan food_plan = getFoodPlan(date); + String sId = String.valueOf(food_plan.getId()); + String[] food_selectionH = {"food_planid","foodid"}; + Food[] foodArray = { + food_plan.getFoodVegan(), + food_plan.getFoodSecond(), + food_plan.getDessertVegan(), + food_plan.getDessertSecond() + }; + for(int i = 0; i < 4; i++){ + String foodName = foodArray[i].getName(); + String[] food_selectionD = {sId, String.valueOf(foodArray[i].getId())}; int count = Database.count("food_selection",food_selectionH,food_selectionD); - orders.add(foodName+":"+count); + orders.add(count+" X "+foodName); } String[] updateH = {"id","issent"}; - String[] updateD = {food_planParts[0],"1"}; + String[] updateD = {sId,"1"}; if(Database.update("food_plan",updateH,updateD) < 0){ System.out.println("Fehler"); } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java new file mode 100644 index 0000000..c0b10a2 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java @@ -0,0 +1,58 @@ +package com.bib.essensbestellungsverwaltung; + +public class FoodPlan { + private long id; + private String date; + private Food foodVegan; + private Food foodSecond; + private Food dessertVegan; + private Food dessertSecond; + private boolean isSent; + + public FoodPlan(long id, String date, Food foodVegan, Food foodSecond, Food dessertVegan, Food dessertSecond, boolean isSent) { + this.id = id; + this.date = date; + this.foodVegan = foodVegan; + this.foodSecond = foodSecond; + this.dessertVegan = dessertVegan; + this.dessertSecond = dessertSecond; + this.isSent = isSent; + } + public FoodPlan(String date, Food foodVegan, Food foodSecond, Food dessertVegan, Food dessertSecond) { + this.id = -1; + this.date = date; + this.foodVegan = foodVegan; + this.foodSecond = foodSecond; + this.dessertVegan = dessertVegan; + this.dessertSecond = dessertSecond; + this.isSent = false; + } + + public long getId() { + return id; + } + + public String getDate() { + return date; + } + + public Food getFoodVegan() { + return foodVegan; + } + + public Food getFoodSecond() { + return foodSecond; + } + + public Food getDessertVegan() { + return dessertVegan; + } + + public Food getDessertSecond() { + return dessertSecond; + } + + public boolean isSent() { + return isSent; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java index 3efa4c4..be7ca6a 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java @@ -1,4 +1,7 @@ package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ public class FoodType { private long id; diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Parent.java b/src/main/java/com/bib/essensbestellungsverwaltung/Parent.java new file mode 100644 index 0000000..616e432 --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Parent.java @@ -0,0 +1,24 @@ +package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ + +import java.util.ArrayList; +import java.util.List; + +public class Parent extends User{ + List children; + + public Parent(long id, String name, String firstname, String password, String email, Address address, List children) { + super(id, name, firstname, password, email, address); + this.children = children; + } + public Parent(String name, String firstname, String password, String email, Address address) { + super(name, firstname, password, email, address); + this.children = new ArrayList<>(); + } + + public List getChildren() { + return children; + } +} diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/User.java b/src/main/java/com/bib/essensbestellungsverwaltung/User.java index 3422fc9..23cd3e0 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/User.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/User.java @@ -1,4 +1,7 @@ package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ public class User { private long id; @@ -7,18 +10,22 @@ public class User { private String password; private String email; private Address address; - private boolean isWorker; - private boolean isParent; - public User(long id, String name, String firstname, String password, String email, Address address, boolean isWorker, boolean isParent) { + public User(long id, String name, String firstname, String password, String email, Address address) { this.id = id; this.name = name; this.firstname = firstname; this.password = password; this.email = email; this.address = address; - this.isWorker = isWorker; - this.isParent = isParent; + } + public User(String name, String firstname, String password, String email, Address address) { + this.id = -1; + this.name = name; + this.firstname = firstname; + this.password = password; + this.email = email; + this.address = address; } public long getId() { @@ -44,12 +51,4 @@ public class User { public Address getAddress() { return address; } - - public boolean isWorker() { - return isWorker; - } - - public boolean isParent() { - return isParent; - } } diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Worker.java b/src/main/java/com/bib/essensbestellungsverwaltung/Worker.java new file mode 100644 index 0000000..e4a7d5c --- /dev/null +++ b/src/main/java/com/bib/essensbestellungsverwaltung/Worker.java @@ -0,0 +1,13 @@ +package com.bib.essensbestellungsverwaltung; +/* + @author Malte Schulze Hobeling + */ + +public class Worker extends User{ + public Worker(long id, String name, String firstname, String password, String email, Address address) { + super(id, name, firstname, password, email, address); + } + public Worker(String name, String firstname, String password, String email, Address address) { + super(name, firstname, password, email, address); + } +} From 53c603249d194095747a01b22f32ba912c75c692 Mon Sep 17 00:00:00 2001 From: Reshad Meher Date: Mon, 30 Jan 2023 14:01:19 +0100 Subject: [PATCH 03/10] StartViewApplication ist die Startpunkt des Projekt --- pom.xml | 2 +- .../bib/essensbestellungsverwaltung/LoginController.java | 6 ++---- .../{HelloApplication.java => StartViewApplication.java} | 4 ++-- .../java/com/bib/essensbestellungsverwaltung/SuperMain.java | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) rename src/main/java/com/bib/essensbestellungsverwaltung/{HelloApplication.java => StartViewApplication.java} (83%) diff --git a/pom.xml b/pom.xml index 8da2cd8..b3e3131 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ default-cli - com.bib.essensbestellungsverwaltung/com.bib.essensbestellungsverwaltung.HelloApplication + com.bib.essensbestellungsverwaltung/com.bib.essensbestellungsverwaltung.StartViewApplication app app diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java b/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java index 6f3de77..4325d3b 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java @@ -1,12 +1,10 @@ /*Richard Reiswich*/ package com.bib.essensbestellungsverwaltung; -import javafx.beans.NamedArg; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.Alert; -import javafx.scene.control.Button; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.stage.Stage; @@ -28,7 +26,7 @@ public class LoginController { String email = tfEmail.getText(); String password = pfPassword.getText(); if(benutzerMap.containsKey(email) && benutzerMap.containsValue(password)){ - FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("menue-view.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("menue-view.fxml")); Scene scene = new Scene(fxmlLoader.load(), 950,480); Stage stage = new Stage(); stage.setTitle("Essen Bestellung im Kindergarten"); @@ -44,7 +42,7 @@ public class LoginController { } @FXML protected void changeToSignUp() throws IOException { - FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("signUp-view.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("signUp-view.fxml")); Scene scene = new Scene(fxmlLoader.load(), 950,480); Stage stage = new Stage(); stage.setTitle("Essen Bestellung im Kindergarten"); diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/HelloApplication.java b/src/main/java/com/bib/essensbestellungsverwaltung/StartViewApplication.java similarity index 83% rename from src/main/java/com/bib/essensbestellungsverwaltung/HelloApplication.java rename to src/main/java/com/bib/essensbestellungsverwaltung/StartViewApplication.java index cd4f503..fe03394 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/HelloApplication.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/StartViewApplication.java @@ -12,11 +12,11 @@ import javafx.stage.Stage; import java.io.IOException; -public class HelloApplication extends Application { +public class StartViewApplication extends Application { public static Stage primary; @Override public void start(Stage stage) throws IOException { - FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("login-view.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("login-view.fxml")); Scene scene = new Scene(fxmlLoader.load(), 950,480); //stage = primary; stage.setTitle("Essen Bestellung im Kindergarten"); diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java b/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java index 9fb076c..8652a45 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java @@ -5,7 +5,7 @@ public class SuperMain { if(args.length > 0){ ConsoleMain.main(args); }else { - HelloApplication.main(args); + StartViewApplication.main(args); } } } From 2d91259953b2b5b95141325e59a25e080e54a5a1 Mon Sep 17 00:00:00 2001 From: Reshad Meher Date: Mon, 30 Jan 2023 14:01:33 +0100 Subject: [PATCH 04/10] StartViewApplication ist die Startpunkt des Projekt --- .idea/.gitignore | 3 ++ .idea/encodings.xml | 7 +++ .idea/misc.xml | 12 +++++ .idea/uiDesigner.xml | 124 +++++++++++++++++++++++++++++++++++++++++++ .idea/vcs.xml | 6 +++ 5 files changed, 152 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..2738f8e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 50e0118dedd89aa4d714dfc46312486c3296dd18 Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 14:04:59 +0100 Subject: [PATCH 05/10] small fix --- .../java/com/bib/essensbestellungsverwaltung/ConsoleLib.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java index c8d7eaf..8699e65 100644 --- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java +++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java @@ -208,7 +208,6 @@ public class ConsoleLib { System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: "); food_planData[0] = sc.nextLine(); List veganMain = FoodMgr.getVeganFood(false); - System.out.println(veganMain.size()); for (Food food : veganMain) { System.out.println(food.getId() + " : " + food.getName()); } From 741b4892b8629d504b7fea73c5e1d333f235b9cb Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 14:12:47 +0100 Subject: [PATCH 06/10] =?UTF-8?q?=E2=80=9E.idea/.gitignore=E2=80=9C=20l?= =?UTF-8?q?=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .idea/.gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml From 43a4e2aa85b54c00f34f35932974317d0bdb26e2 Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 14:12:54 +0100 Subject: [PATCH 07/10] =?UTF-8?q?=E2=80=9E.idea/encodings.xml=E2=80=9C=20l?= =?UTF-8?q?=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/encodings.xml | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .idea/encodings.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index aa00ffa..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file From 318e1ef065bab0e5afcad2c990289c74ab429cc7 Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 14:12:59 +0100 Subject: [PATCH 08/10] =?UTF-8?q?=E2=80=9E.idea/misc.xml=E2=80=9C=20l?= =?UTF-8?q?=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 .idea/misc.xml diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 2738f8e..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file From 3f7fb06e1b441278641936d7ea367feff40c9297 Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 14:13:04 +0100 Subject: [PATCH 09/10] =?UTF-8?q?=E2=80=9E.idea/uiDesigner.xml=E2=80=9C=20?= =?UTF-8?q?l=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/uiDesigner.xml | 124 ------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 .idea/uiDesigner.xml diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml deleted file mode 100644 index 2b63946..0000000 --- a/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From e3c6513ebb45331cc19e80ad392c53173531c7a8 Mon Sep 17 00:00:00 2001 From: Malte Schulze Hobeling Date: Mon, 30 Jan 2023 14:13:10 +0100 Subject: [PATCH 10/10] =?UTF-8?q?=E2=80=9E.idea/vcs.xml=E2=80=9C=20l=C3=B6?= =?UTF-8?q?schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/vcs.xml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file