task/3382: Harmonisera tabellnamn #6

Merged
ansv7779 merged 104 commits from task/3382 into develop 2024-11-12 13:33:44 +01:00
3 changed files with 211 additions and 117 deletions
Showing only changes of commit 9f13775096 - Show all commits

View File

@ -1,5 +1,6 @@
package se.su.dsv.scipro.mail;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.GenerationType;
import se.su.dsv.scipro.file.FileReference;
import se.su.dsv.scipro.system.DomainObject;
@ -19,61 +20,80 @@ import jakarta.persistence.Lob;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import java.util.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@Entity
@Table(name = "mail_event")
@Cacheable(false)
public class MailEvent extends DomainObject {
public static final int STRING_MAX_LENGTH = 255;
// ----------------------------------------------------------------------------------
// Basic JPA-mappings
// ----------------------------------------------------------------------------------
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JoinTable(
name = "mail_event_recipients",
joinColumns = @JoinColumn(name = "mail_event_id"),
inverseJoinColumns = @JoinColumn(name = "recipients_id"))
@ManyToMany(fetch = FetchType.EAGER)
private Set<User> recipients = new HashSet<>();
@ElementCollection
private Set<String> nonUserRecipients = new HashSet<>();
@Column(length = STRING_MAX_LENGTH)
@Basic(optional = false)
@Column(name = "subject", length = STRING_MAX_LENGTH)
private String subject;
@Column(length = STRING_MAX_LENGTH)
@Basic(optional = true)
@Column(name = "from_name", length = STRING_MAX_LENGTH)
private String fromName;
@Column(length = STRING_MAX_LENGTH)
@Basic(optional = true)
@Column(name = "from_email", length = STRING_MAX_LENGTH)
private String fromEmail;
@Lob
@Basic(optional = false)
@Column(name = "message_body")
@Lob
private String messageBody;
@Basic(optional = false)
@Column(name = "sent")
private boolean sent = false;
@Basic(optional = true)
@Column(name = "message_id")
private String messageID;
// ----------------------------------------------------------------------------------
// JPA-mappings of foreign keys in this table (mail_event) referencing other
// tables.
// ----------------------------------------------------------------------------------
@ManyToOne(optional = true)
@JoinColumn(name = "attachment_reference_id")
@JoinColumn(name = "attachment_file_reference_id", referencedColumnName = "id")
private FileReference attachment;
// ----------------------------------------------------------------------------------
// @ManyToMany JPA-mappings
// ----------------------------------------------------------------------------------
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "mail_event_recipient",
joinColumns = @JoinColumn(name = "mail_event_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "recipient_id", referencedColumnName = "id"))
private Set<User> recipients = new HashSet<>();
@ElementCollection
@CollectionTable(name = "mail_event_non_user_recipient",
joinColumns = @JoinColumn(name = "mail_event_id", referencedColumnName = "id"))
@Column(name = "non_user_recipient")
private Set<String> nonUserRecipients = new HashSet<>();
// ----------------------------------------------------------------------------------
// Constructors
// ----------------------------------------------------------------------------------
public MailEvent() {
}
public MailEvent(
final String subject,
final String messageBody,
final User recipient,
final String fromName,
public MailEvent(final String subject, final String messageBody, final User recipient, final String fromName,
final String fromEmail) {
this.subject = subject;
this.messageBody = messageBody;
@ -82,13 +102,8 @@ public class MailEvent extends DomainObject {
this.fromEmail = fromEmail;
}
public MailEvent(
final String subject,
final String messageBody,
final Collection<User> recipients,
final String fromName,
final String fromEmail
) {
public MailEvent(final String subject, final String messageBody, final Collection<User> recipients,
final String fromName, final String fromEmail) {
this.subject = subject;
this.messageBody = messageBody;
this.recipients.addAll(recipients);
@ -96,35 +111,124 @@ public class MailEvent extends DomainObject {
this.fromEmail = fromEmail;
}
public boolean isSent() {
return sent;
// ----------------------------------------------------------------------------------
// Properties (Getters and Setters)
// ----------------------------------------------------------------------------------
@Override
public Long getId() {
return this.id;
}
public void markSent(final String messageID) {
this.messageID = messageID;
this.sent = true;
public void setId(Long id) {
this.id = id;
}
public Set<User> getRecipients() {
return recipients;
}
public void setMessageBody(String messageBody) {
this.messageBody = messageBody;
public String getSubject() {
return this.subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getFromName() {
return this.fromName;
}
public void setFromName(String fromName) {
this.fromName = fromName;
}
public String getFromEmail() {
return this.fromEmail;
}
public void setFromEmail(String fromEmail) {
this.fromEmail = fromEmail;
}
public String getMessageBody() {
return this.messageBody;
}
public void setMessageBody(String messageBody) {
this.messageBody = messageBody;
}
public boolean isSent() {
return sent;
}
public void setSent(boolean sent) {
this.sent = sent;
}
public String getMessageID() {
return this.messageID;
}
public void setMessageID(String messageID) {
this.messageID = messageID;
}
public FileReference getAttachment() {
return this.attachment;
}
public void setAttachment(FileReference attachment) {
this.attachment = attachment;
}
public Set<User> getRecipients() {
return recipients;
}
public void setRecipients(Set<User> recipients) {
this.recipients = recipients;
}
public Set<String> getNonUserRecipients() {
return this.nonUserRecipients;
}
public void setNonUserRecipients(Set<String> nonUserRecipients) {
this.nonUserRecipients = nonUserRecipients;
}
// ----------------------------------------------------------------------------------
// Methods Common To All Objects
// ----------------------------------------------------------------------------------
@Override
public boolean equals(final Object o) {
if (o == this) return true;
if (!(o instanceof MailEvent)) return false;
final MailEvent other = (MailEvent) o;
return other.canEqual(this)
&& Objects.equals(this.getId(), other.getId());
}
@Override
public int hashCode() {
return Objects.hashCode(this.getId());
}
@Override
public String toString() {
return "MailEvent(id=" + this.getId() + ", recipients=" + this.getRecipients() +
", nonUserRecipients=" + this.getNonUserRecipients() + ", subject=" +
this.getSubject() + ", fromName=" + this.getFromName() +
", fromEmail=" + this.getFromEmail() + ", messageBody=" + this.getMessageBody() +
", sent=" + this.isSent() + ", messageID=" + this.getMessageID() +
", attachment=" + this.getAttachment() + ")";
}
// ----------------------------------------------------------------------------------
// Other Methods
// ----------------------------------------------------------------------------------
protected boolean canEqual(final Object other) {
return other instanceof MailEvent;
}
public void addRecipients(final Iterable<Recipient> recipients) {
for (Recipient recipient : recipients) {
recipient.accept(new RecipientVisitor<Boolean>() {
@ -141,83 +245,8 @@ public class MailEvent extends DomainObject {
}
}
@Override
public Long getId() {
return this.id;
}
public Set<String> getNonUserRecipients() {
return this.nonUserRecipients;
}
public String getSubject() {
return this.subject;
}
public String getFromName() {
return this.fromName;
}
public String getFromEmail() {
return this.fromEmail;
}
public String getMessageBody() {
return this.messageBody;
}
public String getMessageID() {
return this.messageID;
}
public FileReference getAttachment() {
return this.attachment;
}
public void setId(Long id) {
this.id = id;
}
public void setRecipients(Set<User> recipients) {
this.recipients = recipients;
}
public void setNonUserRecipients(Set<String> nonUserRecipients) {
this.nonUserRecipients = nonUserRecipients;
}
public void setSent(boolean sent) {
this.sent = sent;
}
public void setMessageID(String messageID) {
public void markSent(final String messageID) {
this.messageID = messageID;
}
public void setAttachment(FileReference attachment) {
this.attachment = attachment;
}
@Override
public String toString() {
return "MailEvent(id=" + this.getId() + ", recipients=" + this.getRecipients() + ", nonUserRecipients=" + this.getNonUserRecipients() + ", subject=" + this.getSubject() + ", fromName=" + this.getFromName() + ", fromEmail=" + this.getFromEmail() + ", messageBody=" + this.getMessageBody() + ", sent=" + this.isSent() + ", messageID=" + this.getMessageID() + ", attachment=" + this.getAttachment() + ")";
}
@Override
public boolean equals(final Object o) {
if (o == this) return true;
if (!(o instanceof MailEvent)) return false;
final MailEvent other = (MailEvent) o;
return other.canEqual(this)
&& Objects.equals(this.getId(), other.getId());
}
protected boolean canEqual(final Object other) {
return other instanceof MailEvent;
}
@Override
public int hashCode() {
return Objects.hashCode(this.getId());
this.sent = true;
}
}

View File

@ -125,7 +125,7 @@ public class Idea extends DomainObject {
private User creator;
@OneToOne(optional = true, cascade = CascadeType.ALL)
@JoinColumn(name = "match_id", referencedColumnName = "id")
@JoinColumn(name = "latest_match_id", referencedColumnName = "id")
@QueryInit({"supervisor.user", "supervisor.unit"})
private Match match;

View File

@ -2821,6 +2821,71 @@ alter table `plagiarism_request`
foreign key (receiver_user_id) references user (id)
on delete cascade on update cascade;
/*
* Step 20: mail_event, mail_event_recipients and MailEvent_nonUserRecipients
*/
-- table: mail_event
alter table `mail_event` drop foreign key `FK_mail_event_attachment`;
alter table `mail_event` drop key `FK_mail_event_attachment`;
alter table `mail_event` change `version` `version` int(4) not null default 0 after `last_modified`;
alter table `mail_event` change `subject` `subject` varchar(255) not null after `version`;
alter table `mail_event` change `fromName` `from_name` varchar(255) default null after `subject`;
alter table `mail_event` change `fromEmail` `from_email` varchar(255) default null after `from_name`;
alter table `mail_event` change `messageBody` `message_body` longtext not null after `from_email`;
alter table `mail_event` change `sent` `sent` tinyint(1) not null default 0 after `message_body`;
alter table `mail_event` change `messageID` `message_id` varchar(255) default null after `sent`;
alter table `mail_event` change `notificationEventType` `notification_event_type` varchar(255) default null after `message_id`;
alter table `mail_event` change `attachment_reference_id` `attachment_file_reference_id` bigint(20) default null after `notification_event_type`;
alter table `mail_event`
add constraint fk_mail_event_attachment_file_reference_id
foreign key (attachment_file_reference_id) references file_reference (id)
on delete cascade on update cascade;
-- table: mail_event_recipients
alter table `mail_event_recipients` drop foreign key `FK_mail_event_recipients_user`;
alter table `mail_event_recipients` drop foreign key `FK41091C7FE7F98C6`;
alter table `mail_event_recipients` drop key `FK41091C7B286D1B0`;
alter table `mail_event_recipients` drop key `FK41091C7FE7F98C6`;
alter table `mail_event_recipients` drop primary key;
rename table `mail_event_recipients` to `mail_event_recipient`;
alter table `mail_event_recipient` change `recipients_id` `recipient_id` bigint(20) not null after `mail_event_id`;
alter table `mail_event_recipient` add primary key (mail_event_id, recipient_id);
alter table `mail_event_recipient`
add constraint fk_mail_event_recipient_mail_event_id
foreign key (mail_event_id) references mail_event (id)
on delete cascade on update cascade;
alter table `mail_event_recipient`
add constraint fk_mail_event_recipient_recipient_id
foreign key (recipient_id) references user (id)
on delete cascade on update cascade;
-- table: MailEvent_nonUserRecipients
alter table `MailEvent_nonUserRecipients` drop foreign key `FKD7F8996D0814DF5`;
alter table `MailEvent_nonUserRecipients` drop key `FKD7F8996D0814DF5`;
rename table `MailEvent_nonUserRecipients` to `mail_event_non_user_recipient`;
alter table `mail_event_non_user_recipient` change `MailEvent_id` `mail_event_id` bigint(20) not null;
alter table `mail_event_non_user_recipient` change `nonUserRecipients` `non_user_recipient` varchar(255) default null;
alter table `mail_event_non_user_recipient`
add constraint fk_mail_event_non_user_recipient_mail_event_id
foreign key (mail_event_id) references mail_event (id)
on delete cascade on update cascade;
/* Useful SQL