AccountEvent.java 5.25 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fi.insomnia.bortal.model;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
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;

/**
 * 
 * @author jkj
 */
@Entity
@Table(name = "account_events")
@NamedQueries( {
	@NamedQuery(name = "AccountEvent.findAll", query = "SELECT a FROM AccountEvent a"),
	@NamedQuery(name = "AccountEvent.findByAccountEventsId", query = "SELECT a FROM AccountEvent a WHERE a.accountEventsId = :accountEventsId"),
	@NamedQuery(name = "AccountEvent.findByUnitPrice", query = "SELECT a FROM AccountEvent a WHERE a.unitPrice = :unitPrice"),
	@NamedQuery(name = "AccountEvent.findByUnitCount", query = "SELECT a FROM AccountEvent a WHERE a.unitCount = :unitCount"),
	@NamedQuery(name = "AccountEvent.findByEventTime", query = "SELECT a FROM AccountEvent a WHERE a.eventTime = :eventTime"),
	@NamedQuery(name = "AccountEvent.findByDelivered", query = "SELECT a FROM AccountEvent a WHERE a.delivered = :delivered") })
public class AccountEvent implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "account_events_id", nullable = false)
    private Integer accountEventsId;
    @Column(name = "unit_price", nullable = false)
    private BigInteger unitPrice;
    @Column(name = "unit_count", nullable = false)
    private int unitCount;
    @Column(name = "event_time", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date eventTime;
    @Column(name = "delivered")
    @Temporal(TemporalType.TIMESTAMP)
    private Date delivered;
    @JoinColumn(name = "food_waves_id", referencedColumnName = "food_waves_id")
    @ManyToOne
    private FoodWave foodWavesId;
    @JoinColumn(name = "products_id", referencedColumnName = "products_id", nullable = false)
    @ManyToOne(optional = false)
    private Product productsId;
    @JoinColumn(name = "users_id", referencedColumnName = "users_id", nullable = false)
    @ManyToOne(optional = false)
    private User usersId;
    @OneToMany(mappedBy = "accountEventsId")
    private List<DiscountInstance> discountInstanceList;
    @OneToMany(mappedBy = "accoutEventsId")
    private List<Bill> billList;

    public AccountEvent() {
    }

    public AccountEvent(Integer accountEventsId) {
	this.accountEventsId = accountEventsId;
    }

    public AccountEvent(Integer accountEventsId, BigInteger unitPrice,
	    int unitCount, Date eventTime) {
	this.accountEventsId = accountEventsId;
	this.unitPrice = unitPrice;
	this.unitCount = unitCount;
	this.eventTime = eventTime;
    }

    public Integer getAccountEventsId() {
	return accountEventsId;
    }

    public void setAccountEventsId(Integer accountEventsId) {
	this.accountEventsId = accountEventsId;
    }

    public BigInteger getUnitPrice() {
	return unitPrice;
    }

    public void setUnitPrice(BigInteger unitPrice) {
	this.unitPrice = unitPrice;
    }

    public int getUnitCount() {
	return unitCount;
    }

    public void setUnitCount(int unitCount) {
	this.unitCount = unitCount;
    }

    public Date getEventTime() {
	return eventTime;
    }

    public void setEventTime(Date eventTime) {
	this.eventTime = eventTime;
    }

    public Date getDelivered() {
	return delivered;
    }

    public void setDelivered(Date delivered) {
	this.delivered = delivered;
    }

    public FoodWave getFoodWavesId() {
	return foodWavesId;
    }

    public void setFoodWavesId(FoodWave foodWavesId) {
	this.foodWavesId = foodWavesId;
    }

    public Product getProductsId() {
	return productsId;
    }

    public void setProductsId(Product productsId) {
	this.productsId = productsId;
    }

    public User getUsersId() {
	return usersId;
    }

    public void setUsersId(User usersId) {
	this.usersId = usersId;
    }

    public List<DiscountInstance> getDiscountInstanceList() {
	return discountInstanceList;
    }

    public void setDiscountInstanceList(
	    List<DiscountInstance> discountInstanceList) {
	this.discountInstanceList = discountInstanceList;
    }

    public List<Bill> getBillList() {
	return billList;
    }

    public void setBillList(List<Bill> billList) {
	this.billList = billList;
    }

    @Override
    public int hashCode() {
	int hash = 0;
	hash += (accountEventsId != null ? accountEventsId.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 AccountEvent)) {
	    return false;
	}
	AccountEvent other = (AccountEvent) object;
	if ((this.accountEventsId == null && other.accountEventsId != null)
		|| (this.accountEventsId != null && !this.accountEventsId
			.equals(other.accountEventsId))) {
	    return false;
	}
	return true;
    }

    @Override
    public String toString() {
	return "fi.insomnia.bortal.model.AccountEvent[accountEventsId="
		+ accountEventsId + "]";
    }

}