LanEvent.java 5.97 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.insomnia.bortal.model;

import java.util.Calendar;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * 
 */
@Entity
@Table(name = "events")
// @NamedQueries({
// @NamedQuery(name = "LanEvent.findAll", query = "SELECT e FROM LanEvent e"),
// @NamedQuery(name = "LanEvent.findByStartTime", query =
// "SELECT e FROM LanEvent e WHERE e.startTime = :startTime"),
// @NamedQuery(name = "LanEvent.findByEndTime", query =
// "SELECT e FROM LanEvent e WHERE e.endTime = :endTime"),
// @NamedQuery(name = "LanEvent.findByName", query =
// "SELECT e FROM LanEvent e WHERE e.name = :name") })
public class LanEvent extends GenericEntity {

    /**
     * 
     */
    private static final long serialVersionUID = 179811358211927126L;

    @Column(name = "start_time")
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar startTime;

    @Column(name = "end_time")
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar endTime;

    @Column(name = "name", nullable = false, unique = true)
    private String name;

    @Column(name = "referer", unique = true, nullable = true)
    private String referer;

    @Column(nullable = false, name = "event_enabled")
    private boolean eventEnabled = false;

    /**
     * Bill's reference number will be formed by adding this number to the bill
     * number and adding the checksum of that number as the last digit
     */
    private Integer referenceNumberBase = 54321;
    @Column(nullable = false)
    private int nextBillNumber = 1;

    @JoinColumn(name = "event_organiser_id", referencedColumnName = "id", nullable = false, updatable = false)
    @ManyToOne(optional = false)
    private EventOrganiser organiser;

    @JoinColumn(name = "event_status_id", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private EventStatus status;

    @OneToMany(mappedBy = "parentEvent")
    private List<LogEntry> logEntries;

    @JoinColumn(name = "default_role_id", referencedColumnName = "id")
    @OneToOne
    private Role defaultRole;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "event")
    private List<Compo> compos;

    @OneToMany(mappedBy = "event")
    private List<CardTemplate> cardTemplates;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "event")
    private List<EventMap> eventMaps;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "event")
    private List<Role> roles;

    @OneToMany(mappedBy = "event")
    private List<Bill> bills;

    @OneToMany(mappedBy = "event")
    private List<Reader> readers;

    public LanEvent() {
    }

    public Calendar getStartTime() {
        return startTime;
    }

    public void setStartTime(Calendar startTime) {
        this.startTime = startTime;
    }

    public Calendar getEndTime() {
        return endTime;
    }

    public void setEndTime(Calendar endTime) {
        this.endTime = endTime;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getReferer() {
        return referer;
    }

    public void setReferer(String referer) {
        this.referer = referer;
    }

    public EventStatus getStatus() {
        return status;
    }

    public void setStatus(EventStatus eventStatusId) {
        this.status = eventStatusId;
    }

    public Role getDefaultRole() {
        return defaultRole;
    }

    public void setDefaultRole(Role defaultRole) {
        this.defaultRole = defaultRole;
    }

    public List<Compo> getCompos() {
        return compos;
    }

    public void setCompos(List<Compo> compoList) {
        this.compos = compoList;
    }

    public List<CardTemplate> getCardTemplates() {
        return cardTemplates;
    }

    public void setCardTemplates(List<CardTemplate> cardTemplateList) {
        this.cardTemplates = cardTemplateList;
    }

    public List<EventMap> getEventMaps() {
        return eventMaps;
    }

    public void setEventMaps(List<EventMap> eventMapList) {
        this.eventMaps = eventMapList;
    }

    public List<Role> getRoles() {
        return roles;
    }

    public void setRoles(List<Role> roleList) {
        this.roles = roleList;
    }

    /**
     * @return the bills
     */
    public List<Bill> getBills() {
        return bills;
    }

    /**
     * @param bills
     *            the bills to set
     */
    public void setBills(List<Bill> bills) {
        this.bills = bills;
    }

    /**
     * @return the readers
     */
    public List<Reader> getReaders() {
        return readers;
    }

    /**
     * @param readers
     *            the readers to set
     */
    public void setReaders(List<Reader> readers) {
        this.readers = readers;
    }

    public void setOrganiser(EventOrganiser organiser) {
        this.organiser = organiser;
    }

    public EventOrganiser getOrganiser() {
        return organiser;
    }

    public void setReferenceNumberBase(Integer referenceNumberBase) {
        this.referenceNumberBase = referenceNumberBase;
    }

    public Integer getReferenceNumberBase() {
        return referenceNumberBase;
    }

    public void setLogEntries(List<LogEntry> logEntries) {
        this.logEntries = logEntries;
    }

    public List<LogEntry> getLogEntries() {
        return logEntries;
    }

    public void setNextBillNumber(int nextBillNumber) {
        this.nextBillNumber = nextBillNumber;
    }

    public int getNextBillNumber() {
        return nextBillNumber;
    }

    public boolean isEventEnabled() {
        return eventEnabled;
    }

    public void setEventEnabled(boolean eventEnabled) {
        this.eventEnabled = eventEnabled;
    }

}