package org.datasurvey.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.io.Serializable; import java.time.ZonedDateTime; import java.util.HashSet; import java.util.Set; import javax.persistence.*; import javax.validation.constraints.*; import org.datasurvey.domain.enumeration.EstadoPlantilla; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; /** * A Plantilla. */ @Entity @Table(name = "plantilla") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Plantilla implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Size(min = 1, max = 50) @Column(name = "nombre", length = 50) private String nombre; @Column(name = "descripcion") private String descripcion; @NotNull @Column(name = "fecha_creacion", nullable = false) private ZonedDateTime fechaCreacion; @Column(name = "fecha_publicacion_tienda") private ZonedDateTime fechaPublicacionTienda; @NotNull @Enumerated(EnumType.STRING) @Column(name = "estado", nullable = false) private EstadoPlantilla estado; @NotNull @Column(name = "precio", nullable = false) private Double precio; @OneToMany(mappedBy = "plantilla") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @JsonIgnoreProperties(value = { "pPreguntaCerradaOpcions", "plantilla" }, allowSetters = true) private Set pPreguntaCerradas = new HashSet<>(); @OneToMany(mappedBy = "plantilla") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @JsonIgnoreProperties(value = { "plantilla" }, allowSetters = true) private Set pPreguntaAbiertas = new HashSet<>(); @ManyToOne @JsonIgnoreProperties(value = { "encuestas", "plantillas" }, allowSetters = true) private Categoria categoria; @ManyToMany(mappedBy = "plantillas") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @JsonIgnoreProperties(value = { "user", "encuestas", "usuarioEncuestas", "plantillas" }, allowSetters = true) private Set usuarioExtras = new HashSet<>(); // jhipster-needle-entity-add-field - JHipster will add fields here public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Plantilla id(Long id) { this.id = id; return this; } public String getNombre() { return this.nombre; } public Plantilla nombre(String nombre) { this.nombre = nombre; return this; } public void setNombre(String nombre) { this.nombre = nombre; } public String getDescripcion() { return this.descripcion; } public Plantilla descripcion(String descripcion) { this.descripcion = descripcion; return this; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public ZonedDateTime getFechaCreacion() { return this.fechaCreacion; } public Plantilla fechaCreacion(ZonedDateTime fechaCreacion) { this.fechaCreacion = fechaCreacion; return this; } public void setFechaCreacion(ZonedDateTime fechaCreacion) { this.fechaCreacion = fechaCreacion; } public ZonedDateTime getFechaPublicacionTienda() { return this.fechaPublicacionTienda; } public Plantilla fechaPublicacionTienda(ZonedDateTime fechaPublicacionTienda) { this.fechaPublicacionTienda = fechaPublicacionTienda; return this; } public void setFechaPublicacionTienda(ZonedDateTime fechaPublicacionTienda) { this.fechaPublicacionTienda = fechaPublicacionTienda; } public EstadoPlantilla getEstado() { return this.estado; } public Plantilla estado(EstadoPlantilla estado) { this.estado = estado; return this; } public void setEstado(EstadoPlantilla estado) { this.estado = estado; } public Double getPrecio() { return this.precio; } public Plantilla precio(Double precio) { this.precio = precio; return this; } public void setPrecio(Double precio) { this.precio = precio; } public Set getPPreguntaCerradas() { return this.pPreguntaCerradas; } public Plantilla pPreguntaCerradas(Set pPreguntaCerradas) { this.setPPreguntaCerradas(pPreguntaCerradas); return this; } public Plantilla addPPreguntaCerrada(PPreguntaCerrada pPreguntaCerrada) { this.pPreguntaCerradas.add(pPreguntaCerrada); pPreguntaCerrada.setPlantilla(this); return this; } public Plantilla removePPreguntaCerrada(PPreguntaCerrada pPreguntaCerrada) { this.pPreguntaCerradas.remove(pPreguntaCerrada); pPreguntaCerrada.setPlantilla(null); return this; } public void setPPreguntaCerradas(Set pPreguntaCerradas) { if (this.pPreguntaCerradas != null) { this.pPreguntaCerradas.forEach(i -> i.setPlantilla(null)); } if (pPreguntaCerradas != null) { pPreguntaCerradas.forEach(i -> i.setPlantilla(this)); } this.pPreguntaCerradas = pPreguntaCerradas; } public Set getPPreguntaAbiertas() { return this.pPreguntaAbiertas; } public Plantilla pPreguntaAbiertas(Set pPreguntaAbiertas) { this.setPPreguntaAbiertas(pPreguntaAbiertas); return this; } public Plantilla addPPreguntaAbierta(PPreguntaAbierta pPreguntaAbierta) { this.pPreguntaAbiertas.add(pPreguntaAbierta); pPreguntaAbierta.setPlantilla(this); return this; } public Plantilla removePPreguntaAbierta(PPreguntaAbierta pPreguntaAbierta) { this.pPreguntaAbiertas.remove(pPreguntaAbierta); pPreguntaAbierta.setPlantilla(null); return this; } public void setPPreguntaAbiertas(Set pPreguntaAbiertas) { if (this.pPreguntaAbiertas != null) { this.pPreguntaAbiertas.forEach(i -> i.setPlantilla(null)); } if (pPreguntaAbiertas != null) { pPreguntaAbiertas.forEach(i -> i.setPlantilla(this)); } this.pPreguntaAbiertas = pPreguntaAbiertas; } public Categoria getCategoria() { return this.categoria; } public Plantilla categoria(Categoria categoria) { this.setCategoria(categoria); return this; } public void setCategoria(Categoria categoria) { this.categoria = categoria; } public Set getUsuarioExtras() { return this.usuarioExtras; } public Plantilla usuarioExtras(Set usuarioExtras) { this.setUsuarioExtras(usuarioExtras); return this; } public Plantilla addUsuarioExtra(UsuarioExtra usuarioExtra) { this.usuarioExtras.add(usuarioExtra); usuarioExtra.getPlantillas().add(this); return this; } public Plantilla removeUsuarioExtra(UsuarioExtra usuarioExtra) { this.usuarioExtras.remove(usuarioExtra); usuarioExtra.getPlantillas().remove(this); return this; } public void setUsuarioExtras(Set usuarioExtras) { if (this.usuarioExtras != null) { this.usuarioExtras.forEach(i -> i.removePlantilla(this)); } if (usuarioExtras != null) { usuarioExtras.forEach(i -> i.addPlantilla(this)); } this.usuarioExtras = usuarioExtras; } // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Plantilla)) { return false; } return id != null && id.equals(((Plantilla) o).id); } @Override public int hashCode() { // see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ return getClass().hashCode(); } // prettier-ignore @Override public String toString() { return "Plantilla{" + "id=" + getId() + ", nombre='" + getNombre() + "'" + ", descripcion='" + getDescripcion() + "'" + ", fechaCreacion='" + getFechaCreacion() + "'" + ", fechaPublicacionTienda='" + getFechaPublicacionTienda() + "'" + ", estado='" + getEstado() + "'" + ", precio=" + getPrecio() + "}"; } }