Mercury-IM/data/src/main/java/org/mercury_im/messenger/data/model/AbstractPeerModel.java

57 lines
1.4 KiB
Java
Raw Normal View History

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