diff --git a/pom.xml b/pom.xml index f6f35e0f21bf73fa5e3ec792cb788640471aecaa..39fff25f0769e449ac776a1e0e2ce078eb4d20b6 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 0000000000000000000000000000000000000000..724a4f728abf803e4c184e74a620905a31d14e09 --- /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 0000000000000000000000000000000000000000..002d7abcd621753b914d18111fbe73031b71767e --- /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 0000000000000000000000000000000000000000..4ae05b33a3bf8c83b2a06289fb81a4062d237443 --- /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 0000000000000000000000000000000000000000..d4225a7c86c62281e156772b65319f2cd6a5cef8 --- /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 0000000000000000000000000000000000000000..6385482b73888c11a57d80678e7b7ac2103eb131 --- /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 0000000000000000000000000000000000000000..3905be5a4e747829a4161735f2e74a11f1caa7ef --- /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>{ + +}