From 6a4f5f5e84c5f3af604e9accf91094ef00ded673 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Mon, 5 May 2025 11:47:10 +0200 Subject: [PATCH] Erweiterungen --- pom.xml | 25 ++----- .../votianlt/base/domain/AbstractEntity.java | 44 ------------- .../votianlt/base/domain/package-info.java | 4 -- .../base/ui/component/package-info.java | 4 -- .../votianlt/base/ui/view/package-info.java | 4 -- .../de/assecutor/votianlt/model/address.java | 12 ++++ .../votianlt/model/address_book.java | 13 ++++ .../model/address_book_addresses.java | 9 +++ .../de/assecutor/votianlt/model/company.java | 17 +++++ .../assecutor/votianlt/model/contractor.java | 11 ++++ .../votianlt/model/contractor_relation.java | 9 +++ .../assecutor/votianlt/model/costcenter.java | 12 ++++ .../votianlt/model/costcenter_address.java | 8 +++ .../de/assecutor/votianlt/model/country.java | 11 ++++ .../de/assecutor/votianlt/model/customer.java | 15 +++++ .../votianlt/model/customer_relation.java | 8 +++ .../de/assecutor/votianlt/model/device.java | 15 +++++ .../votianlt/model/devices_invoice.java | 11 ++++ .../de/assecutor/votianlt/model/employee.java | 7 ++ .../de/assecutor/votianlt/model/filter.java | 9 +++ .../de/assecutor/votianlt/model/help.java | 7 ++ .../de/assecutor/votianlt/model/invoice.java | 12 ++++ .../votianlt/model/invoice_credit.java | 13 ++++ .../java/de/assecutor/votianlt/model/job.java | 27 ++++++++ .../java/de/assecutor/votianlt/model/log.java | 16 +++++ .../assecutor/votianlt/model/log_invoice.java | 10 +++ .../votianlt/model/notification.java | 10 +++ .../votianlt/model/notification_info.java | 6 ++ .../de/assecutor/votianlt/model/offer.java | 12 ++++ .../assecutor/votianlt/model/parameter.java | 11 ++++ .../assecutor/votianlt/model/price_table.java | 7 ++ .../de/assecutor/votianlt/model/station.java | 16 +++++ .../votianlt/model/transportorder.java | 16 +++++ .../de/assecutor/votianlt/model/two_way.java | 8 +++ .../de/assecutor/votianlt/model/user.java | 38 +++++++++++ .../de/assecutor/votianlt/model/vehicle.java | 18 +++++ .../assecutor/votianlt/model/vlt_invoice.java | 21 ++++++ .../base/ui/component/ViewToolbar.java | 2 +- .../base/ui/view/MainErrorHandler.java | 2 +- .../{ => pages}/base/ui/view/MainLayout.java | 6 +- .../pages/customers/domain/Customer.java | 19 ++++++ .../customers/domain/CustomerRepository.java | 11 ++++ .../customers/service/CustomerService.java} | 18 ++--- .../customers/ui/view/CustomersView.java} | 26 ++++---- .../votianlt/pages/register/domain/Order.java | 21 ++++++ .../register/domain/RegisterRepository.java | 12 ++++ .../register/service/RegisterService.java | 37 +++++++++++ .../pages/register/ui/view/RegisterView.java | 66 +++++++++++++++++++ .../pages/start/ui/view/OrdersView.java | 42 ++++++++++++ .../assecutor/votianlt/todo/domain/Todo.java | 61 ----------------- .../votianlt/todo/domain/TodoRepository.java | 12 ---- .../votianlt/todo/domain/package-info.java | 4 -- .../votianlt/todo/service/package-info.java | 4 -- .../votianlt/todo/ui/view/package-info.java | 4 -- .../java/de/assecutor/votianlt/util/Util.java | 16 +++++ src/main/resources/application.properties | 3 + .../assecutor/votianlt/ArchitectureTest.java | 48 -------------- .../votianlt/todo/service/TodoServiceIT.java | 54 --------------- 58 files changed, 676 insertions(+), 288 deletions(-) delete mode 100644 src/main/java/de/assecutor/votianlt/base/domain/AbstractEntity.java delete mode 100644 src/main/java/de/assecutor/votianlt/base/domain/package-info.java delete mode 100644 src/main/java/de/assecutor/votianlt/base/ui/component/package-info.java delete mode 100644 src/main/java/de/assecutor/votianlt/base/ui/view/package-info.java create mode 100644 src/main/java/de/assecutor/votianlt/model/address.java create mode 100644 src/main/java/de/assecutor/votianlt/model/address_book.java create mode 100644 src/main/java/de/assecutor/votianlt/model/address_book_addresses.java create mode 100644 src/main/java/de/assecutor/votianlt/model/company.java create mode 100644 src/main/java/de/assecutor/votianlt/model/contractor.java create mode 100644 src/main/java/de/assecutor/votianlt/model/contractor_relation.java create mode 100644 src/main/java/de/assecutor/votianlt/model/costcenter.java create mode 100644 src/main/java/de/assecutor/votianlt/model/costcenter_address.java create mode 100644 src/main/java/de/assecutor/votianlt/model/country.java create mode 100644 src/main/java/de/assecutor/votianlt/model/customer.java create mode 100644 src/main/java/de/assecutor/votianlt/model/customer_relation.java create mode 100644 src/main/java/de/assecutor/votianlt/model/device.java create mode 100644 src/main/java/de/assecutor/votianlt/model/devices_invoice.java create mode 100644 src/main/java/de/assecutor/votianlt/model/employee.java create mode 100644 src/main/java/de/assecutor/votianlt/model/filter.java create mode 100644 src/main/java/de/assecutor/votianlt/model/help.java create mode 100644 src/main/java/de/assecutor/votianlt/model/invoice.java create mode 100644 src/main/java/de/assecutor/votianlt/model/invoice_credit.java create mode 100644 src/main/java/de/assecutor/votianlt/model/job.java create mode 100644 src/main/java/de/assecutor/votianlt/model/log.java create mode 100644 src/main/java/de/assecutor/votianlt/model/log_invoice.java create mode 100644 src/main/java/de/assecutor/votianlt/model/notification.java create mode 100644 src/main/java/de/assecutor/votianlt/model/notification_info.java create mode 100644 src/main/java/de/assecutor/votianlt/model/offer.java create mode 100644 src/main/java/de/assecutor/votianlt/model/parameter.java create mode 100644 src/main/java/de/assecutor/votianlt/model/price_table.java create mode 100644 src/main/java/de/assecutor/votianlt/model/station.java create mode 100644 src/main/java/de/assecutor/votianlt/model/transportorder.java create mode 100644 src/main/java/de/assecutor/votianlt/model/two_way.java create mode 100644 src/main/java/de/assecutor/votianlt/model/user.java create mode 100644 src/main/java/de/assecutor/votianlt/model/vehicle.java create mode 100644 src/main/java/de/assecutor/votianlt/model/vlt_invoice.java rename src/main/java/de/assecutor/votianlt/{ => pages}/base/ui/component/ViewToolbar.java (96%) rename src/main/java/de/assecutor/votianlt/{ => pages}/base/ui/view/MainErrorHandler.java (96%) rename src/main/java/de/assecutor/votianlt/{ => pages}/base/ui/view/MainLayout.java (95%) create mode 100644 src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java rename src/main/java/de/assecutor/votianlt/{todo/service/TodoService.java => pages/customers/service/CustomerService.java} (66%) rename src/main/java/de/assecutor/votianlt/{todo/ui/view/TodoView.java => pages/customers/ui/view/CustomersView.java} (80%) create mode 100644 src/main/java/de/assecutor/votianlt/pages/register/domain/Order.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java delete mode 100644 src/main/java/de/assecutor/votianlt/todo/domain/Todo.java delete mode 100644 src/main/java/de/assecutor/votianlt/todo/domain/TodoRepository.java delete mode 100644 src/main/java/de/assecutor/votianlt/todo/domain/package-info.java delete mode 100644 src/main/java/de/assecutor/votianlt/todo/service/package-info.java delete mode 100644 src/main/java/de/assecutor/votianlt/todo/ui/view/package-info.java create mode 100644 src/main/java/de/assecutor/votianlt/util/Util.java delete mode 100644 src/test/java/de/assecutor/votianlt/ArchitectureTest.java delete mode 100644 src/test/java/de/assecutor/votianlt/todo/service/TodoServiceIT.java diff --git a/pom.xml b/pom.xml index 380bec9..e1c3f1f 100644 --- a/pom.xml +++ b/pom.xml @@ -47,18 +47,6 @@ vaadin-spring-boot-starter - - - org.springframework.boot - spring-boot-starter-data-jpa - - - - com.h2database - h2 - runtime - - org.springframework.boot @@ -74,17 +62,16 @@ true - org.springframework.boot - spring-boot-starter-test - test + spring-boot-starter-data-mongodb + - com.tngtech.archunit - archunit-junit5 - ${archunit.version} - test + org.projectlombok + lombok + 1.18.30 + provided diff --git a/src/main/java/de/assecutor/votianlt/base/domain/AbstractEntity.java b/src/main/java/de/assecutor/votianlt/base/domain/AbstractEntity.java deleted file mode 100644 index b0a453b..0000000 --- a/src/main/java/de/assecutor/votianlt/base/domain/AbstractEntity.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.assecutor.votianlt.base.domain; - -import jakarta.persistence.MappedSuperclass; -import org.jspecify.annotations.Nullable; -import org.springframework.data.util.ProxyUtils; - -@MappedSuperclass -public abstract class AbstractEntity { - - public abstract @Nullable ID getId(); - - @Override - public String toString() { - return "%s{id=%s}".formatted(getClass().getSimpleName(), getId()); - } - - @Override - public int hashCode() { - // Hashcode should never change during the lifetime of an object. Because of - // this we can't use getId() to calculate the hashcode. Unless you have sets - // with lots of entities in them, returning the same hashcode should not be a - // problem. - return ProxyUtils.getUserClass(getClass()).hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } else if (obj == this) { - return true; - } - - var thisUserClass = ProxyUtils.getUserClass(getClass()); - var otherUserClass = ProxyUtils.getUserClass(obj); - if (thisUserClass != otherUserClass) { - return false; - } - - var id = getId(); - return id != null && id.equals(((AbstractEntity) obj).getId()); - } - -} diff --git a/src/main/java/de/assecutor/votianlt/base/domain/package-info.java b/src/main/java/de/assecutor/votianlt/base/domain/package-info.java deleted file mode 100644 index 8379d70..0000000 --- a/src/main/java/de/assecutor/votianlt/base/domain/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@NullMarked -package de.assecutor.votianlt.base.domain; - -import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/de/assecutor/votianlt/base/ui/component/package-info.java b/src/main/java/de/assecutor/votianlt/base/ui/component/package-info.java deleted file mode 100644 index 177dab5..0000000 --- a/src/main/java/de/assecutor/votianlt/base/ui/component/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@NullMarked -package de.assecutor.votianlt.base.ui.component; - -import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/de/assecutor/votianlt/base/ui/view/package-info.java b/src/main/java/de/assecutor/votianlt/base/ui/view/package-info.java deleted file mode 100644 index 99dd59b..0000000 --- a/src/main/java/de/assecutor/votianlt/base/ui/view/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@NullMarked -package de.assecutor.votianlt.base.ui.view; - -import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/de/assecutor/votianlt/model/address.java b/src/main/java/de/assecutor/votianlt/model/address.java new file mode 100644 index 0000000..ed0e8d2 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/address.java @@ -0,0 +1,12 @@ +package de.assecutor.votianlt.model; + +public class address { + public int ad_id; + public String ad_street; + public String ad_add; + public String ad_zipcode; + public String ad_city; + public String ad_country; + public String ad_lat; + public String ad_lng; +} diff --git a/src/main/java/de/assecutor/votianlt/model/address_book.java b/src/main/java/de/assecutor/votianlt/model/address_book.java new file mode 100644 index 0000000..5b26958 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/address_book.java @@ -0,0 +1,13 @@ +package de.assecutor.votianlt.model; + +public class address_book { + public int adb_id; + public int usr_id; + public int ad_b_ad_id; + public String deliverHsno; + public String deliverCompany; + public String deliverTitle; + public String deliverFirstname; + public String deliverLastname; + public String deliverPhone; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/address_book_addresses.java b/src/main/java/de/assecutor/votianlt/model/address_book_addresses.java new file mode 100644 index 0000000..528136a --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/address_book_addresses.java @@ -0,0 +1,9 @@ +package de.assecutor.votianlt.model; + +public class address_book_addresses +{ + public int ad_b_ad_id; + public String deliverStreet; + public String deliverPlz; + public String deliverCity; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/company.java b/src/main/java/de/assecutor/votianlt/model/company.java new file mode 100644 index 0000000..c17099d --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/company.java @@ -0,0 +1,17 @@ +package de.assecutor.votianlt.model; + +public class company +{ + public int cmp_id; + public String cmp_comp; + public String cmp_comp2; + public String cmp_hsno; + public String cmp_Ustid; + public String cmp_Taxid; + public String cmp_Iban; + public String cmp_homepage; + public String votian_cmp_id; + public String votian_ad_id; + public String votian_tx_id; + public String votian_br_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/contractor.java b/src/main/java/de/assecutor/votianlt/model/contractor.java new file mode 100644 index 0000000..a62dde5 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/contractor.java @@ -0,0 +1,11 @@ +package de.assecutor.votianlt.model; + +public class contractor +{ + public int cr_id; + public int cmp_id; + public int usr_id; + public String votian_cr_id; + public String votian_cr_eid; + public String votian_hq_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/contractor_relation.java b/src/main/java/de/assecutor/votianlt/model/contractor_relation.java new file mode 100644 index 0000000..c389a27 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/contractor_relation.java @@ -0,0 +1,9 @@ +package de.assecutor.votianlt.model; + +public class contractor_relation +{ + public int cr_r_id; + public int usr_id; + public int cr_id; + public String cr_filter_json; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/costcenter.java b/src/main/java/de/assecutor/votianlt/model/costcenter.java new file mode 100644 index 0000000..c9044d6 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/costcenter.java @@ -0,0 +1,12 @@ +package de.assecutor.votianlt.model; + +public class costcenter +{ + public int cs_id; + public int csc_id; + public String csc_comp; + public String csc_comp2; + public String csc_hsno; + public String csc_usr_name; + public String csc_usr_firstname; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/costcenter_address.java b/src/main/java/de/assecutor/votianlt/model/costcenter_address.java new file mode 100644 index 0000000..cd94abd --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/costcenter_address.java @@ -0,0 +1,8 @@ +package de.assecutor.votianlt.model; + +public class costcenter_address +{ + public int csc_id; + public int ad_id; + public int adt_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/country.java b/src/main/java/de/assecutor/votianlt/model/country.java new file mode 100644 index 0000000..c8b0e6f --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/country.java @@ -0,0 +1,11 @@ +package de.assecutor.votianlt.model; + +public class country +{ + public String cou_iso_3; + public String cou_iso_no; + public String cou_mnemonic; + public String cou_name; + public String cou_iso_2; + public byte cou_continent; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/customer.java b/src/main/java/de/assecutor/votianlt/model/customer.java new file mode 100644 index 0000000..74822ca --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/customer.java @@ -0,0 +1,15 @@ +package de.assecutor.votianlt.model; + +public class customer +{ + public int cs_id; + public int cmp_id; + public int csc_id; + public int emp_id; + public String votian_cs_id; + public String votian_cs_eid; + public String votian_cs_admin; + public String votian_hq_id; + public String votian_cs_id_parent; + public String votian_cs_id_related; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/customer_relation.java b/src/main/java/de/assecutor/votianlt/model/customer_relation.java new file mode 100644 index 0000000..fd4070f --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/customer_relation.java @@ -0,0 +1,8 @@ +package de.assecutor.votianlt.model; + +public class customer_relation +{ + public int cs_r_id; + public int usr_id; + public int cr_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/device.java b/src/main/java/de/assecutor/votianlt/model/device.java new file mode 100644 index 0000000..f2634c0 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/device.java @@ -0,0 +1,15 @@ +package de.assecutor.votianlt.model; + +public class device +{ + public int d_id; + public int usr_id; + public int d_details; + public String d_name; + public int votian_dv_id; + public String device_name; + public String uuid; + public String code; + public int cust_id; + public int cust_acc_group; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/devices_invoice.java b/src/main/java/de/assecutor/votianlt/model/devices_invoice.java new file mode 100644 index 0000000..c20b94a --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/devices_invoice.java @@ -0,0 +1,11 @@ +package de.assecutor.votianlt.model; + +public class devices_invoice +{ + public int d_i_id; + public String d_i_create; + public String d_i_delete; + public int d_id; + public int vlt_i_id; + public int usr_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/employee.java b/src/main/java/de/assecutor/votianlt/model/employee.java new file mode 100644 index 0000000..297f762 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/employee.java @@ -0,0 +1,7 @@ +package de.assecutor.votianlt.model; + +public class employee +{ + public int emp_id; + public int usr_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/filter.java b/src/main/java/de/assecutor/votianlt/model/filter.java new file mode 100644 index 0000000..33124fb --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/filter.java @@ -0,0 +1,9 @@ +package de.assecutor.votianlt.model; + +public class filter +{ + public int f_id; + public int f_type; + public String f_short; + public String f_status; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/help.java b/src/main/java/de/assecutor/votianlt/model/help.java new file mode 100644 index 0000000..0da9e4c --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/help.java @@ -0,0 +1,7 @@ +package de.assecutor.votianlt.model; + +public class help +{ + public int h_id; + public String h_language; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/invoice.java b/src/main/java/de/assecutor/votianlt/model/invoice.java new file mode 100644 index 0000000..6626976 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/invoice.java @@ -0,0 +1,12 @@ +package de.assecutor.votianlt.model; + +public class invoice +{ + public int i_id; + public int usr_id; + public int cr_id; + public String i_export_time; + public int i_create_date; + public String invoiceNumber; + public String fileName; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/invoice_credit.java b/src/main/java/de/assecutor/votianlt/model/invoice_credit.java new file mode 100644 index 0000000..87e6190 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/invoice_credit.java @@ -0,0 +1,13 @@ +package de.assecutor.votianlt.model; + +public class invoice_credit +{ + public int i_c_id; + public String i_c_date; + public int usr_id; + public double i_c_amount; + public String purpose; + public String iban; + public String currency; + public double diff; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/job.java b/src/main/java/de/assecutor/votianlt/model/job.java new file mode 100644 index 0000000..0fbedf0 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/job.java @@ -0,0 +1,27 @@ +package de.assecutor.votianlt.model; + +public class job +{ + public int jb_id; + public int cs_id; + public int cr_id; + public int jb_votian_id; + public java.sql.Date jb_ordertime; + public int jb_status; + public int jb_type; + public int jb_invoice_data; + public String useApp; + public String customerID; + public String datepickerPickup; + public String timepickerPickup; + public String datepickerDel; + public String timepickerDel; + public String remark; + public String price; + public String submit; + public String appUserID; + public String cargo_type; + public String cargo_weight; + public String cargo_volume; + public String jobdetail_instruction; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/log.java b/src/main/java/de/assecutor/votianlt/model/log.java new file mode 100644 index 0000000..860d1c4 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/log.java @@ -0,0 +1,16 @@ +package de.assecutor.votianlt.model; + +public class log +{ + public int logo_id; + public String log_createtime; + public int hq_id; + public int jb_id; + public int usr_id; + public int cr_id; + public int cr_sid; + public int cs_id; + public int at_id; + public int pt_id; + public int emp_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/log_invoice.java b/src/main/java/de/assecutor/votianlt/model/log_invoice.java new file mode 100644 index 0000000..2ad0ef6 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/log_invoice.java @@ -0,0 +1,10 @@ +package de.assecutor.votianlt.model; + +public class log_invoice +{ + public int l_i_id; + public int i_id; + public String i_date; + public int i_export_time_1; + public String i_export_time_2; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/notification.java b/src/main/java/de/assecutor/votianlt/model/notification.java new file mode 100644 index 0000000..1301f9a --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/notification.java @@ -0,0 +1,10 @@ +package de.assecutor.votianlt.model; + +public class notification +{ + public int n_id; + public String n_date; + public int n_info_id; + public int usr_id; + public byte n_new; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/notification_info.java b/src/main/java/de/assecutor/votianlt/model/notification_info.java new file mode 100644 index 0000000..ddbb33c --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/notification_info.java @@ -0,0 +1,6 @@ +package de.assecutor.votianlt.model; + +public class notification_info +{ + public int n_i_id; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/offer.java b/src/main/java/de/assecutor/votianlt/model/offer.java new file mode 100644 index 0000000..45daa2b --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/offer.java @@ -0,0 +1,12 @@ +package de.assecutor.votianlt.model; + +public class offer +{ + public int o_id; + public int jb_id; + public int usr_id; + public int cr_id; + public java.sql.Date offer_time; + public String price; + public String remark; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/parameter.java b/src/main/java/de/assecutor/votianlt/model/parameter.java new file mode 100644 index 0000000..88c5ec2 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/parameter.java @@ -0,0 +1,11 @@ +package de.assecutor.votianlt.model; + +public class parameter +{ + public int par_id; + public String par_key; + public int md_id; + public int hq_id; + public int emp_id; + public String par_value; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/price_table.java b/src/main/java/de/assecutor/votianlt/model/price_table.java new file mode 100644 index 0000000..44d8278 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/price_table.java @@ -0,0 +1,7 @@ +package de.assecutor.votianlt.model; + +public class price_table +{ + public int pt_id; + public double pt_price; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/station.java b/src/main/java/de/assecutor/votianlt/model/station.java new file mode 100644 index 0000000..abef876 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/station.java @@ -0,0 +1,16 @@ +package de.assecutor.votianlt.model; + +public class station +{ + public int station_id; + public int jb_id; + public String station_type; + public int ad_id; + public int station_order; + public String station_name; + public String station_contact; + public String station_phone; + public java.sql.Date station_arrival_est; + public java.sql.Date station_departure_est; + public String instructions; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/transportorder.java b/src/main/java/de/assecutor/votianlt/model/transportorder.java new file mode 100644 index 0000000..7878e05 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/transportorder.java @@ -0,0 +1,16 @@ +package de.assecutor.votianlt.model; + +public class transportorder +{ + public int tr_id; + public int jb_id; + public int usr_id; + public String tr_comment; + public String tr_state; + public String tr_driver_lat; + public String tr_driver_lng; + public String tr_driver_accuracy; + public String tr_driver_last_update; + public String tr_created; + public String tr_updated; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/two_way.java b/src/main/java/de/assecutor/votianlt/model/two_way.java new file mode 100644 index 0000000..30d8c7a --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/two_way.java @@ -0,0 +1,8 @@ +package de.assecutor.votianlt.model; + +public class two_way +{ + public int t_w_id; + public int usr_id; + public String t_w_secret; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/user.java b/src/main/java/de/assecutor/votianlt/model/user.java new file mode 100644 index 0000000..a8695b3 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/user.java @@ -0,0 +1,38 @@ +package de.assecutor.votianlt.model; + +public class user +{ + public int usr_id; + public int hq_id; + public short usr_type; + public String usr_title; + public String usr_name; + public String usr_firstname; + public java.sql.Date usr_birthdate; + public int ad_id; + public String usr_hsno; + public String usr_email; + public String usr_inv_email; + public String usr_phone; + public String usr_phone2; + public String usr_fax; + public String usr_account; + public String usr_password; + public String usr_modify; + public byte usr_is_activated; + public String usr_activation_code; + public byte usr_is_email_confirmed; + public String usr_code; + public int usr_code_timestamp; + public byte usr_is_password_lost; + public String usr_password_code; + public int usr_password_timestamp; + public byte usr_app; + public String votian_usr_id; + public String auth_customer; + public String auth_account; + public String auth_password; + public String auth_session_id; + public long activationDate; + public double balance; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/vehicle.java b/src/main/java/de/assecutor/votianlt/model/vehicle.java new file mode 100644 index 0000000..1e0cc0d --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/vehicle.java @@ -0,0 +1,18 @@ +package de.assecutor.votianlt.model; + +public class vehicle +{ + public int vh_id; + public int usr_parent_id; + public int cr_id; + public int vh_details; + public int d_id; + public String title; + public String code; + public String votian_vht_id; + public String votian_vht_id_inv; + public String votian_cr_ar_jb_id; + public String votian_crvh_id; + public String votian_cr_id; + public String votian_crvh_sid; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/vlt_invoice.java b/src/main/java/de/assecutor/votianlt/model/vlt_invoice.java new file mode 100644 index 0000000..3029c0e --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/vlt_invoice.java @@ -0,0 +1,21 @@ +package de.assecutor.votianlt.model; + +public class vlt_invoice +{ + public int vlt_i_id; + public int usr_id; + public String vlt_i_price; + public String vlt_i_date; + public int vlt_i_status; + public String vlt_i_html; + public String totalPriceNet; + public String totalPrice; + public String payedDays; + public String daysInMonth; + public String devicePrice; + public String basePrice; + public String systemVat; + public String basePricePayed; + public String vatPrice; + public String invoiceNumber; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/base/ui/component/ViewToolbar.java b/src/main/java/de/assecutor/votianlt/pages/base/ui/component/ViewToolbar.java similarity index 96% rename from src/main/java/de/assecutor/votianlt/base/ui/component/ViewToolbar.java rename to src/main/java/de/assecutor/votianlt/pages/base/ui/component/ViewToolbar.java index aaeeee1..b703bc0 100644 --- a/src/main/java/de/assecutor/votianlt/base/ui/component/ViewToolbar.java +++ b/src/main/java/de/assecutor/votianlt/pages/base/ui/component/ViewToolbar.java @@ -1,4 +1,4 @@ -package de.assecutor.votianlt.base.ui.component; +package de.assecutor.votianlt.pages.base.ui.component; import com.vaadin.flow.component.Component; import com.vaadin.flow.component.Composite; diff --git a/src/main/java/de/assecutor/votianlt/base/ui/view/MainErrorHandler.java b/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainErrorHandler.java similarity index 96% rename from src/main/java/de/assecutor/votianlt/base/ui/view/MainErrorHandler.java rename to src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainErrorHandler.java index 26e59e0..b9fc356 100644 --- a/src/main/java/de/assecutor/votianlt/base/ui/view/MainErrorHandler.java +++ b/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainErrorHandler.java @@ -1,4 +1,4 @@ -package de.assecutor.votianlt.base.ui.view; +package de.assecutor.votianlt.pages.base.ui.view; import com.vaadin.flow.component.Component; import com.vaadin.flow.component.notification.Notification; diff --git a/src/main/java/de/assecutor/votianlt/base/ui/view/MainLayout.java b/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java similarity index 95% rename from src/main/java/de/assecutor/votianlt/base/ui/view/MainLayout.java rename to src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java index dbde6cf..01331af 100644 --- a/src/main/java/de/assecutor/votianlt/base/ui/view/MainLayout.java +++ b/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java @@ -1,4 +1,4 @@ -package de.assecutor.votianlt.base.ui.view; +package de.assecutor.votianlt.pages.base.ui.view; import com.vaadin.flow.component.Component; import com.vaadin.flow.component.applayout.AppLayout; @@ -25,6 +25,8 @@ public final class MainLayout extends AppLayout { public MainLayout() { setPrimarySection(Section.DRAWER); addToDrawer(createHeader(), new Scroller(createSideNav()), createUserMenu()); + + //setDrawerOpened(false); } private Div createHeader() { @@ -32,7 +34,7 @@ public final class MainLayout extends AppLayout { var appLogo = VaadinIcon.CUBES.create(); appLogo.addClassNames(TextColor.PRIMARY, IconSize.LARGE); - var appName = new Span("Votianlt"); + var appName = new Span("VotianLT"); appName.addClassNames(FontWeight.SEMIBOLD, FontSize.LARGE); var header = new Div(appLogo, appName); diff --git a/src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java b/src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java new file mode 100644 index 0000000..beb8a5d --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java @@ -0,0 +1,19 @@ +package de.assecutor.votianlt.pages.customers.domain; + +import lombok.Data; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.time.Instant; +import java.time.LocalDate; + +@Document(collection = "customer") +@Data +public class Customer { + private Long id; + + private String description; + + private Instant creationDate; + + private LocalDate dueDate; +} diff --git a/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java b/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java new file mode 100644 index 0000000..cb8b8da --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java @@ -0,0 +1,11 @@ +package de.assecutor.votianlt.pages.customers.domain; + +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface CustomerRepository extends MongoRepository { + + // If you don't need a total row count, Slice is better than Page. + Slice findAllBy(Pageable pageable); +} diff --git a/src/main/java/de/assecutor/votianlt/todo/service/TodoService.java b/src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java similarity index 66% rename from src/main/java/de/assecutor/votianlt/todo/service/TodoService.java rename to src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java index 374177d..1d95802 100644 --- a/src/main/java/de/assecutor/votianlt/todo/service/TodoService.java +++ b/src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java @@ -1,7 +1,7 @@ -package de.assecutor.votianlt.todo.service; +package de.assecutor.votianlt.pages.customers.service; -import de.assecutor.votianlt.todo.domain.Todo; -import de.assecutor.votianlt.todo.domain.TodoRepository; +import de.assecutor.votianlt.pages.customers.domain.Customer; +import de.assecutor.votianlt.pages.customers.domain.CustomerRepository; import org.jspecify.annotations.Nullable; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -14,13 +14,13 @@ import java.util.List; @Service @Transactional(propagation = Propagation.REQUIRES_NEW) -public class TodoService { +public class CustomerService { - private final TodoRepository todoRepository; + private final CustomerRepository todoRepository; private final Clock clock; - TodoService(TodoRepository todoRepository, Clock clock) { + CustomerService(CustomerRepository todoRepository, Clock clock) { this.todoRepository = todoRepository; this.clock = clock; } @@ -29,14 +29,14 @@ public class TodoService { if ("fail".equals(description)) { throw new RuntimeException("This is for testing the error handler"); } - var todo = new Todo(); + var todo = new Customer(); todo.setDescription(description); todo.setCreationDate(clock.instant()); todo.setDueDate(dueDate); - todoRepository.saveAndFlush(todo); + todoRepository.save(todo); } - public List list(Pageable pageable) { + public List list(Pageable pageable) { return todoRepository.findAllBy(pageable).toList(); } diff --git a/src/main/java/de/assecutor/votianlt/todo/ui/view/TodoView.java b/src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java similarity index 80% rename from src/main/java/de/assecutor/votianlt/todo/ui/view/TodoView.java rename to src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java index 55856ce..e38baf1 100644 --- a/src/main/java/de/assecutor/votianlt/todo/ui/view/TodoView.java +++ b/src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java @@ -1,8 +1,5 @@ -package de.assecutor.votianlt.todo.ui.view; +package de.assecutor.votianlt.pages.customers.ui.view; -import de.assecutor.votianlt.base.ui.component.ViewToolbar; -import de.assecutor.votianlt.todo.domain.Todo; -import de.assecutor.votianlt.todo.service.TodoService; import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; import com.vaadin.flow.component.datepicker.DatePicker; @@ -15,6 +12,9 @@ import com.vaadin.flow.router.Menu; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.theme.lumo.LumoUtility; +import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar; +import de.assecutor.votianlt.pages.customers.domain.Customer; +import de.assecutor.votianlt.pages.customers.service.CustomerService; import java.time.Clock; import java.time.format.DateTimeFormatter; @@ -23,25 +23,25 @@ import java.util.Optional; import static com.vaadin.flow.spring.data.VaadinSpringDataHelpers.toSpringPageRequest; -@Route("") -@PageTitle("Task List") -@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Task List") -public class TodoView extends Main { +@Route("customer") +@PageTitle("Kunden") +@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Kunden") +public class CustomersView extends Main { - private final TodoService todoService; + private final CustomerService todoService; final TextField description; final DatePicker dueDate; final Button createBtn; - final Grid todoGrid; + final Grid todoGrid; - public TodoView(TodoService todoService, Clock clock) { + public CustomersView(CustomerService todoService, Clock clock) { this.todoService = todoService; description = new TextField(); description.setPlaceholder("What do you want to do?"); description.setAriaLabel("Task description"); - description.setMaxLength(Todo.DESCRIPTION_MAX_LENGTH); + description.setMaxLength(255); description.setMinWidth("20em"); dueDate = new DatePicker(); @@ -57,7 +57,7 @@ public class TodoView extends Main { todoGrid = new Grid<>(); todoGrid.setItems(query -> todoService.list(toSpringPageRequest(query)).stream()); - todoGrid.addColumn(Todo::getDescription).setHeader("Description"); + todoGrid.addColumn(Customer::getDescription).setHeader("Description"); todoGrid.addColumn(todo -> Optional.ofNullable(todo.getDueDate()).map(dateFormatter::format).orElse("Never")) .setHeader("Due Date"); todoGrid.addColumn(todo -> dateTimeFormatter.format(todo.getCreationDate())).setHeader("Creation Date"); diff --git a/src/main/java/de/assecutor/votianlt/pages/register/domain/Order.java b/src/main/java/de/assecutor/votianlt/pages/register/domain/Order.java new file mode 100644 index 0000000..69f35fb --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/register/domain/Order.java @@ -0,0 +1,21 @@ +package de.assecutor.votianlt.pages.register.domain; + +import jakarta.validation.constraints.Size; +import lombok.Data; +import org.jspecify.annotations.Nullable; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.time.Instant; +import java.time.LocalDate; + +@Document(collection = "colors") +@Data +public class Order { + private Long id; + + private String description; + + private Instant creationDate; + + private LocalDate dueDate; +} diff --git a/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java b/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java new file mode 100644 index 0000000..24c7e92 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java @@ -0,0 +1,12 @@ +package de.assecutor.votianlt.pages.register.domain; + +import de.assecutor.votianlt.pages.customers.domain.Customer; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface RegisterRepository extends MongoRepository { + + // If you don't need a total row count, Slice is better than Page. + Slice findAllBy(Pageable pageable); +} diff --git a/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java b/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java new file mode 100644 index 0000000..816d35f --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java @@ -0,0 +1,37 @@ +package de.assecutor.votianlt.pages.register.service; + +import de.assecutor.votianlt.pages.register.domain.RegisterRepository; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.time.Clock; +import java.util.List; + +@Service +@Transactional(propagation = Propagation.REQUIRES_NEW) +public class RegisterService { + + private final RegisterRepository registerRepository; + + private final Clock clock; + + RegisterService(RegisterRepository registerRepository, Clock clock) { + this.registerRepository = registerRepository; + this.clock = clock; + } + + public void registerUser(String mail, String password) { + /*if ("fail".equals(description)) { + throw new RuntimeException("This is for testing the error handler"); + } + var todo = new Todo(); + todo.setDescription(description); + todo.setCreationDate(clock.instant()); + todo.setDueDate(dueDate); + todoRepository.saveAndFlush(todo);*/ + } + + //public List list(Pageable pageable) { return todoRepository.findAllBy(pageable).toList(); +} diff --git a/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java b/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java new file mode 100644 index 0000000..45f27df --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java @@ -0,0 +1,66 @@ +package de.assecutor.votianlt.pages.register.ui.view; + +import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.applayout.AppLayout; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.html.Main; +import com.vaadin.flow.component.notification.Notification; +import com.vaadin.flow.component.notification.NotificationVariant; +import com.vaadin.flow.component.orderedlayout.FlexComponent; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.router.Menu; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import com.vaadin.flow.theme.lumo.LumoUtility; +import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar; +import de.assecutor.votianlt.pages.register.service.RegisterService; +import de.assecutor.votianlt.util.Util; + +import java.time.Clock; + +@Route("register") +@PageTitle("Bei VotianLT registrieren") +//@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Bei VotianLT registrieren") +public class RegisterView extends Main { + + private final RegisterService registerService; + + TextField usernameField = new TextField("E-Mail-Adresse"); + TextField password1Field = new TextField("Passwort"); + TextField password2Field = new TextField("Passwort wiederholen"); + Button submitButton = new Button("Registrieren"); + + public RegisterView(RegisterService registerService, Clock clock) { + this.registerService = registerService; + + // Setze den Button als primär + submitButton = new Button("Create", event -> submit()); + submitButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + + // Erstelle ein Div als Container (oder direkt ein Layout) + VerticalLayout formLayout = new VerticalLayout(); + formLayout.add(usernameField, password1Field, password2Field, submitButton); + + // Zentriere die Inhalte vertikal und horizontal + formLayout.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); + formLayout.setSpacing(true); + formLayout.setSizeUndefined(); // Inhalt eng setzen + + setSizeFull(); + addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, + LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); + + add(formLayout); + } + + private void submit() { + Util.changeDrawerState(true); + } + + private void createTodo() { + registerService.registerUser(usernameField.getValue(), password1Field.getValue()); + Notification.show("Benutzer registriert", 3000, Notification.Position.BOTTOM_END).addThemeVariants(NotificationVariant.LUMO_SUCCESS); + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java b/src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java new file mode 100644 index 0000000..a8fe267 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java @@ -0,0 +1,42 @@ +package de.assecutor.votianlt.pages.start.ui.view; + +import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.html.Main; +import com.vaadin.flow.router.Menu; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import com.vaadin.flow.theme.lumo.LumoUtility; + +@Route("") +@PageTitle("Start") +@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Start") +public class OrdersView extends Main { + + final Button registerBtn; + final Button loginBtn; + + public OrdersView() { + registerBtn = new Button("Registrieren", event -> register()); + registerBtn.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + add(registerBtn); + + loginBtn = new Button("Anmelden", event -> login()); + loginBtn.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + add(loginBtn); + + setSizeFull(); + addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, + LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); + + } + + private void register() { + UI.getCurrent().navigate("register"); + } + + private void login() { + } + +} diff --git a/src/main/java/de/assecutor/votianlt/todo/domain/Todo.java b/src/main/java/de/assecutor/votianlt/todo/domain/Todo.java deleted file mode 100644 index 584bdaa..0000000 --- a/src/main/java/de/assecutor/votianlt/todo/domain/Todo.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.assecutor.votianlt.todo.domain; - -import de.assecutor.votianlt.base.domain.AbstractEntity; -import jakarta.persistence.*; -import jakarta.validation.constraints.Size; -import org.jspecify.annotations.Nullable; - -import java.time.Instant; -import java.time.LocalDate; - -@Entity -@Table(name = "todo") -public class Todo extends AbstractEntity { - - public static final int DESCRIPTION_MAX_LENGTH = 255; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "todo_id") - private Long id; - - @Column(name = "description", nullable = false, length = DESCRIPTION_MAX_LENGTH) - @Size(max = DESCRIPTION_MAX_LENGTH) - private String description; - - @Column(name = "creation_date", nullable = false) - private Instant creationDate; - - @Column(name = "due_date") - @Nullable - private LocalDate dueDate; - - @Override - public @Nullable Long getId() { - return id; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Instant getCreationDate() { - return creationDate; - } - - public void setCreationDate(Instant creationDate) { - this.creationDate = creationDate; - } - - public @Nullable LocalDate getDueDate() { - return dueDate; - } - - public void setDueDate(@Nullable LocalDate dueDate) { - this.dueDate = dueDate; - } -} diff --git a/src/main/java/de/assecutor/votianlt/todo/domain/TodoRepository.java b/src/main/java/de/assecutor/votianlt/todo/domain/TodoRepository.java deleted file mode 100644 index ceb6068..0000000 --- a/src/main/java/de/assecutor/votianlt/todo/domain/TodoRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.assecutor.votianlt.todo.domain; - -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Slice; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; - -public interface TodoRepository extends JpaRepository, JpaSpecificationExecutor { - - // If you don't need a total row count, Slice is better than Page. - Slice findAllBy(Pageable pageable); -} diff --git a/src/main/java/de/assecutor/votianlt/todo/domain/package-info.java b/src/main/java/de/assecutor/votianlt/todo/domain/package-info.java deleted file mode 100644 index c6e9428..0000000 --- a/src/main/java/de/assecutor/votianlt/todo/domain/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@NullMarked -package de.assecutor.votianlt.todo.domain; - -import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/de/assecutor/votianlt/todo/service/package-info.java b/src/main/java/de/assecutor/votianlt/todo/service/package-info.java deleted file mode 100644 index b369f9e..0000000 --- a/src/main/java/de/assecutor/votianlt/todo/service/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@NullMarked -package de.assecutor.votianlt.todo.service; - -import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/de/assecutor/votianlt/todo/ui/view/package-info.java b/src/main/java/de/assecutor/votianlt/todo/ui/view/package-info.java deleted file mode 100644 index c803fa2..0000000 --- a/src/main/java/de/assecutor/votianlt/todo/ui/view/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -@NullMarked -package de.assecutor.votianlt.todo.ui.view; - -import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/de/assecutor/votianlt/util/Util.java b/src/main/java/de/assecutor/votianlt/util/Util.java new file mode 100644 index 0000000..661e4c4 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/util/Util.java @@ -0,0 +1,16 @@ +package de.assecutor.votianlt.util; + +import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.applayout.AppLayout; + +public class Util { + public static void changeDrawerState(boolean drawerState) { + AppLayout appLayout = (AppLayout) UI.getCurrent().getChildren() + .filter(AppLayout.class::isInstance) + .findFirst().orElse(null); + + if (appLayout != null) { + appLayout.setDrawerOpened(drawerState); + } + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a54f082..f06ab0a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -10,3 +10,6 @@ vaadin.allowed-packages=com.vaadin,org.vaadin,de.assecutor.votianlt # Open-in-view is only needed if you use lazy-loaded entities in your Flow views. spring.jpa.open-in-view=false + +# MongoDB +spring.data.mongodb.uri=mongodb://192.168.180.28:27017/votianlt \ No newline at end of file diff --git a/src/test/java/de/assecutor/votianlt/ArchitectureTest.java b/src/test/java/de/assecutor/votianlt/ArchitectureTest.java deleted file mode 100644 index 420f8dd..0000000 --- a/src/test/java/de/assecutor/votianlt/ArchitectureTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.assecutor.votianlt; - -import com.tngtech.archunit.junit.AnalyzeClasses; -import com.tngtech.archunit.junit.ArchTest; -import com.tngtech.archunit.lang.ArchRule; -import org.springframework.data.repository.Repository; -import org.springframework.transaction.annotation.Transactional; - -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; -import static com.tngtech.archunit.library.dependencies.SlicesRuleDefinition.slices; - -@AnalyzeClasses(packages = ArchitectureTest.BASE_PACKAGE) -class ArchitectureTest { - - static final String BASE_PACKAGE = "de.assecutor.votianlt"; - - // TODO Add your own rules and remove those that don't apply to your project - - @ArchTest - public static final ArchRule domain_model_should_not_depend_on_application_services = noClasses().that() - .resideInAPackage(BASE_PACKAGE + "..domain..").should().dependOnClassesThat() - .resideInAPackage(BASE_PACKAGE + "..service.."); - - @ArchTest - public static final ArchRule domain_model_should_not_depend_on_the_user_interface = noClasses().that() - .resideInAPackage(BASE_PACKAGE + "..domain..").should().dependOnClassesThat() - .resideInAnyPackage(BASE_PACKAGE + "..ui.."); - - @ArchTest - public static final ArchRule repositories_should_only_be_used_by_application_services_and_other_domain_classes = classes() - .that().areAssignableTo(Repository.class).should().onlyHaveDependentClassesThat() - .resideInAnyPackage(BASE_PACKAGE + "..domain..", BASE_PACKAGE + "..service.."); - - @ArchTest - public static final ArchRule repositories_should_only_be_accessed_by_transactional_classes = classes().that() - .areAssignableTo(Repository.class).should().onlyBeAccessed().byClassesThat() - .areAnnotatedWith(Transactional.class); - - @ArchTest - public static final ArchRule application_services_should_not_depend_on_the_user_interface = noClasses().that() - .resideInAPackage(BASE_PACKAGE + "..service..").should().dependOnClassesThat() - .resideInAnyPackage(BASE_PACKAGE + "..ui.."); - - @ArchTest - public static final ArchRule there_should_not_be_circular_dependencies_between_feature_packages = slices() - .matching(BASE_PACKAGE + ".(*)..").should().beFreeOfCycles(); -} diff --git a/src/test/java/de/assecutor/votianlt/todo/service/TodoServiceIT.java b/src/test/java/de/assecutor/votianlt/todo/service/TodoServiceIT.java deleted file mode 100644 index fee5836..0000000 --- a/src/test/java/de/assecutor/votianlt/todo/service/TodoServiceIT.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.assecutor.votianlt.todo.service; - -import de.assecutor.votianlt.todo.domain.Todo; -import de.assecutor.votianlt.todo.domain.TodoRepository; -import jakarta.validation.ValidationException; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.domain.PageRequest; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - -import java.time.Clock; -import java.time.LocalDate; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) -@Transactional(propagation = Propagation.NOT_SUPPORTED) -class TodoServiceIT { - - @Autowired - TodoService todoService; - - @Autowired - TodoRepository todoRepository; - - @Autowired - Clock clock; - - @AfterEach - void cleanUp() { - todoRepository.deleteAll(); - } - - @Test - public void todos_are_stored_in_the_database_with_the_current_timestamp() { - var now = clock.instant(); - var due = LocalDate.of(2025, 2, 7); - todoService.createTodo("Do this", due); - assertThat(todoService.list(PageRequest.ofSize(1))).singleElement() - .matches(todo -> todo.getDescription().equals("Do this") && due.equals(todo.getDueDate()) - && todo.getCreationDate().isAfter(now)); - } - - @Test - public void todos_are_validated_before_they_are_stored() { - assertThatThrownBy(() -> todoService.createTodo("X".repeat(Todo.DESCRIPTION_MAX_LENGTH + 1), null)) - .isInstanceOf(ValidationException.class); - assertThat(todoRepository.count()).isEqualTo(0); - } -}