diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/CustomEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/CustomEvent.java index 3fd7e4a0ac..f738fbf6c8 100644 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/CustomEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/CustomEvent.java @@ -1,5 +1,7 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; import se.su.dsv.scipro.system.DomainObject; import jakarta.persistence.Entity; @@ -13,6 +15,8 @@ public class CustomEvent extends NotificationEvent { IDEA_DELETED } + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private CustomEvent.Event event; diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/GroupEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/GroupEvent.java index fa25851094..595b2c88fd 100644 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/GroupEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/GroupEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.group.Group; import se.su.dsv.scipro.system.DomainObject; @@ -11,37 +14,36 @@ import jakarta.persistence.ManyToOne; @Entity public class GroupEvent extends NotificationEvent { - public void setEvent(Event event) { - this.event = event; + @Basic + @Column(name = "event") + @Enumerated(EnumType.STRING) + private Event event; + + @ManyToOne + @JoinColumn(name = "project_group_id", referencedColumnName = "id") + private Group group; + + public GroupEvent() { + super(Notification.Type.GROUP); } - public enum Event { - MESSAGE_THREAD_CREATED, MESSAGE_THREAD_REPLY + @Override + public Enum getEvent() { + return event; + } + + public void setEvent(Event event) { + this.event = event; } public Group getGroup() { return group; } - @ManyToOne - private Group group; - - @Enumerated(EnumType.STRING) - private Event event; - - public GroupEvent() { - super(Notification.Type.GROUP); - } - public void setGroup(Group group) { this.group = group; } - @Override - public Enum getEvent() { - return event; - } - @Override protected String getEntityTitle() { return group.getTitle(); @@ -56,4 +58,8 @@ public class GroupEvent extends NotificationEvent { public DomainObject getEntity() { return group; } + + public enum Event { + MESSAGE_THREAD_CREATED, MESSAGE_THREAD_REPLY + } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/IdeaEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/IdeaEvent.java index 8ef2b2d070..505da3d7ba 100755 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/IdeaEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/IdeaEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.match.Idea; import se.su.dsv.scipro.system.DomainObject; @@ -11,18 +14,24 @@ import jakarta.persistence.ManyToOne; @Entity public class IdeaEvent extends NotificationEvent { - - public enum Event { - STATUS_CHANGE, PARTNER_ACCEPT, - ADDED_AS_PARTNER, FIRST_MEETING, REMOVED_AS_PARTNER, EXPORTED_FAIL - } - - @ManyToOne - private Idea idea; - + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private Event event; + @ManyToOne + @JoinColumn(name = "idea_id", referencedColumnName = "id") + private Idea idea; + + @Override + public Event getEvent() { + return event; + } + + public void setEvent(Event event) { + this.event = event; + } + public IdeaEvent() { super(Notification.Type.IDEA); } @@ -35,15 +44,6 @@ public class IdeaEvent extends NotificationEvent { this.idea = idea; } - @Override - public Event getEvent() { - return event; - } - - public void setEvent(Event event) { - this.event = event; - } - @Override public String getEntityTitle() { return idea.getTitle(); @@ -58,4 +58,9 @@ public class IdeaEvent extends NotificationEvent { public DomainObject getEntity() { return idea; } + + public enum Event { + STATUS_CHANGE, PARTNER_ACCEPT, + ADDED_AS_PARTNER, FIRST_MEETING, REMOVED_AS_PARTNER, EXPORTED_FAIL + } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/MileStoneEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/MileStoneEvent.java index 9e4c1bf5a9..732482b188 100644 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/MileStoneEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/MileStoneEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.milestones.dataobjects.Milestone; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.system.DomainObject; @@ -13,28 +16,64 @@ import java.util.Objects; @Entity public class MileStoneEvent extends NotificationEvent { - public enum Event { - MILESTONE_CONFIRMED, MILESTONE_REVOKED - } - - @ManyToOne - private Milestone milestone; - + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private Event event; + @ManyToOne + @JoinColumn(name = "milestone_id", referencedColumnName = "id") + private Milestone milestone; + public MileStoneEvent() { super(Notification.Type.MILESTONE); } @Override - public Project getProject() { - return milestone.getProject(); + public Enum getEvent() { + return event; + } + + public void setEvent(Event event) { + this.event = event; + } + + public Milestone getMilestone() { + return this.milestone; + } + + public void setMilestone(Milestone milestone) { + this.milestone = milestone; } @Override - public Enum getEvent() { - return event; + public boolean equals(final Object o) { + if (o == this) return true; + if (!(o instanceof MileStoneEvent)) return false; + final MileStoneEvent other = (MileStoneEvent) o; + return other.canEqual(this) + && super.equals(o) + && Objects.equals(this.getMilestone(), other.getMilestone()) + && Objects.equals(this.getEvent(), other.getEvent()); + } + + @Override + public int hashCode() { + return Objects.hash(this.getMilestone(), this.getEvent()); + } + + @Override + public String toString() { + return "MileStoneEvent(milestone=" + this.getMilestone() + ", event=" + this.getEvent() + ")"; + } + + protected boolean canEqual(final Object other) { + return other instanceof MileStoneEvent; + } + + @Override + public Project getProject() { + return milestone.getProject(); } @Override @@ -52,40 +91,7 @@ public class MileStoneEvent extends NotificationEvent { return milestone; } - public Milestone getMilestone() { - return this.milestone; - } - - public void setMilestone(Milestone milestone) { - this.milestone = milestone; - } - - public void setEvent(Event event) { - this.event = event; - } - - @Override - public String toString() { - return "MileStoneEvent(milestone=" + this.getMilestone() + ", event=" + this.getEvent() + ")"; - } - - @Override - public boolean equals(final Object o) { - if (o == this) return true; - if (!(o instanceof MileStoneEvent)) return false; - final MileStoneEvent other = (MileStoneEvent) o; - return other.canEqual(this) - && super.equals(o) - && Objects.equals(this.getMilestone(), other.getMilestone()) - && Objects.equals(this.getEvent(), other.getEvent()); - } - - protected boolean canEqual(final Object other) { - return other instanceof MileStoneEvent; - } - - @Override - public int hashCode() { - return Objects.hash(this.getMilestone(), this.getEvent()); + public enum Event { + MILESTONE_CONFIRMED, MILESTONE_REVOKED } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerEvent.java index 17272c9768..d290f4611b 100755 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.peer.PeerReview; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.system.DomainObject; @@ -12,22 +15,26 @@ import jakarta.persistence.ManyToOne; @Entity public class PeerEvent extends NotificationEvent { - public enum Event { REVIEW_COMPLETED, REVIEW_COMMENT, REVIEW_ACCEPTED, REQUEST_DELETED, - REQUEST_EXPIRED } - - @ManyToOne - private PeerReview review; - + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private Event event; + @ManyToOne + @JoinColumn(name = "peer_review_id", referencedColumnName = "id") + private PeerReview review; + public PeerEvent() { super(Notification.Type.PEER); } @Override - public Project getProject() { - return review.getProject(); + public Event getEvent() { + return event; + } + + public void setEvent(Event event) { + this.event = event; } public PeerReview getReview() { @@ -39,12 +46,8 @@ public class PeerEvent extends NotificationEvent { } @Override - public Event getEvent() { - return event; - } - - public void setEvent(Event event) { - this.event = event; + public Project getProject() { + return review.getProject(); } @Override @@ -61,4 +64,8 @@ public class PeerEvent extends NotificationEvent { public DomainObject getEntity() { return review; } + + public enum Event { + REVIEW_COMPLETED, REVIEW_COMMENT, REVIEW_ACCEPTED, REQUEST_DELETED, + REQUEST_EXPIRED } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerRequestEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerRequestEvent.java index 37355d4d44..72f6dac062 100644 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerRequestEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/PeerRequestEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.peer.PeerRequest; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.system.DomainObject; @@ -12,10 +15,13 @@ import jakarta.persistence.ManyToOne; @Entity public class PeerRequestEvent extends NotificationEvent { + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private PeerEvent.Event event; @ManyToOne + @JoinColumn(name = "peer_request_id", referencedColumnName = "id") private PeerRequest request; public PeerRequestEvent() { diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectEvent.java index c8c3e51032..bc0b4ecc88 100755 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.system.DomainObject; @@ -11,37 +14,19 @@ import jakarta.persistence.ManyToOne; @Entity public class ProjectEvent extends NotificationEvent { - public enum Event { - CREATED, AUTHORS_CHANGED, HEAD_SUPERVISOR_CHANGED, REVIEWERS_CHANGED, CO_SUPERVISOR_CHANGED, - STATE_CHANGED, ACTIVITY_ADDED, ACTIVITY_REMOVED, ACTIVITY_EDITED, FILE_UPLOADED, CHECKLIST_ANSWERED, - CHECKLIST_ADDED, MILESTONE_CONFIRMED, MILESTONE_REVOKED, FINAL_THESIS_APPROVED, FILE_SIZE_TOO_BIG, - FINAL_THESIS_UPLOADED, PROJECT_ACTIVATED, PROJECT_DEACTIVATED, FINAL_SEMINAR_APPROVAL_REQUESTED, - FINAL_SEMINAR_APPROVAL_APPROVED, FINAL_SEMINAR_APPROVAL_REJECTED, ROUGH_DRAFT_APPROVAL_REQUESTED, - ROUGH_DRAFT_APPROVAL_APPROVED, ROUGH_DRAFT_APPROVAL_REJECTED, REVIEWER_GRADING_REPORT_SUBMITTED, - ONE_YEAR_PASSED_FROM_LATEST_ANNUAL_REVIEW, SUPERVISOR_GRADING_INITIAL_ASSESSMENT_DONE, - EXPORTED_SUCCESS, REVIEWER_GRADING_INITIAL_ASSESSMENT_DONE, FIRST_MEETING, OPPOSITION_FAILED, PARTICIPATION_APPROVED, COMPLETED, - PARTICIPATION_FAILED - } - - @ManyToOne - private Project project; - + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private Event event; + @ManyToOne + @JoinColumn(name = "project_id", referencedColumnName = "id") + private Project project; + public ProjectEvent() { super(Notification.Type.PROJECT); } - @Override - public Project getProject() { - return project; - } - - public void setProject(Project project) { - this.project = project; - } - @Override public Event getEvent() { return event; @@ -51,6 +36,15 @@ public class ProjectEvent extends NotificationEvent { this.event = event; } + @Override + public Project getProject() { + return project; + } + + public void setProject(Project project) { + this.project = project; + } + @Override public String getEntityTitle() { return project.getTitle(); @@ -65,4 +59,16 @@ public class ProjectEvent extends NotificationEvent { public DomainObject getEntity() { return project; } + + public enum Event { + CREATED, AUTHORS_CHANGED, HEAD_SUPERVISOR_CHANGED, REVIEWERS_CHANGED, CO_SUPERVISOR_CHANGED, + STATE_CHANGED, ACTIVITY_ADDED, ACTIVITY_REMOVED, ACTIVITY_EDITED, FILE_UPLOADED, CHECKLIST_ANSWERED, + CHECKLIST_ADDED, MILESTONE_CONFIRMED, MILESTONE_REVOKED, FINAL_THESIS_APPROVED, FILE_SIZE_TOO_BIG, + FINAL_THESIS_UPLOADED, PROJECT_ACTIVATED, PROJECT_DEACTIVATED, FINAL_SEMINAR_APPROVAL_REQUESTED, + FINAL_SEMINAR_APPROVAL_APPROVED, FINAL_SEMINAR_APPROVAL_REJECTED, ROUGH_DRAFT_APPROVAL_REQUESTED, + ROUGH_DRAFT_APPROVAL_APPROVED, ROUGH_DRAFT_APPROVAL_REJECTED, REVIEWER_GRADING_REPORT_SUBMITTED, + ONE_YEAR_PASSED_FROM_LATEST_ANNUAL_REVIEW, SUPERVISOR_GRADING_INITIAL_ASSESSMENT_DONE, + EXPORTED_SUCCESS, REVIEWER_GRADING_INITIAL_ASSESSMENT_DONE, FIRST_MEETING, OPPOSITION_FAILED, PARTICIPATION_APPROVED, COMPLETED, + PARTICIPATION_FAILED + } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectForumEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectForumEvent.java index a5b2989c19..c4ca9fb4f4 100644 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectForumEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/ProjectForumEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.system.DomainObject; @@ -10,29 +13,20 @@ import jakarta.persistence.ManyToOne; @Entity public class ProjectForumEvent extends NotificationEvent { - @ManyToOne - private Project project; + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private Event event; - public void setProject(Project project) { - this.project = project; - } - - public enum Event { - NEW_FORUM_POST, NEW_FORUM_POST_COMMENT, NEW_REVIEWER_INTERACTION - } + @ManyToOne + @JoinColumn(name = "project_id", referencedColumnName = "id") + private Project project; public ProjectForumEvent() { super(Notification.Type.FORUM); } - @Override - public Project getProject() { - return this.project; - } - @Override public Event getEvent() { return event; @@ -42,6 +36,15 @@ public class ProjectForumEvent extends NotificationEvent { this.event = event; } + @Override + public Project getProject() { + return this.project; + } + + public void setProject(Project project) { + this.project = project; + } + @Override protected String getEntityTitle() { return project.getTitle(); @@ -57,4 +60,7 @@ public class ProjectForumEvent extends NotificationEvent { return project; } + public enum Event { + NEW_FORUM_POST, NEW_FORUM_POST_COMMENT, NEW_REVIEWER_INTERACTION + } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/SeminarEvent.java b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/SeminarEvent.java index 46951edcc3..5f71fc87a3 100755 --- a/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/SeminarEvent.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/dataobject/SeminarEvent.java @@ -1,5 +1,8 @@ package se.su.dsv.scipro.notifications.dataobject; +import jakarta.persistence.Basic; +import jakarta.persistence.Column; +import jakarta.persistence.JoinColumn; import se.su.dsv.scipro.finalseminar.FinalSeminar; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.system.DomainObject; @@ -12,27 +15,19 @@ import jakarta.persistence.ManyToOne; @Entity public class SeminarEvent extends NotificationEvent { - public enum Event { CREATED, ROOM_CHANGED, DATE_CHANGED, OPPOSITION_CHANGED, PARTICIPATION_CHANGED, THESIS_UPLOADED, THESIS_UPLOADED_OPPONENT, - OPPOSITION_REPORT_UPLOADED, THESIS_DELETED, THESIS_UPLOAD_REMIND, CANCELLED} - - @ManyToOne - private FinalSeminar seminar; - + @Basic + @Column(name = "event") @Enumerated(EnumType.STRING) private Event event; + @ManyToOne + @JoinColumn(name = "final_seminar_id", referencedColumnName = "id") + private FinalSeminar seminar; + public SeminarEvent() { super(Notification.Type.FINAL_SEMINAR); } - public FinalSeminar getSeminar() { - return seminar; - } - - public void setSeminar(FinalSeminar seminar) { - this.seminar = seminar; - } - @Override public Event getEvent() { return event; @@ -42,6 +37,14 @@ public class SeminarEvent extends NotificationEvent { this.event = event; } + public FinalSeminar getSeminar() { + return seminar; + } + + public void setSeminar(FinalSeminar seminar) { + this.seminar = seminar; + } + @Override public String getEntityTitle() { return seminar.getProject().getTitle(); @@ -61,4 +64,8 @@ public class SeminarEvent extends NotificationEvent { public DomainObject getEntity() { return seminar; } + + public enum Event { CREATED, ROOM_CHANGED, DATE_CHANGED, OPPOSITION_CHANGED, + PARTICIPATION_CHANGED, THESIS_UPLOADED, THESIS_UPLOADED_OPPONENT, + OPPOSITION_REPORT_UPLOADED, THESIS_DELETED, THESIS_UPLOAD_REMIND, CANCELLED} }