Синхронизация сообщений для офлайн пользователей в группах
This commit is contained in:
@@ -3,15 +3,20 @@ package im.rosetta.database.entity;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import im.rosetta.database.CreateUpdateEntity;
|
||||
import im.rosetta.database.converters.StringListConverter;
|
||||
import org.hibernate.annotations.Cascade;
|
||||
import org.hibernate.annotations.CascadeType;
|
||||
|
||||
import im.rosetta.database.CreateUpdateEntity;
|
||||
import jakarta.persistence.CollectionTable;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.OrderColumn;
|
||||
import jakarta.persistence.Table;
|
||||
|
||||
/**
|
||||
@@ -28,13 +33,20 @@ public class Group extends CreateUpdateEntity {
|
||||
@Column(name = "groupId")
|
||||
private String groupId;
|
||||
|
||||
@Convert(converter = StringListConverter.class)
|
||||
@Column(name = "membersPublicKeys", nullable = false, columnDefinition = "TEXT")
|
||||
private List<String> membersPublicKeys = new ArrayList<>();
|
||||
|
||||
@Convert(converter = StringListConverter.class)
|
||||
@Column(name = "bannedPublicKeys", nullable = false, columnDefinition = "TEXT")
|
||||
private List<String> bannedPublicKeys = new ArrayList<>();
|
||||
@ElementCollection(fetch = FetchType.LAZY)
|
||||
@CollectionTable(name = "group_members", joinColumns = @JoinColumn(name = "group_id"))
|
||||
@Column(name = "public_key", nullable = false, columnDefinition = "TEXT")
|
||||
@OrderColumn(name = "order_index")
|
||||
@Cascade({ CascadeType.ALL, CascadeType.DELETE_ORPHAN })
|
||||
private List<String> membersPublicKeys = new ArrayList<>();
|
||||
|
||||
@ElementCollection(fetch = FetchType.LAZY)
|
||||
@CollectionTable(name = "group_banned", joinColumns = @JoinColumn(name = "group_id"))
|
||||
@Column(name = "public_key", nullable = false, columnDefinition = "TEXT")
|
||||
@OrderColumn(name = "order_index")
|
||||
@Cascade({ CascadeType.ALL, CascadeType.DELETE_ORPHAN })
|
||||
private List<String> bannedPublicKeys = new ArrayList<>();
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
|
||||
Reference in New Issue
Block a user