package de.flower.rmt.model.db.entity;
import de.flower.common.model.db.entity.AbstractBaseEntity;
import de.flower.rmt.model.db.entity.event.Event;
import org.hibernate.annotations.Index;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;
/**
* @author flowerrrr
*/
@Entity
@Table(name = "lineup")
public class Lineup extends AbstractBaseEntity {
@Column(nullable = false)
private Boolean published;
@Column
@Size(max = 20)
private String name;
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@Index(name = "ix_event")
private Event event;
@OneToMany(mappedBy = "lineup", cascade = CascadeType.REMOVE)
private List<LineupItem> items = new ArrayList<LineupItem>();
protected Lineup() {
published = false;
}
public Lineup(final Event event) {
this();
this.event = event;
}
public Boolean isPublished() {
return published;
}
public void setPublished(final Boolean published) {
this.published = published;
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public Event getEvent() {
return event;
}
public void setEvent(final Event event) {
this.event = event;
}
public List<LineupItem> getItems() {
return items;
}
public void setItems(final List<LineupItem> items) {
this.items = items;
}
}