diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java new file mode 100644 index 0000000..fc5f4fd --- /dev/null +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java @@ -0,0 +1,34 @@ +package com.usatiuk.tjv.y.server.entity; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.util.ArrayList; +import java.util.Collection; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@ToString +@Accessors(chain = true) +public class Chat implements EntityWithId { + @Id + @GeneratedValue + private Long id; + + @NotBlank + private String name; + + @OneToMany(mappedBy = "chat") + private Collection messages = new ArrayList<>(); + + @ManyToMany(mappedBy = "chats") + private Collection users; + +} diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java new file mode 100644 index 0000000..0414066 --- /dev/null +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java @@ -0,0 +1,31 @@ +package com.usatiuk.tjv.y.server.entity; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@ToString +@Accessors(chain = true) +public class Message implements EntityWithId { + @Id + @GeneratedValue + private Long id; + + @ManyToOne + private Chat chat; + + @ManyToOne + private Person author; + + @Lob + @NotBlank + private String contents; +} diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java index c97cb82..70d3baf 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java @@ -37,6 +37,9 @@ public class Person implements EntityWithId { @OneToMany(mappedBy = "author") private Collection posts = new ArrayList<>(); + @OneToMany(mappedBy = "author") + private Collection messages = new ArrayList<>(); + @ManyToMany @JoinTable(name = "user_follows", joinColumns = @JoinColumn(name = "follower"), @@ -46,6 +49,12 @@ public class Person implements EntityWithId { @ManyToMany(mappedBy = "following") private Collection followers; + @ManyToMany + @JoinTable(name = "user_chat", + joinColumns = @JoinColumn(name = "user"), + inverseJoinColumns = @JoinColumn(name = "chat")) + private Collection chats; + @Override public String getId() { return uuid;