entities for messages

This commit is contained in:
Stepan Usatiuk
2023-12-17 20:45:06 +01:00
parent 38de33fee5
commit 8ee79ba2b6
3 changed files with 74 additions and 0 deletions

View File

@@ -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<Long> {
@Id
@GeneratedValue
private Long id;
@NotBlank
private String name;
@OneToMany(mappedBy = "chat")
private Collection<Message> messages = new ArrayList<>();
@ManyToMany(mappedBy = "chats")
private Collection<Person> users;
}

View File

@@ -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<Long> {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private Chat chat;
@ManyToOne
private Person author;
@Lob
@NotBlank
private String contents;
}

View File

@@ -37,6 +37,9 @@ public class Person implements EntityWithId<String> {
@OneToMany(mappedBy = "author")
private Collection<Post> posts = new ArrayList<>();
@OneToMany(mappedBy = "author")
private Collection<Message> messages = new ArrayList<>();
@ManyToMany
@JoinTable(name = "user_follows",
joinColumns = @JoinColumn(name = "follower"),
@@ -46,6 +49,12 @@ public class Person implements EntityWithId<String> {
@ManyToMany(mappedBy = "following")
private Collection<Person> followers;
@ManyToMany
@JoinTable(name = "user_chat",
joinColumns = @JoinColumn(name = "user"),
inverseJoinColumns = @JoinColumn(name = "chat"))
private Collection<Chat> chats;
@Override
public String getId() {
return uuid;