package devopsdistilled.operp.server.data.entity.party;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import devopsdistilled.operp.server.data.entity.Entiti;
import devopsdistilled.operp.server.data.entity.account.Account;
import devopsdistilled.operp.server.data.entity.commons.ContactInfo;
@MappedSuperclass
public abstract class Party<A extends Account<?>> extends Entiti<Long> {
private static final long serialVersionUID = 5183636412272320506L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long partyId;
private String partyName;
private String panVat;
@OneToOne(cascade = CascadeType.ALL)
protected A account;
@OneToOne(cascade = CascadeType.ALL)
private ContactInfo contactInfo;
@Temporal(TemporalType.DATE)
private Date registeredDate;
public Long getPartyId() {
return partyId;
}
public void setPartyId(Long partyId) {
this.partyId = partyId;
}
public String getPartyName() {
return partyName;
}
public void setPartyName(String partyName) {
this.partyName = partyName;
}
public String getPanVat() {
return panVat;
}
public void setPanVat(String panVat) {
this.panVat = panVat;
}
public A getAccount() {
return account;
}
public void setAccount(A account) {
this.account = account;
}
public ContactInfo getContactInfo() {
return contactInfo;
}
public void setContactInfo(ContactInfo contactInfo) {
this.contactInfo = contactInfo;
}
public Date getRegisteredDate() {
return registeredDate;
}
public void setRegisteredDate(Date registeredDate) {
this.registeredDate = registeredDate;
}
@Override
public Long id() {
return getPartyId();
}
@Override
public String toString() {
return new String(getPartyId() + ": " + getPartyName());
}
}