AccountEvent.java 5.65 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.Basic;
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
    @Basic(optional = false)
    @Column(name = "account_events_id", nullable = false)
    private Integer accountEventsId;
    @Basic(optional = false)
    @Column(name = "unit_price", nullable = false)
    private BigInteger unitPrice;
    @Basic(optional = false)
    @Column(name = "unit_count", nullable = false)
    private int unitCount;
    @Basic(optional = false)
    @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 + "]";
    }

}