Message.java
/**
* TFG 75.678 - TFG Desarrollo web 2020 e-Learning for Schools
* Copyright (C) 2020 Eduardo Rodriguez Carro
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.uoc.tfg.sel.repository.model;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.springframework.lang.NonNull;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
/**
* Modelo de mensajes entre usuarios.
*
* @author Eduardo Rodriguez carro
*/
@JsonInclude(value = Include.NON_NULL)
@Entity
@Table(name = "message")
public class Message {
/** The id. */
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
/** The from. */
@ManyToOne
@NonNull
@JoinColumn(name = "from_id")
private User from;
/** The to. */
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.LAZY)
@JoinColumn(name = "message_id")
private List<MessageRecipient> to;
/** The date sent. */
@Column(name = "date")
@NonNull
private Date dateSent;
/** The title. */
@NonNull
private String title;
/** The content. */
@NonNull
private String content;
/** The reply. */
@Column(name = "replyof_id")
private Integer reply;
/**
* Gets the id.
*
* @return the id
*/
public Integer getId() {
return id;
}
/**
* Sets the id.
*
* @param id the new id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* Gets the from.
*
* @return the from
*/
public User getFrom() {
return from;
}
/**
* Sets the from.
*
* @param from the new from
*/
public void setFrom(User from) {
this.from = from;
}
/**
* Gets the to.
*
* @return the to
*/
public List<MessageRecipient> getTo() {
return to;
}
/**
* Sets the to.
*
* @param to the new to
*/
public void setTo(List<MessageRecipient> to) {
this.to = to;
}
/**
* Gets the date sent.
*
* @return the date sent
*/
public Date getDateSent() {
return dateSent;
}
/**
* Sets the date sent.
*
* @param dateSent the new date sent
*/
public void setDateSent(Date dateSent) {
this.dateSent = dateSent;
}
/**
* Gets the title.
*
* @return the title
*/
public String getTitle() {
return title;
}
/**
* Sets the title.
*
* @param title the new title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* Gets the content.
*
* @return the content
*/
public String getContent() {
return content;
}
/**
* Sets the content.
*
* @param content the new content
*/
public void setContent(String content) {
this.content = content;
}
/**
* Gets the reply.
*
* @return the reply
*/
public Integer getReply() {
return reply;
}
/**
* Sets the reply.
*
* @param reply the new reply
*/
public void setReply(Integer reply) {
this.reply = reply;
}
}