package eu.dnetlib.openaire.community.db.model; import java.io.Serializable; import java.time.LocalDateTime; import javax.persistence.Column; 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; import eu.dnetlib.openaire.community.db.CommunityStatus; import eu.dnetlib.openaire.community.db.CommunityType; @Entity @Table(name = "communities") @TypeDefs({ @TypeDef(name = "string-array", typeClass = StringArrayType.class), @TypeDef(name = "json", typeClass = JsonStringType.class), @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class) }) public class Community implements Serializable { 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; @Column(name = "type") @Enumerated(EnumType.STRING) private CommunityType type; @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; } public CommunityType getType() { return type; } public void setType(final CommunityType type) { this.type = type; } 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; } }