argos/dmp-backend/roadmap/src/main/java/eu/eudat/migration/entities/Organization.java

275 lines
6.2 KiB
Java

package eu.eudat.migration.entities;
import eu.eudat.migration.utils.JsonTypeConverter;
import eu.eudat.migration.utils.OrganizationTypeConverter;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Entity
@Table(name = "orgs")
@SuppressWarnings("JpaAttributeTypeInspection")
public class Organization {
@Id
private Long id;
private String name;
private String abbreviation;
@Column(name = "target_url")
private String targetUrl;
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;
@Column(name = "is_other")
private Boolean isOther;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "region_id")
private Region region;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "language_id")
private Language language;
@Column(name = "logo_uid")
private String logoUid;
@Column(name = "logo_name")
private String logoName;
@Column(name = "contact_email")
private String contactEmail;
@Column(name = "org_type")
@Convert(converter = OrganizationTypeConverter.class)
private Type orgType;
@Convert(converter = JsonTypeConverter.class)
private Map<String, Object> links;
@Column(name = "feedback_enabled")
private Boolean feedbackEnabled;
@Column(name = "feedback_msg")
private String feedbackMsg;
@Column(name = "contact_name")
private String contactName;
@Column(name = "helpdesk_email")
private String helpdeskEmail;
private Boolean managed;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "org_id")
@LazyCollection(LazyCollectionOption.FALSE)
private List<User> users = new ArrayList<>();
public enum Type {
INSTITUTION,
FUNDER,
ORGANIZATION,
RESEARCH_INSTITUTE,
PROJECT,
SCHOOL
}
@Override
public String toString() {
return "Organization{" +
"id=" + id +
", name='" + name + '\'' +
", abbreviation='" + abbreviation + '\'' +
", targetUrl='" + targetUrl + '\'' +
", createdAt=" + createdAt +
", updatedAt=" + updatedAt +
", isOther=" + isOther +
", region=" + region +
", language=" + language +
", logoUid='" + logoUid + '\'' +
", logoName='" + logoName + '\'' +
", contactEmail='" + contactEmail + '\'' +
", orgType=" + orgType +
", links='" + links + '\'' +
", feedbackEnabled=" + feedbackEnabled +
", feedbackMsg='" + feedbackMsg + '\'' +
", contactName='" + contactName + '\'' +
", helpdeskEmail='" + helpdeskEmail + '\'' +
", managed=" + managed +
'}';
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAbbreviation() {
return abbreviation;
}
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getTargetUrl() {
return targetUrl;
}
public void setTargetUrl(String targetUrl) {
this.targetUrl = targetUrl;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Boolean getIsOther() {
return isOther;
}
public void setIsOther(Boolean isOther) {
this.isOther = isOther;
}
public Region getRegion() {
return region;
}
public void setRegion(Region regionId) {
this.region = regionId;
}
public Language getLanguage() {
return language;
}
public void setLanguage(Language languageId) {
this.language = languageId;
}
public String getLogoUid() {
return logoUid;
}
public void setLogoUid(String logoUid) {
this.logoUid = logoUid;
}
public String getLogoName() {
return logoName;
}
public void setLogoName(String logoName) {
this.logoName = logoName;
}
public String getContactEmail() {
return contactEmail;
}
public void setContactEmail(String contactEmail) {
this.contactEmail = contactEmail;
}
public Type getOrgType() {
return orgType;
}
public void setOrgType(Type orgType) {
this.orgType = orgType;
}
public Map<String, Object> getLinks() {
return links;
}
public void setLinks(Map<String, Object> links) {
this.links = links;
}
public Boolean getFeedbackEnabled() {
return feedbackEnabled;
}
public void setFeedbackEnabled(Boolean feedbackEnabled) {
this.feedbackEnabled = feedbackEnabled;
}
public String getFeedbackMsg() {
return feedbackMsg;
}
public void setFeedbackMsg(String feedbackMsg) {
this.feedbackMsg = feedbackMsg;
}
public String getContactName() {
return contactName;
}
public void setContactName(String contactName) {
this.contactName = contactName;
}
public String getHelpdeskEmail() {
return helpdeskEmail;
}
public void setHelpdeskEmail(String helpdeskEmail) {
this.helpdeskEmail = helpdeskEmail;
}
public Boolean getManaged() {
return managed;
}
public void setManaged(Boolean managed) {
this.managed = managed;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}