package miage.ecom.entity;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Lou
*/
@Entity
@Table(name = "customer_order")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "CustomerOrder.findAll", query = "SELECT c FROM CustomerOrder c"),
@NamedQuery(name = "CustomerOrder.findByIdOrder", query = "SELECT c FROM CustomerOrder c WHERE c.idOrder = :idOrder"),
@NamedQuery(name = "CustomerOrder.findByShippingAddress", query = "SELECT c FROM CustomerOrder c WHERE c.shippingAddress = :shippingAddress"),
@NamedQuery(name = "CustomerOrder.findByCreationDate", query = "SELECT c FROM CustomerOrder c WHERE c.creationDate = :creationDate")
})
public class CustomerOrder implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "id_order", unique = true, nullable = false)
private Integer idOrder;
@Size(max = 200)
@Column(name = "shipping_address")
private String shippingAddress;
@Column(name = "creation_date")
@Temporal(TemporalType.DATE)
private Date creationDate;
@Column(name = "total_value")
private Long totalValue;
@OneToMany(cascade=CascadeType.ALL, mappedBy = "customerOrder")
private Collection<Purchase> purchaseCollection;
@JoinColumn(name = "id_status")
@ManyToOne
private Status status;
@ManyToOne
@JoinColumn(name = "id_account")
private Account account;
public CustomerOrder() {
}
public CustomerOrder(Integer idOrder) {
this.idOrder = idOrder;
}
public Integer getIdOrder() {
return idOrder;
}
public void setIdOrder(Integer idOrder) {
this.idOrder = idOrder;
}
public String getShippingAddress() {
return shippingAddress;
}
public void setShippingAddress(String shippingAddress) {
this.shippingAddress = shippingAddress;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Long getTotalValue() {
return totalValue;
}
public void setTotalValue(Long totalValue) {
this.totalValue = totalValue;
}
@XmlTransient
public Collection<Purchase> getPurchaseCollection() {
return purchaseCollection;
}
public void setPurchaseCollection(Collection<Purchase> purchaseCollection) {
this.purchaseCollection = purchaseCollection;
}
public Status getStatus() {
return status;
}
public void setStatus(Status idStatus) {
this.status = idStatus;
}
public Account getAccount() {
return account;
}
public void setAccount(Account idAccount) {
this.account = idAccount;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idOrder != null ? idOrder.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof CustomerOrder)) {
return false;
}
CustomerOrder other = (CustomerOrder) object;
if ((this.idOrder == null && other.idOrder != null) || (this.idOrder != null && !this.idOrder.equals(other.idOrder))) {
return false;
}
return true;
}
@Override
public String toString() {
return "miage.ecom.entity.CustomerOrder[ idOrder=" + idOrder + " ]";
}
}