From 27eb32a92b515c12d5ab5bf9343fd21f3b943a10 Mon Sep 17 00:00:00 2001
From: Petr Kabelka <xkabelka@fi.muni.cz>
Date: Tue, 26 Mar 2024 14:09:56 +0100
Subject: [PATCH] feat(personnel): added missing columns and validation

---
 .../personnel/model/MovieRole.java            | 13 ++++++++-
 .../personnel/model/Person.java               |  2 +-
 .../personnel/model/PersonMovieRole.java      | 27 +++++++++++++++++++
 .../personnel/model/PersonRole.java           | 17 ------------
 personnel/src/main/resources/application.yml  | 17 ++++++++++++
 pom.xml                                       |  4 +++
 6 files changed, 61 insertions(+), 19 deletions(-)
 create mode 100644 personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonMovieRole.java
 delete mode 100644 personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonRole.java
 create mode 100644 personnel/src/main/resources/application.yml

diff --git a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/MovieRole.java b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/MovieRole.java
index d7f555e..e16e12f 100644
--- a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/MovieRole.java
+++ b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/MovieRole.java
@@ -1,8 +1,10 @@
 package com.example.pa165_project_movies.personnel.model;
 
 import jakarta.persistence.*;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
+import java.time.OffsetDateTime;
 import java.util.UUID;
 
 @Entity
@@ -13,8 +15,17 @@ public class MovieRole {
     private UUID id;
 
     @Column
+    @NotNull
     private String name;
 
-    @Column
+    @Column(columnDefinition = "LONGTEXT")
+    @NotNull
     private String description;
+
+    @Column
+    @NotNull
+    private OffsetDateTime dateOfCreation;
+
+    @Column
+    private OffsetDateTime dateOfDeletion;
 }
diff --git a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/Person.java b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/Person.java
index 767c44d..afb67db 100644
--- a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/Person.java
+++ b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/Person.java
@@ -22,7 +22,7 @@ public class Person {
     @NotNull
     private String familyName;
 
-    @Column
+    @Column(columnDefinition = "LONGTEXT")
     @NotNull
     private String description;
 
diff --git a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonMovieRole.java b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonMovieRole.java
new file mode 100644
index 0000000..17da3af
--- /dev/null
+++ b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonMovieRole.java
@@ -0,0 +1,27 @@
+package com.example.pa165_project_movies.personnel.model;
+
+import jakarta.persistence.*;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.time.OffsetDateTime;
+import java.util.UUID;
+
+@Entity
+@Data
+public class PersonMovieRole {
+    @Id
+    @GeneratedValue(strategy = GenerationType.UUID)
+    private UUID id;
+
+    @Column(columnDefinition = "LONGTEXT")
+    @NotNull
+    private String description;
+
+    @Column
+    @NotNull
+    private OffsetDateTime dateOfCreation;
+
+    @Column
+    private OffsetDateTime dateOfDeletion;
+}
diff --git a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonRole.java b/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonRole.java
deleted file mode 100644
index 254558e..0000000
--- a/personnel/src/main/java/com/example/pa165_project_movies/personnel/model/PersonRole.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.example.pa165_project_movies.personnel.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.util.UUID;
-
-@Entity
-@Data
-public class PersonRole {
-    @Id
-    @GeneratedValue(strategy = GenerationType.UUID)
-    private UUID id;
-
-    @Column
-    private String description;
-}
diff --git a/personnel/src/main/resources/application.yml b/personnel/src/main/resources/application.yml
new file mode 100644
index 0000000..5d76c4a
--- /dev/null
+++ b/personnel/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+  port: 8081
+spring:
+  jpa:
+#    show-sql: true
+#    hibernate:
+#      ddl-auto: create-drop
+    properties:
+      hibernate:
+        validator:
+          apply_to_ddl: true
+springdoc:
+  api-docs:
+    path: /openapi
+  swagger-ui:
+    path: /swagger-ui.html
+    tryItOutEnabled: false
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 2acbf06..9b34ec0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,10 @@
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-data-jpa</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-validation</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-web</artifactId>
-- 
GitLab