From e4df63752ec2459798cb9ffd3a6cd28e63a850ec Mon Sep 17 00:00:00 2001
From: Paul Cancel <paul.cancel.etu@univ-lille.fr>
Date: Tue, 26 Nov 2024 11:50:04 +0100
Subject: [PATCH] Ajout dao et dto

---
 pom.xml                                       |  4 ++
 .../infoetu/MeetingPlannr/pojo/Meeting.java   | 37 +++++++++++++
 .../infoetu/MeetingPlannr/pojo/Request.java   | 28 ++++++++++
 .../but/infoetu/MeetingPlannr/pojo/User.java  | 53 +++++++++++++++++++
 .../repository/MeetingRepository.java         |  9 ++++
 .../repository/RequestRepository.java         |  9 ++++
 .../repository/UserRepository.java            |  9 ++++
 7 files changed, 149 insertions(+)
 create mode 100644 src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Meeting.java
 create mode 100644 src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Request.java
 create mode 100644 src/main/java/fr/but/infoetu/MeetingPlannr/pojo/User.java
 create mode 100644 src/main/java/fr/but/infoetu/MeetingPlannr/repository/MeetingRepository.java
 create mode 100644 src/main/java/fr/but/infoetu/MeetingPlannr/repository/RequestRepository.java
 create mode 100644 src/main/java/fr/but/infoetu/MeetingPlannr/repository/UserRepository.java

diff --git a/pom.xml b/pom.xml
index f6f35e0..39fff25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,6 +60,10 @@
 			<artifactId>spring-boot-starter-test</artifactId>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-validation</artifactId>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Meeting.java b/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Meeting.java
new file mode 100644
index 0000000..724a4f7
--- /dev/null
+++ b/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Meeting.java
@@ -0,0 +1,37 @@
+package fr.but.infoetu.MeetingPlannr.pojo;
+
+import java.sql.Date;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.validation.constraints.NotNull;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Entity
+@AllArgsConstructor
+@Data
+@NoArgsConstructor
+public class Meeting {
+    private static final String REQUIRED = "is required";
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private int mno;
+
+    @ManyToOne
+    @JoinColumn(name = "rno")
+    private Request request;
+
+    @ManyToOne
+    @JoinColumn(name = "rno")
+    private User user;
+
+    @NotNull(message = REQUIRED)
+    private Date date;
+}
diff --git a/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Request.java b/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Request.java
new file mode 100644
index 0000000..002d7ab
--- /dev/null
+++ b/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/Request.java
@@ -0,0 +1,28 @@
+package fr.but.infoetu.MeetingPlannr.pojo;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.validation.constraints.NotNull;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Entity
+@AllArgsConstructor
+@Data
+@NoArgsConstructor
+public class Request {
+    private static final String REQUIRED = "is required";
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private int rno;
+
+    @NotNull(message = REQUIRED)
+    private String reason;
+
+    @NotNull(message = REQUIRED)
+    private String description;
+}
diff --git a/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/User.java b/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/User.java
new file mode 100644
index 0000000..4ae05b3
--- /dev/null
+++ b/src/main/java/fr/but/infoetu/MeetingPlannr/pojo/User.java
@@ -0,0 +1,53 @@
+package fr.but.infoetu.MeetingPlannr.pojo;
+
+import java.sql.Date;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.PastOrPresent;
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.Size;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Entity
+@AllArgsConstructor
+@Data
+@NoArgsConstructor
+public class User {
+    private static final String REQUIRED = "is required";
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private int uno;
+
+    @NotNull(message = REQUIRED)
+    @Email(message = "email not valid")
+    private String email;
+
+    @NotNull(message = REQUIRED)
+    private String name;
+
+    @NotNull(message = REQUIRED)
+    private String surname;
+
+    @NotNull(message = REQUIRED)
+    @Pattern(
+        regexp = "^0[1-9]([-. ]?[0-9]{2}){4}$", 
+        message = "invalid phone number"
+    )
+    private String phoneNumber;
+
+    @NotNull(message = REQUIRED)
+    @PastOrPresent(message = "date must be within the past")
+    private Date birthdate;
+
+    @NotNull(message = REQUIRED)
+    @Size(min = 8, message = "password too short")
+    private String password;
+}
diff --git a/src/main/java/fr/but/infoetu/MeetingPlannr/repository/MeetingRepository.java b/src/main/java/fr/but/infoetu/MeetingPlannr/repository/MeetingRepository.java
new file mode 100644
index 0000000..d4225a7
--- /dev/null
+++ b/src/main/java/fr/but/infoetu/MeetingPlannr/repository/MeetingRepository.java
@@ -0,0 +1,9 @@
+package fr.but.infoetu.MeetingPlannr.repository;
+
+import org.springframework.data.repository.CrudRepository;
+
+import fr.but.infoetu.MeetingPlannr.pojo.Meeting;
+
+public interface MeetingRepository extends CrudRepository<Meeting, Integer>{
+    
+}
diff --git a/src/main/java/fr/but/infoetu/MeetingPlannr/repository/RequestRepository.java b/src/main/java/fr/but/infoetu/MeetingPlannr/repository/RequestRepository.java
new file mode 100644
index 0000000..6385482
--- /dev/null
+++ b/src/main/java/fr/but/infoetu/MeetingPlannr/repository/RequestRepository.java
@@ -0,0 +1,9 @@
+package fr.but.infoetu.MeetingPlannr.repository;
+
+import org.springframework.data.repository.CrudRepository;
+
+import fr.but.infoetu.MeetingPlannr.pojo.Request;
+
+public interface RequestRepository extends CrudRepository<Request, Integer>{
+    
+}
diff --git a/src/main/java/fr/but/infoetu/MeetingPlannr/repository/UserRepository.java b/src/main/java/fr/but/infoetu/MeetingPlannr/repository/UserRepository.java
new file mode 100644
index 0000000..3905be5
--- /dev/null
+++ b/src/main/java/fr/but/infoetu/MeetingPlannr/repository/UserRepository.java
@@ -0,0 +1,9 @@
+package fr.but.infoetu.MeetingPlannr.repository;
+
+import org.springframework.data.repository.CrudRepository;
+
+import fr.but.infoetu.MeetingPlannr.pojo.User;
+
+public interface UserRepository extends CrudRepository<User, Integer>{
+    
+}
-- 
GitLab