io.edurt.datacap.service.entity.ReportEntity Maven / Gradle / Ivy
package io.edurt.datacap.service.entity;
import com.fasterxml.jackson.annotation.JsonView;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.edurt.datacap.common.view.EntityView;
import io.edurt.datacap.service.enums.ReportType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Data
@SuperBuilder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "datacap_report")
@EntityListeners(AuditingEntityListener.class)
@SuppressFBWarnings(value = {"EI_EXPOSE_REP", "EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC"})
public class ReportEntity
extends BaseEntity
{
@Column(name = "configure")
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private String configure;
@Column(name = "realtime")
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private boolean realtime;
@Column(name = "type")
@Enumerated(EnumType.STRING)
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private ReportType type;
@Column(name = "query")
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private String query;
@Column(name = "description")
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private String description;
@ManyToOne
@JoinTable(name = "datacap_report_user_relation",
joinColumns = @JoinColumn(name = "report_id"),
inverseJoinColumns = @JoinColumn(name = "user_id"))
@JsonView(value = {EntityView.AdminView.class})
private UserEntity user;
@ManyToOne
@JoinTable(name = "datacap_report_source_relation",
joinColumns = @JoinColumn(name = "report_id"),
inverseJoinColumns = @JoinColumn(name = "source_id"))
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private SourceEntity source;
@ManyToOne
@JoinTable(name = "datacap_report_dataset_relation",
joinColumns = @JoinColumn(name = "report_id"),
inverseJoinColumns = @JoinColumn(name = "dataset_id"))
@JsonView(value = {EntityView.UserView.class, EntityView.AdminView.class})
private DataSetEntity dataset;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy