2019-11-18 23:51:27 +01:00
|
|
|
package org.mercury_im.messenger.data.model;
|
|
|
|
|
2019-12-02 00:37:35 +01:00
|
|
|
import org.mercury_im.messenger.data.converter.SubscriptionDirectionConverter;
|
2019-12-21 05:34:19 +01:00
|
|
|
import org.mercury_im.messenger.entity.contact.SubscriptionDirection;
|
2019-12-02 00:37:35 +01:00
|
|
|
|
2019-12-21 16:30:14 +01:00
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
import io.requery.CascadeAction;
|
2019-10-28 14:56:56 +01:00
|
|
|
import io.requery.Column;
|
2019-12-02 00:37:35 +01:00
|
|
|
import io.requery.Convert;
|
2019-10-28 14:56:56 +01:00
|
|
|
import io.requery.Entity;
|
2019-11-23 21:16:03 +01:00
|
|
|
import io.requery.ForeignKey;
|
2019-10-28 14:56:56 +01:00
|
|
|
import io.requery.Generated;
|
2019-12-22 02:06:51 +01:00
|
|
|
import io.requery.Index;
|
2019-10-28 14:56:56 +01:00
|
|
|
import io.requery.Key;
|
|
|
|
import io.requery.ManyToOne;
|
|
|
|
import io.requery.Persistable;
|
2019-12-21 16:30:14 +01:00
|
|
|
import io.requery.ReferentialAction;
|
2019-10-28 14:56:56 +01:00
|
|
|
import io.requery.Table;
|
2019-12-21 16:30:14 +01:00
|
|
|
import io.requery.converter.UUIDConverter;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
|
|
|
@Entity
|
2019-12-22 02:06:51 +01:00
|
|
|
@Table(name = "contacts", uniqueIndexes = "unique_address")
|
2019-11-18 00:04:28 +01:00
|
|
|
public abstract class AbstractPeerModel implements Persistable {
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2019-12-21 16:30:14 +01:00
|
|
|
@Key
|
|
|
|
@Convert(UUIDConverter.class)
|
|
|
|
UUID id;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2019-12-22 02:06:51 +01:00
|
|
|
@Index("unique_address")
|
2019-12-21 16:30:14 +01:00
|
|
|
@ManyToOne(cascade = CascadeAction.NONE)
|
2019-11-23 21:16:03 +01:00
|
|
|
@ForeignKey(referencedColumn = "id")
|
2019-10-28 14:56:56 +01:00
|
|
|
AccountModel account;
|
|
|
|
|
2019-12-22 02:06:51 +01:00
|
|
|
@Index("unique_address")
|
2019-10-28 14:56:56 +01:00
|
|
|
@Column(nullable = false)
|
2019-11-18 00:04:28 +01:00
|
|
|
String address;
|
2019-10-28 14:56:56 +01:00
|
|
|
|
2019-12-02 00:37:35 +01:00
|
|
|
@Column
|
|
|
|
String name;
|
|
|
|
|
|
|
|
@Convert(SubscriptionDirectionConverter.class)
|
|
|
|
SubscriptionDirection subscriptionDirection;
|
|
|
|
|
|
|
|
boolean subscriptionPending;
|
|
|
|
|
|
|
|
boolean subscriptionPreApproved;
|
|
|
|
|
2019-10-28 14:56:56 +01:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
2019-12-02 00:37:35 +01:00
|
|
|
return "Peer[" + id + ", " +
|
|
|
|
name + ", " +
|
2019-11-18 00:04:28 +01:00
|
|
|
address + ", " +
|
2019-10-28 14:56:56 +01:00
|
|
|
account + "]";
|
|
|
|
}
|
|
|
|
}
|