NotificationTask.java
package no.nav.data.team.notify.domain;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import no.nav.data.common.auditing.domain.AuditVersion;
import no.nav.data.common.storage.domain.ChangeStamp;
import no.nav.data.common.storage.domain.DomainObject;
import no.nav.data.team.notify.domain.Notification.NotificationChannel;
import no.nav.data.team.notify.domain.Notification.NotificationTime;
import java.util.List;
import java.util.UUID;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NotificationTask implements DomainObject {
private UUID id;
private ChangeStamp changeStamp;
private String ident;
private NotificationTime time;
private NotificationChannel channel;
private List<AuditTarget> targets;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class AuditTarget {
private UUID targetId;
private String type;
private UUID prevAuditId;
private UUID currAuditId;
private boolean silent;
@JsonIgnore
private AuditVersion prevAuditVersion;
@JsonIgnore
private AuditVersion currAuditVersion;
public boolean isCreate() {
return prevAuditId == null && currAuditId != null;
}
public boolean isUpdate() {
return prevAuditId != null && currAuditId != null;
}
public boolean isDelete() {
return prevAuditId != null && currAuditId == null;
}
public boolean isEdit() {
return prevAuditId != null && currAuditId != null;
}
public boolean isTeam() {
return type.equals(AuditVersion.TEAM_TYPE);
}
}
}