diff --git a/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/Dataset.java b/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/Dataset.java new file mode 100644 index 0000000..09bc384 --- /dev/null +++ b/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/Dataset.java @@ -0,0 +1,127 @@ +package de.uni_passau.fim.PADAS.group3.DataDash.model; + +import java.sql.Date; +import java.util.UUID; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class Dataset { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private UUID id; + + @Enumerated(EnumType.STRING) + private Type type; + + private String title; + + private String abst; + + private String description; + + private String author; + + private Date date; + + private float raiting; + + private int votes; + + private String[] categories; + + public Dataset(String title, String abst, String description, String author, Date date, String[] categories, Type type) { + + this.raiting = 0; + this.votes = 0; + setTitle(title); + setAbst(abst); + setDescription(description); + setAuthor(author); + setDate(date); + setCategories(categories); + setType(type); + } + + public Dataset() { + } + + + public String getAbst() { + return abst; + } + + public String getAuthor() { + return author; + } + + public String[] getCategories() { + return categories; + } + + public Date getDate() { + return date; + } + + public String getDescription() { + return description; + } + + public UUID getId() { + return id; + } + + public float getRaiting() { + return raiting; + } + + public String getTitle() { + return title; + } + + public Type getType() { + return type; + } + + public int getVotes() { + return votes; + } + + public void setAbst(String abst) { + this.abst = abst.substring(0, Math.min(abst.length(), 100)); + } + + public void setAuthor(String author) { + this.author = author; + } + + public void setCategories(String[] categories) { + this.categories = categories; + } + + public void setDate(Date date) { + this.date = date; + } + + public void setDescription(String description) { + this.description = description; + } + + public void setTitle(String title) { + this.title = title.substring(0, Math.min(title.length(), 50)); + } + + public void setType(Type type) { + this.type = type; + } + + public void vote(int stars) { + raiting = (raiting*votes + stars) / (++votes); + } + +} diff --git a/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/Type.java b/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/Type.java new file mode 100644 index 0000000..8f72c12 --- /dev/null +++ b/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/Type.java @@ -0,0 +1,6 @@ +package de.uni_passau.fim.PADAS.group3.DataDash.model; + +public enum Type { + DATASET, + API +} \ No newline at end of file diff --git a/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/dataRepository.java b/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/dataRepository.java new file mode 100644 index 0000000..46fd8d4 --- /dev/null +++ b/src/main/java/de/uni_passau/fim/PADAS/group3/DataDash/model/dataRepository.java @@ -0,0 +1,24 @@ +package de.uni_passau.fim.PADAS.group3.DataDash.model; + +import java.util.List; +import java.util.UUID; +import java.sql.Date; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface dataRepository extends JpaRepository{ + + List findByTitle(String title); + List findByTitleLike(String title); + List findByAuthorLike(String author); + List findByType(Type type); + List findByAuthor(String author); + List findByAbstLike(String abst); + List findByDescriptionLike(String description); + List findByCategories(String[] categories); + List findByRaitingGreaterThan(float raiting); + List findByVotesGreaterThan(int votes); + List findByDateAfter(Date date); + List findByDateBefore(Date date); + List findByDateBetween(Date date1, Date date2); + +} \ No newline at end of file