diff --git a/src/main/java/org/example/alfs/entities/Attachment.java b/src/main/java/org/example/alfs/entities/Attachment.java index 53bf491..f8fcc48 100644 --- a/src/main/java/org/example/alfs/entities/Attachment.java +++ b/src/main/java/org/example/alfs/entities/Attachment.java @@ -10,6 +10,7 @@ Stores metadata about the file and the file reference s3key. */ @Entity +@Table(name = "attachment") @Getter @Setter @AllArgsConstructor @@ -17,7 +18,7 @@ public class Attachment { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) @@ -33,6 +34,7 @@ public void prePersist() { uploadedAt = LocalDateTime.now(); } - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "ticket_id", nullable = false) private Ticket ticket; } diff --git a/src/main/java/org/example/alfs/entities/AuditLog.java b/src/main/java/org/example/alfs/entities/AuditLog.java index 103bc9e..04360b3 100644 --- a/src/main/java/org/example/alfs/entities/AuditLog.java +++ b/src/main/java/org/example/alfs/entities/AuditLog.java @@ -20,13 +20,14 @@ public class AuditLog { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Enumerated(EnumType.STRING) @Column(nullable = false, length = 50) private AuditAction action; + @Column(nullable = false) private String fieldName; @Column(length = 4000) @@ -35,6 +36,7 @@ public class AuditLog { @Column(length = 4000) private String newValue; + @Column(nullable = false) private LocalDateTime createdAt; @PrePersist diff --git a/src/main/java/org/example/alfs/entities/Ticket.java b/src/main/java/org/example/alfs/entities/Ticket.java index 70646b3..b159aaa 100644 --- a/src/main/java/org/example/alfs/entities/Ticket.java +++ b/src/main/java/org/example/alfs/entities/Ticket.java @@ -4,7 +4,6 @@ import lombok.*; import org.example.alfs.enums.TicketStatus; - import java.time.LocalDateTime; import java.util.List; import java.util.UUID; @@ -23,14 +22,14 @@ public class Ticket { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @Column(nullable = false, length = 255) + @Column(nullable = false, length = 255, updatable = false) private String title; @Basic(fetch = FetchType.LAZY) - @Column(nullable = false, columnDefinition="TEXT") + @Column(nullable = false, columnDefinition = "TEXT", updatable = false) private String description; @Enumerated(EnumType.STRING) @@ -48,7 +47,8 @@ public class Ticket { public void prePersist() { createdAt = LocalDateTime.now(); if (status == null) status = TicketStatus.OPEN; - if (reporterToken == null || reporterToken.isBlank()) reporterToken = UUID.randomUUID().toString(); // Skapa token för anonyma anmälare + if (reporterToken == null || reporterToken.isBlank()) + reporterToken = UUID.randomUUID().toString(); // Skapa token för anonyma anmälare } @PreUpdate diff --git a/src/main/java/org/example/alfs/entities/TicketComment.java b/src/main/java/org/example/alfs/entities/TicketComment.java index ffb65fa..48e3727 100644 --- a/src/main/java/org/example/alfs/entities/TicketComment.java +++ b/src/main/java/org/example/alfs/entities/TicketComment.java @@ -19,16 +19,16 @@ public class TicketComment { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Basic(fetch = FetchType.LAZY) - @Column(nullable = false, columnDefinition="TEXT") + @Column(nullable = false, columnDefinition = "TEXT") private String message; // Möjlighet att skriva internt meddelande (synligt för utredare/admin, inte för anmälare) @Column(nullable = false) - private boolean isInternalNote = false; + private boolean internalNote = false; private LocalDateTime createdAt; @@ -37,9 +37,11 @@ public void prePersist() { createdAt = LocalDateTime.now(); } - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "ticket_id", nullable = false) private Ticket ticket; - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "author_id", nullable = true) private User author; } diff --git a/src/main/java/org/example/alfs/entities/User.java b/src/main/java/org/example/alfs/entities/User.java index 43f85d3..1645d33 100644 --- a/src/main/java/org/example/alfs/entities/User.java +++ b/src/main/java/org/example/alfs/entities/User.java @@ -16,8 +16,8 @@ @NoArgsConstructor public class User { - @GeneratedValue @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true, length = 100) diff --git a/src/main/java/org/example/alfs/enums/AuditAction.java b/src/main/java/org/example/alfs/enums/AuditAction.java index 36076c0..44f2fd3 100644 --- a/src/main/java/org/example/alfs/enums/AuditAction.java +++ b/src/main/java/org/example/alfs/enums/AuditAction.java @@ -2,7 +2,9 @@ public enum AuditAction { CREATED, - UPDATED, + STATUS_CHANGED, ASSIGNED, - COMMENTED + UNASSIGNED, + COMMENT_ADDED, + ATTACHMENT_ADDED } \ No newline at end of file diff --git a/src/main/java/org/example/alfs/repositories/TicketCommentRepository.java b/src/main/java/org/example/alfs/repositories/TicketCommentRepository.java index 4d01ef8..bf4a4b4 100644 --- a/src/main/java/org/example/alfs/repositories/TicketCommentRepository.java +++ b/src/main/java/org/example/alfs/repositories/TicketCommentRepository.java @@ -11,5 +11,5 @@ public interface TicketCommentRepository extends JpaRepository findByTicketIdOrderByCreatedAtAsc(Long ticketId); // Ladda interna meddelanden för utredare/admins, äldst först - List findByTicketIdAndIsInternalNoteOrderByCreatedAtAsc(Long ticketId, boolean isInternalNote); + List findByTicketIdAndInternalNoteOrderByCreatedAtAsc(Long ticketId, boolean isInternalNote); }