Database creation (Tables)
This commit is contained in:
		| @ -16,6 +16,8 @@ repositories { | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
| 	compileOnly("org.projectlombok:lombok") | ||||
| 	annotationProcessor("org.projectlombok:lombok") | ||||
| 	implementation("org.springframework.boot:spring-boot-starter-jdbc") | ||||
| 	implementation("org.springframework.boot:spring-boot-starter-data-jpa") | ||||
| 	implementation("org.springframework.boot:spring-boot-starter-mail") | ||||
|  | ||||
| @ -1,6 +1,10 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import ovh.herisson.Clyde.Tables.Msg.Forum; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| @ -17,6 +21,11 @@ public class Course { | ||||
|     @JoinColumn(name = "Users") | ||||
|     private User owner; | ||||
|  | ||||
| 	//// Extension Messagerie ///// | ||||
| 	@OneToMany | ||||
| 	private List<Forum> forums; | ||||
| 	/////////////////////////////// | ||||
|  | ||||
|     public Course(int credits, String title, User owner){ | ||||
|         this.credits = credits; | ||||
|         this.title = title; | ||||
|  | ||||
| @ -0,0 +1,32 @@ | ||||
| package ovh.herisson.Clyde.Tables.Msg; | ||||
|  | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| import org.hibernate.annotations.CreationTimestamp; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import lombok.Data; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| @Entity | ||||
| @Data | ||||
| public class Answers { | ||||
| 	@Id | ||||
| 	@GeneratedValue(strategy = GenerationType.AUTO) | ||||
| 	private int id; | ||||
|  | ||||
| 	@CreationTimestamp | ||||
| 	private Date creation; | ||||
|  | ||||
| 	@ManyToOne | ||||
| 	private Topic topic; | ||||
|  | ||||
| 	private String content; | ||||
|  | ||||
| 	@OneToOne | ||||
| 	private User author; | ||||
|  | ||||
| 	private boolean anonymous; | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,28 @@ | ||||
| package ovh.herisson.Clyde.Tables.Msg; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import lombok.Data; | ||||
| import ovh.herisson.Clyde.Tables.Course; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| @Entity | ||||
| @Data | ||||
| public class Forum { | ||||
|  | ||||
| 	@Id | ||||
| 	@GeneratedValue(strategy = GenerationType.AUTO) | ||||
| 	private int id; | ||||
|  | ||||
| 	@ManyToOne(cascade = CascadeType.ALL) | ||||
| 	private Course course; | ||||
|  | ||||
| 	private String name; | ||||
|  | ||||
| 	@OneToMany | ||||
| 	private List<User> writers; // User who are authorized to create a post | ||||
|  | ||||
| 	@OneToMany | ||||
| 	private List<User> register; | ||||
| } | ||||
| @ -0,0 +1,26 @@ | ||||
| package ovh.herisson.Clyde.Tables.Msg; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import lombok.Data; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| @Entity | ||||
| @Data | ||||
| public class Topic { | ||||
|  | ||||
| 	@Id | ||||
| 	@GeneratedValue(strategy = GenerationType.AUTO) | ||||
| 	private int id; | ||||
|  | ||||
| 	private String subject, content; | ||||
|  | ||||
| 	@OneToOne | ||||
| 	private User author; | ||||
| 	 | ||||
| 	@OneToMany(mappedBy = "topic", cascade = CascadeType.ALL) | ||||
| 	private List<Answers> answers; | ||||
|  | ||||
| 	private boolean locked; // true if new messages can be posted | ||||
| } | ||||
		Reference in New Issue
	
	Block a user