package br.gov.mj.sislegis.app.model;
import java.util.Date;
import java.util.Objects;
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.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@Entity
@XmlRootElement
@JsonIgnoreProperties({ "idProposicao" })
public class Comentario extends AbstractEntity {
private static final long serialVersionUID = 739840933885769688L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@Column(length = 8000)
private String descricao;
@ManyToOne(fetch = FetchType.EAGER)
private Usuario autor;
@Column
@Temporal(TemporalType.TIMESTAMP)
private Date dataCriacao;
@ManyToOne(fetch = FetchType.EAGER)
private Proposicao proposicao;
private Boolean oculto = false;
public Long getId() {
return this.id;
}
public void setId(final Long id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Usuario getAutor() {
return autor;
}
public void setAutor(Usuario autor) {
this.autor = autor;
}
public Date getDataCriacao() {
return dataCriacao;
}
public void setDataCriacao(Date dataCriacao) {
this.dataCriacao = dataCriacao;
}
public Proposicao getProposicao() {
if (!Objects.isNull(this.proposicao)) {
Proposicao p = new Proposicao();
p.setId(proposicao.getId());
this.proposicao = p;
}
return this.proposicao;
}
public void setProposicao(final Proposicao proposicao) {
this.proposicao = proposicao;
}
public Boolean isOculto() {
return oculto;
}
public void setOculto(Boolean oculto) {
this.oculto = oculto;
}
@Override
public String toString() {
String result = getClass().getSimpleName() + " ";
if (descricao != null && !descricao.trim().isEmpty())
result += "descricao: " + descricao;
if (autor != null)
result += ", autor: " + autor;
return result;
}
}