From e536d11fc121f32215d3d7aaafda2ef6f87efa48 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C5=BEbeta=20Hajn=C3=A1?= <xhajna@fi.muni.cz>
Date: Sun, 16 Apr 2023 16:46:33 +0200
Subject: [PATCH] feat(core): validaion annotations

---
 .../java/cz/muni/pa165/data/model/CarComponent.java |  5 ++++-
 .../java/cz/muni/pa165/data/model/Department.java   |  3 ++-
 .../main/java/cz/muni/pa165/data/model/Driver.java  | 13 ++++++++++---
 .../java/cz/muni/pa165/data/model/Engineer.java     |  5 +++--
 4 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java b/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java
index 8876317..f5641c0 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java
@@ -4,6 +4,8 @@ import cz.muni.pa165.data.enums.ComponentTypeEnum;
 import jakarta.annotation.Nonnull;
 import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.Positive;
 
 import java.io.Serializable;
 import java.util.Objects;
@@ -18,9 +20,10 @@ public class CarComponent extends DomainObject implements Serializable {
     private ComponentTypeEnum componentType;
 
     @Nonnull
+    @Positive
     private Double weight;
 
-    @Nonnull
+    @NotEmpty
     private String information;
 
     @ManyToOne(fetch = FetchType.LAZY)
diff --git a/core/src/main/java/cz/muni/pa165/data/model/Department.java b/core/src/main/java/cz/muni/pa165/data/model/Department.java
index 9e2726f..6914da6 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Department.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Department.java
@@ -3,6 +3,7 @@ package cz.muni.pa165.data.model;
 import jakarta.annotation.Nonnull;
 import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
+import jakarta.validation.constraints.NotEmpty;
 
 import java.io.Serializable;
 import java.util.Objects;
@@ -12,7 +13,7 @@ import java.util.Set;
 @Table(name = "department")
 public class Department extends DomainObject implements Serializable {
 
-    @Nonnull
+    @NotEmpty
     private String specialization;
 
     @OneToMany(fetch = FetchType.LAZY,
diff --git a/core/src/main/java/cz/muni/pa165/data/model/Driver.java b/core/src/main/java/cz/muni/pa165/data/model/Driver.java
index d5058f4..efa7bad 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Driver.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Driver.java
@@ -4,6 +4,10 @@ import cz.muni.pa165.data.enums.CharacteristicsEnum;
 import jakarta.annotation.Nonnull;
 import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.Past;
 
 import java.io.Serializable;
 import java.time.LocalDate;
@@ -14,19 +18,22 @@ import java.util.Set;
 @Table(name = "driver")
 public class Driver extends DomainObject implements Serializable {
 
-    @Nonnull
+    @NotEmpty
     private String name;
 
-    @Nonnull
+    @NotEmpty
     private String surname;
 
     @Nullable
+    @Min(100)
+    @Max(300)
     private Integer height;
 
     @Nullable
+    @Past
     private LocalDate birthday;
 
-    @Nonnull
+    @NotEmpty
     private String nationality;
 
     @ElementCollection(targetClass = CharacteristicsEnum.class)
diff --git a/core/src/main/java/cz/muni/pa165/data/model/Engineer.java b/core/src/main/java/cz/muni/pa165/data/model/Engineer.java
index 050f88c..b427f07 100644
--- a/core/src/main/java/cz/muni/pa165/data/model/Engineer.java
+++ b/core/src/main/java/cz/muni/pa165/data/model/Engineer.java
@@ -3,6 +3,7 @@ package cz.muni.pa165.data.model;
 import jakarta.annotation.Nonnull;
 import jakarta.annotation.Nullable;
 import jakarta.persistence.*;
+import jakarta.validation.constraints.NotEmpty;
 
 import java.io.Serializable;
 import java.util.Objects;
@@ -11,10 +12,10 @@ import java.util.Objects;
 @Table(name = "engineer")
 public class Engineer extends DomainObject implements Serializable {
 
-    @Nonnull
+    @NotEmpty
     private String name;
 
-    @Nonnull
+    @NotEmpty
     private String surname;
 
     @ManyToOne(fetch = FetchType.LAZY)
-- 
GitLab