AuditEntry.java
- package pk.lucidxpo.ynami.persistence.model;
- import jakarta.persistence.Column;
- import jakarta.persistence.Entity;
- import jakarta.persistence.Id;
- import jakarta.persistence.Lob;
- import lombok.Getter;
- import lombok.NoArgsConstructor;
- import lombok.ToString;
- import java.time.Instant;
- import static java.time.temporal.ChronoUnit.MICROS;
- import static pk.lucidxpo.ynami.utils.Identity.randomID;
- @Entity
- @Getter
- @ToString
- @NoArgsConstructor
- public class AuditEntry {
- @Id
- @Column(nullable = false, updatable = false)
- private final String id = randomID();
- @Column(nullable = false)
- private String changedEntityName;
- @Column(nullable = false)
- private String changedEntityId;
- @Column(nullable = false)
- private String fieldChanged;
- @Lob
- @Column //field can change from null
- private String fromValue;
- @Lob
- @Column //field can change into null
- private String toValue;
- @Column(nullable = false)
- private String changedBy;
- @Column(nullable = false)
- private Instant changedAt = Instant.now().truncatedTo(MICROS);
- public AuditEntry(final String changedEntityName,
- final String changedEntityId,
- final String fieldChanged,
- final String fromValue,
- final String toValue,
- final String changedBy) {
- this.changedEntityName = changedEntityName;
- this.changedEntityId = changedEntityId;
- this.fieldChanged = fieldChanged;
- this.fromValue = fromValue;
- this.toValue = toValue;
- this.changedBy = changedBy;
- }
- public AuditEntry(final Instant changedAt,
- final String changedEntityName,
- final String changedEntityId,
- final String fieldChanged,
- final String fromValue,
- final String toValue,
- final String changedBy) {
- this.changedAt = changedAt;
- this.changedEntityName = changedEntityName;
- this.changedEntityId = changedEntityId;
- this.fieldChanged = fieldChanged;
- this.fromValue = fromValue;
- this.toValue = toValue;
- this.changedBy = changedBy;
- }
- }