2019-05-27 09:14:24 +04:00

207 lines
4.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package ru.ulstu.timeline.model;
import org.hibernate.validator.constraints.NotBlank;
import ru.ulstu.conference.model.Conference;
import ru.ulstu.core.model.BaseEntity;
import ru.ulstu.grant.model.Grant;
import ru.ulstu.paper.model.Paper;
import ru.ulstu.students.model.Task;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Entity
public class Event extends BaseEntity {
public enum EventStatus {
POSSIBLE("Возможное"), NEW("Новое"), IN_PROGRESS("В процессе"), COMPLETED("Завершено");
private String name;
EventStatus(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
@NotBlank
private String title;
@Enumerated(value = EnumType.STRING)
private PeriodEvent period;
@Enumerated(value = EnumType.STRING)
private EventStatus status;
@Column(name = "execute_date")
@Temporal(TemporalType.TIMESTAMP)
@NotNull
private Date executeDate;
@Column(name = "create_date")
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
@Column(name = "update_date")
@Temporal(TemporalType.TIMESTAMP)
private Date updateDate;
private String description;
@ManyToMany(fetch = FetchType.LAZY)
private List<User> recipients = new ArrayList<>();
@ManyToOne
@JoinColumn(name = "child_id")
private Event child;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "child_id")
private List<Event> parents;
@ManyToOne
@JoinColumn(name = "paper_id")
private Paper paper;
@ManyToOne
@JoinColumn(name = "conference_id")
private Conference conference;
@ManyToOne
@JoinColumn(name = "grant_id")
private Grant grant;
@ManyToOne
@JoinColumn(name = "task_id")
private Task task;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Event.EventStatus getStatus() {
return status;
}
public void setStatus(EventStatus status) {
this.status = status;
}
public PeriodEvent getPeriod() {
return period;
}
public void setPeriod(PeriodEvent period) {
this.period = period;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<User> getRecipients() {
return recipients;
}
public void setRecipients(List<User> recipients) {
this.recipients = recipients;
}
public Date getExecuteDate() {
return executeDate;
}
public void setExecuteDate(Date executeDate) {
this.executeDate = executeDate;
}
public Event getChild() {
return child;
}
public void setChild(Event child) {
this.child = child;
}
public List<Event> getParents() {
return parents;
}
public void setParents(List<Event> parents) {
this.parents = parents;
}
public Paper getPaper() {
return paper;
}
public void setPaper(Paper paper) {
this.paper = paper;
}
public Conference getConference() {
return conference;
}
public void setConference(Conference conference) {
this.conference = conference;
}
public Grant getGrant() {
return grant;
}
public void setGrant(Grant grant) {
this.grant = grant;
}
public Task getTask() {
return task;
}
public void setTask(Task task) {
this.task = task;
}
}