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

57 lines
1.4 KiB
Java

package org.mercury_im.messenger.data.model;
import org.mercury_im.messenger.data.converter.SubscriptionDirectionConverter;
import org.mercury_im.messenger.entity.contact.SubscriptionDirection;
import java.util.UUID;
import io.requery.CascadeAction;
import io.requery.Column;
import io.requery.Convert;
import io.requery.Entity;
import io.requery.ForeignKey;
import io.requery.Generated;
import io.requery.Index;
import io.requery.Key;
import io.requery.ManyToOne;
import io.requery.Persistable;
import io.requery.ReferentialAction;
import io.requery.Table;
import io.requery.converter.UUIDConverter;
@Entity
@Table(name = "contacts", uniqueIndexes = "unique_address")
public abstract class AbstractPeerModel implements Persistable {
@Key
@Convert(UUIDConverter.class)
UUID id;
@Index("unique_address")
@ManyToOne(cascade = CascadeAction.NONE)
@ForeignKey(referencedColumn = "id")
AccountModel account;
@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 + "]";
}
}