From 98c889a0cccba4e9e24e48283a589cb2bb41114a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D1=8F?= Date: Sat, 7 Dec 2024 14:00:18 +0400 Subject: [PATCH] feat: add class for models: trainig, orders, training_exam. Add relationship between their. --- .idea/.gitignore | 3 ++ .idea/PutBit.iml | 9 ++++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 +++ app/.mvn/wrapper/maven-wrapper.properties | 19 +++++++ app/data.mv.db | Bin 0 -> 32768 bytes app/src/main/java/putBit/app/models/Exam.java | 3 ++ .../java/putBit/app/models/ExamResult.java | 2 +- .../main/java/putBit/app/models/Order.java | 27 ++++++++++ .../main/java/putBit/app/models/Training.java | 47 ++++++++++++++++++ .../java/putBit/app/models/TrainingExam.java | 32 ++++++++++++ app/src/main/java/putBit/app/models/User.java | 2 + 13 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/PutBit.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 app/.mvn/wrapper/maven-wrapper.properties create mode 100644 app/data.mv.db create mode 100644 app/src/main/java/putBit/app/models/Order.java create mode 100644 app/src/main/java/putBit/app/models/Training.java create mode 100644 app/src/main/java/putBit/app/models/TrainingExam.java 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/PutBit.iml b/.idea/PutBit.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/PutBit.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..03f397c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..04b60dd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ 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 diff --git a/app/.mvn/wrapper/maven-wrapper.properties b/app/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..d58dfb7 --- /dev/null +++ b/app/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +wrapperVersion=3.3.2 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip diff --git a/app/data.mv.db b/app/data.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..1add6d422c4d230c17769ea31afad0419f047b69 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/putBit/app/models/Exam.java b/app/src/main/java/putBit/app/models/Exam.java index 34e2195..2b601df 100644 --- a/app/src/main/java/putBit/app/models/Exam.java +++ b/app/src/main/java/putBit/app/models/Exam.java @@ -26,4 +26,7 @@ public class Exam { @OneToMany(fetch = FetchType.EAGER, mappedBy = "exam") List users; + + @OneToMany(fetch = FetchType.EAGER, mappedBy = "exam") + List trainings; } diff --git a/app/src/main/java/putBit/app/models/ExamResult.java b/app/src/main/java/putBit/app/models/ExamResult.java index ca90a71..dbcaae3 100644 --- a/app/src/main/java/putBit/app/models/ExamResult.java +++ b/app/src/main/java/putBit/app/models/ExamResult.java @@ -25,7 +25,7 @@ public class ExamResult { @JoinColumn(name = "exam_id", nullable = false) private Exam exam ; - @Column(name = "points", unique = true, nullable = false, length = 3) + @Column(name = "points", nullable = false, length = 3) private int points ; } diff --git a/app/src/main/java/putBit/app/models/Order.java b/app/src/main/java/putBit/app/models/Order.java new file mode 100644 index 0000000..340fa05 --- /dev/null +++ b/app/src/main/java/putBit/app/models/Order.java @@ -0,0 +1,27 @@ +package putBit.app.models; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Entity(name = "orders") +public class Order { + + @Id + @OneToOne + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne + @JoinColumn(name = "training_id") + Training training; + + @Column(name = "confirm", columnDefinition = "boolean") + Boolean confirm = false; +} diff --git a/app/src/main/java/putBit/app/models/Training.java b/app/src/main/java/putBit/app/models/Training.java new file mode 100644 index 0000000..8c1c078 --- /dev/null +++ b/app/src/main/java/putBit/app/models/Training.java @@ -0,0 +1,47 @@ +package putBit.app.models; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Entity(name = "trainings") +public class Training { + + @Id + @GeneratedValue + @Column(name = "id") + private int id; + + @Column(name = "num", unique = true, nullable = false, length = 50) + private String num ; + + @Column(name = "title", unique = true, nullable = false, length = 50) + private String title ; + + @Column(name = "desc", nullable = false, length = 300) + private String desc ; + + @Column(name = "prof", unique = true, nullable = false, length = 300) + private String prof ; + + @Column(name = "basic_places", nullable = false, length = 3) + private int basic_places ; + + @Column(name = "benefit_places", nullable = false, length = 3) + private int benefit_places ; + + @OneToMany(fetch = FetchType.EAGER, mappedBy = "training") + List exams; + + @OneToMany(fetch = FetchType.EAGER, mappedBy = "training") + List orders; + +} diff --git a/app/src/main/java/putBit/app/models/TrainingExam.java b/app/src/main/java/putBit/app/models/TrainingExam.java new file mode 100644 index 0000000..08ff75e --- /dev/null +++ b/app/src/main/java/putBit/app/models/TrainingExam.java @@ -0,0 +1,32 @@ +package putBit.app.models; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Entity(name = "training_exams") +public class TrainingExam { + + @Id + @GeneratedValue + @Column(name = "id") + private int id; + + @ManyToOne + @JoinColumn(name = "training_id", nullable = false) + private Training training ; + + @ManyToOne + @JoinColumn(name = "exam_id", nullable = false) + private Exam exam ; + + @Column(name = "points", nullable = false, length = 3) + private int points ; + +} diff --git a/app/src/main/java/putBit/app/models/User.java b/app/src/main/java/putBit/app/models/User.java index f875042..12df43a 100644 --- a/app/src/main/java/putBit/app/models/User.java +++ b/app/src/main/java/putBit/app/models/User.java @@ -58,4 +58,6 @@ public class User { @OneToMany(fetch = FetchType.EAGER, mappedBy = "user") List exams; + @OneToOne(fetch = FetchType.EAGER, mappedBy = "user" ) + Order order; }