2023-06-12 14:30:42 +02:00
|
|
|
package eu.dnetlib.openaire.community.db.model;
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
|
|
import javax.persistence.Column;
|
2023-06-14 11:14:24 +02:00
|
|
|
import javax.persistence.Convert;
|
2023-06-12 14:30:42 +02:00
|
|
|
import javax.persistence.Entity;
|
|
|
|
import javax.persistence.EnumType;
|
|
|
|
import javax.persistence.Enumerated;
|
|
|
|
import javax.persistence.GeneratedValue;
|
|
|
|
import javax.persistence.GenerationType;
|
|
|
|
import javax.persistence.Id;
|
|
|
|
import javax.persistence.Table;
|
|
|
|
|
|
|
|
import org.hibernate.annotations.Type;
|
|
|
|
import org.hibernate.annotations.TypeDef;
|
|
|
|
import org.hibernate.annotations.TypeDefs;
|
|
|
|
|
|
|
|
import com.vladmihalcea.hibernate.type.array.StringArrayType;
|
|
|
|
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
|
|
|
|
import com.vladmihalcea.hibernate.type.json.JsonStringType;
|
|
|
|
|
2023-06-15 11:37:01 +02:00
|
|
|
import eu.dnetlib.openaire.community.db.utils.CommunityClaimTypeConverter;
|
|
|
|
import eu.dnetlib.openaire.community.db.utils.CommunityMembershipTypeConverter;
|
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityClaimType;
|
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityMembershipType;
|
2023-06-15 11:27:59 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityStatus;
|
2023-06-15 11:37:01 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityType;
|
2023-06-12 14:30:42 +02:00
|
|
|
|
|
|
|
@Entity
|
|
|
|
@Table(name = "communities")
|
|
|
|
@TypeDefs({
|
|
|
|
@TypeDef(name = "string-array", typeClass = StringArrayType.class),
|
|
|
|
@TypeDef(name = "json", typeClass = JsonStringType.class),
|
|
|
|
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
|
|
|
|
})
|
2023-06-14 13:53:59 +02:00
|
|
|
public class DbCommunity implements Serializable {
|
2023-06-12 14:30:42 +02:00
|
|
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
@Id
|
|
|
|
@Column(name = "id")
|
|
|
|
private String id;
|
|
|
|
|
|
|
|
@Column(name = "label")
|
|
|
|
private String label;
|
|
|
|
|
|
|
|
@Column(name = "description")
|
|
|
|
private String description;
|
|
|
|
|
|
|
|
@Column(name = "status")
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
|
|
private CommunityStatus status = CommunityStatus.hidden;
|
|
|
|
|
2023-06-14 11:14:24 +02:00
|
|
|
@Column(name = "membership")
|
|
|
|
@Convert(converter = CommunityMembershipTypeConverter.class)
|
|
|
|
private CommunityMembershipType membership = CommunityMembershipType.byInvitation;
|
|
|
|
|
2023-06-12 14:30:42 +02:00
|
|
|
@Column(name = "type")
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
|
|
private CommunityType type;
|
|
|
|
|
2023-06-14 11:14:24 +02:00
|
|
|
@Column(name = "claim")
|
|
|
|
@Convert(converter = CommunityClaimTypeConverter.class)
|
|
|
|
private CommunityClaimType claim;
|
|
|
|
|
2023-06-12 14:30:42 +02:00
|
|
|
@Type(type = "string-array")
|
|
|
|
@Column(name = "subjects", columnDefinition = "text[]")
|
|
|
|
private String[] subjects;
|
|
|
|
|
|
|
|
@Type(type = "string-array")
|
|
|
|
@Column(name = "fos", columnDefinition = "text[]")
|
|
|
|
private String[] fos;
|
|
|
|
|
|
|
|
@Type(type = "string-array")
|
|
|
|
@Column(name = "sdg", columnDefinition = "text[]")
|
|
|
|
private String[] sdg;
|
|
|
|
|
|
|
|
@Type(type = "jsonb")
|
|
|
|
@Column(name = "adv_constraints")
|
|
|
|
private String advancedConstraints;
|
|
|
|
|
|
|
|
@Type(type = "jsonb")
|
|
|
|
@Column(name = "remove_constraints")
|
|
|
|
private String removeConstraints;
|
|
|
|
|
|
|
|
@Column(name = "main_zenodo_community")
|
|
|
|
private String mainZenodoCommunity;
|
|
|
|
|
|
|
|
@Type(type = "string-array")
|
|
|
|
@Column(name = "other_zenodo_communities", columnDefinition = "text[]")
|
|
|
|
private String[] otherZenodoCommunities;
|
|
|
|
|
|
|
|
@Column(name = "creation_date")
|
|
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
|
|
private LocalDateTime creationDate;
|
|
|
|
|
|
|
|
@Column(name = "logo_url")
|
|
|
|
private String logoUrl;
|
|
|
|
|
|
|
|
public String getId() {
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setId(final String id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getLabel() {
|
|
|
|
return label;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLabel(final String label) {
|
|
|
|
this.label = label;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getDescription() {
|
|
|
|
return description;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setDescription(final String description) {
|
|
|
|
this.description = description;
|
|
|
|
}
|
|
|
|
|
|
|
|
public CommunityStatus getStatus() {
|
|
|
|
return status;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setStatus(final CommunityStatus status) {
|
|
|
|
this.status = status;
|
|
|
|
}
|
|
|
|
|
2023-06-14 11:14:24 +02:00
|
|
|
public CommunityMembershipType getMembership() {
|
|
|
|
return membership;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setMembership(final CommunityMembershipType membership) {
|
|
|
|
this.membership = membership;
|
|
|
|
}
|
|
|
|
|
2023-06-12 14:30:42 +02:00
|
|
|
public CommunityType getType() {
|
|
|
|
return type;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setType(final CommunityType type) {
|
|
|
|
this.type = type;
|
|
|
|
}
|
|
|
|
|
2023-06-14 11:14:24 +02:00
|
|
|
public CommunityClaimType getClaim() {
|
|
|
|
return claim;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setClaim(final CommunityClaimType claim) {
|
|
|
|
this.claim = claim;
|
|
|
|
}
|
|
|
|
|
2023-06-12 14:30:42 +02:00
|
|
|
public String[] getSubjects() {
|
|
|
|
return subjects;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSubjects(final String[] subjects) {
|
|
|
|
this.subjects = subjects;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String[] getFos() {
|
|
|
|
return fos;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFos(final String[] fos) {
|
|
|
|
this.fos = fos;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String[] getSdg() {
|
|
|
|
return sdg;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSdg(final String[] sdg) {
|
|
|
|
this.sdg = sdg;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getAdvancedConstraints() {
|
|
|
|
return advancedConstraints;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAdvancedConstraints(final String advancedConstraints) {
|
|
|
|
this.advancedConstraints = advancedConstraints;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getRemoveConstraints() {
|
|
|
|
return removeConstraints;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setRemoveConstraints(final String removeConstraints) {
|
|
|
|
this.removeConstraints = removeConstraints;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getMainZenodoCommunity() {
|
|
|
|
return mainZenodoCommunity;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setMainZenodoCommunity(final String mainZenodoCommunity) {
|
|
|
|
this.mainZenodoCommunity = mainZenodoCommunity;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String[] getOtherZenodoCommunities() {
|
|
|
|
return otherZenodoCommunities;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setOtherZenodoCommunities(final String[] otherZenodoCommunities) {
|
|
|
|
this.otherZenodoCommunities = otherZenodoCommunities;
|
|
|
|
}
|
|
|
|
|
|
|
|
public LocalDateTime getCreationDate() {
|
|
|
|
return creationDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setCreationDate(final LocalDateTime creationDate) {
|
|
|
|
this.creationDate = creationDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getLogoUrl() {
|
|
|
|
return logoUrl;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLogoUrl(final String logoUrl) {
|
|
|
|
this.logoUrl = logoUrl;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|