From a39fd9928ca2965ba0ac9ac96f4307b9ff8a1128 Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 5 May 2026 11:24:20 +0200 Subject: [PATCH] refactor(notification): move notification domain to package org.raddatz.familienarchiv.notification Co-Authored-By: Claude Sonnet 4.6 --- .../{model => notification}/Notification.java | 3 ++- .../NotificationController.java | 10 +++++----- .../{dto => notification}/NotificationDTO.java | 4 ++-- .../NotificationPreferenceDTO.java | 2 +- .../NotificationRepository.java | 6 +++--- .../NotificationService.java | 13 ++++++++----- .../{model => notification}/NotificationType.java | 2 +- .../familienarchiv/service/CommentService.java | 1 + .../NotificationControllerTest.java | 8 ++++---- .../NotificationRepositoryTest.java | 7 ++++--- .../NotificationServiceTest.java | 9 ++++++--- .../familienarchiv/service/CommentServiceTest.java | 1 + 12 files changed, 38 insertions(+), 28 deletions(-) rename backend/src/main/java/org/raddatz/familienarchiv/{model => notification}/Notification.java (93%) rename backend/src/main/java/org/raddatz/familienarchiv/{controller => notification}/NotificationController.java (93%) rename backend/src/main/java/org/raddatz/familienarchiv/{dto => notification}/NotificationDTO.java (83%) rename backend/src/main/java/org/raddatz/familienarchiv/{dto => notification}/NotificationPreferenceDTO.java (65%) rename backend/src/main/java/org/raddatz/familienarchiv/{repository => notification}/NotificationRepository.java (87%) rename backend/src/main/java/org/raddatz/familienarchiv/{service => notification}/NotificationService.java (94%) rename backend/src/main/java/org/raddatz/familienarchiv/{model => notification}/NotificationType.java (53%) rename backend/src/test/java/org/raddatz/familienarchiv/{controller => notification}/NotificationControllerTest.java (98%) rename backend/src/test/java/org/raddatz/familienarchiv/{repository => notification}/NotificationRepositoryTest.java (95%) rename backend/src/test/java/org/raddatz/familienarchiv/{service => notification}/NotificationServiceTest.java (98%) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/Notification.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/Notification.java similarity index 93% rename from backend/src/main/java/org/raddatz/familienarchiv/model/Notification.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/Notification.java index ee5d3b9e..1f7ea56a 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/model/Notification.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/Notification.java @@ -1,10 +1,11 @@ -package org.raddatz.familienarchiv.model; +package org.raddatz.familienarchiv.notification; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.CreationTimestamp; +import org.raddatz.familienarchiv.model.AppUser; import java.time.LocalDateTime; import java.util.UUID; diff --git a/backend/src/main/java/org/raddatz/familienarchiv/controller/NotificationController.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationController.java similarity index 93% rename from backend/src/main/java/org/raddatz/familienarchiv/controller/NotificationController.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationController.java index 76781c0c..ddcf4b8b 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/controller/NotificationController.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationController.java @@ -1,16 +1,16 @@ -package org.raddatz.familienarchiv.controller; +package org.raddatz.familienarchiv.notification; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import lombok.RequiredArgsConstructor; import io.swagger.v3.oas.annotations.Parameter; -import org.raddatz.familienarchiv.dto.NotificationDTO; -import org.raddatz.familienarchiv.dto.NotificationPreferenceDTO; +import org.raddatz.familienarchiv.notification.NotificationDTO; +import org.raddatz.familienarchiv.notification.NotificationPreferenceDTO; import org.raddatz.familienarchiv.model.AppUser; -import org.raddatz.familienarchiv.model.NotificationType; +import org.raddatz.familienarchiv.notification.NotificationType; import org.raddatz.familienarchiv.security.Permission; import org.raddatz.familienarchiv.security.RequirePermission; -import org.raddatz.familienarchiv.service.NotificationService; +import org.raddatz.familienarchiv.notification.NotificationService; import org.raddatz.familienarchiv.service.SseEmitterRegistry; import org.raddatz.familienarchiv.service.UserService; import org.springframework.data.domain.Page; diff --git a/backend/src/main/java/org/raddatz/familienarchiv/dto/NotificationDTO.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationDTO.java similarity index 83% rename from backend/src/main/java/org/raddatz/familienarchiv/dto/NotificationDTO.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationDTO.java index 537bf0ee..665a573d 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/dto/NotificationDTO.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationDTO.java @@ -1,7 +1,7 @@ -package org.raddatz.familienarchiv.dto; +package org.raddatz.familienarchiv.notification; import io.swagger.v3.oas.annotations.media.Schema; -import org.raddatz.familienarchiv.model.NotificationType; +import org.raddatz.familienarchiv.notification.NotificationType; import java.time.LocalDateTime; import java.util.UUID; diff --git a/backend/src/main/java/org/raddatz/familienarchiv/dto/NotificationPreferenceDTO.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationPreferenceDTO.java similarity index 65% rename from backend/src/main/java/org/raddatz/familienarchiv/dto/NotificationPreferenceDTO.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationPreferenceDTO.java index a789663c..6cbb3c81 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/dto/NotificationPreferenceDTO.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationPreferenceDTO.java @@ -1,3 +1,3 @@ -package org.raddatz.familienarchiv.dto; +package org.raddatz.familienarchiv.notification; public record NotificationPreferenceDTO(boolean notifyOnReply, boolean notifyOnMention) {} diff --git a/backend/src/main/java/org/raddatz/familienarchiv/repository/NotificationRepository.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationRepository.java similarity index 87% rename from backend/src/main/java/org/raddatz/familienarchiv/repository/NotificationRepository.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationRepository.java index d9d4ca03..c0975c13 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/repository/NotificationRepository.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationRepository.java @@ -1,7 +1,7 @@ -package org.raddatz.familienarchiv.repository; +package org.raddatz.familienarchiv.notification; -import org.raddatz.familienarchiv.model.Notification; -import org.raddatz.familienarchiv.model.NotificationType; +import org.raddatz.familienarchiv.notification.Notification; +import org.raddatz.familienarchiv.notification.NotificationType; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/NotificationService.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationService.java similarity index 94% rename from backend/src/main/java/org/raddatz/familienarchiv/service/NotificationService.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationService.java index 5a07e5ad..4a997ffc 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/NotificationService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationService.java @@ -1,15 +1,18 @@ -package org.raddatz.familienarchiv.service; +package org.raddatz.familienarchiv.notification; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.raddatz.familienarchiv.dto.NotificationDTO; +import org.raddatz.familienarchiv.notification.NotificationDTO; import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.exception.ErrorCode; import org.raddatz.familienarchiv.model.AppUser; import org.raddatz.familienarchiv.model.DocumentComment; -import org.raddatz.familienarchiv.model.Notification; -import org.raddatz.familienarchiv.model.NotificationType; -import org.raddatz.familienarchiv.repository.NotificationRepository; +import org.raddatz.familienarchiv.service.DocumentService; +import org.raddatz.familienarchiv.service.SseEmitterRegistry; +import org.raddatz.familienarchiv.service.UserService; +import org.raddatz.familienarchiv.notification.Notification; +import org.raddatz.familienarchiv.notification.NotificationType; +import org.raddatz.familienarchiv.notification.NotificationRepository; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/NotificationType.java b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationType.java similarity index 53% rename from backend/src/main/java/org/raddatz/familienarchiv/model/NotificationType.java rename to backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationType.java index deb5ec72..e3bbd47d 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/model/NotificationType.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/notification/NotificationType.java @@ -1,4 +1,4 @@ -package org.raddatz.familienarchiv.model; +package org.raddatz.familienarchiv.notification; public enum NotificationType { REPLY, diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/CommentService.java b/backend/src/main/java/org/raddatz/familienarchiv/service/CommentService.java index da34588f..862a4e2e 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/CommentService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/service/CommentService.java @@ -10,6 +10,7 @@ import org.raddatz.familienarchiv.model.AppUser; import org.raddatz.familienarchiv.model.DocumentComment; import org.raddatz.familienarchiv.model.TranscriptionBlock; import org.raddatz.familienarchiv.repository.CommentRepository; +import org.raddatz.familienarchiv.notification.NotificationService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/backend/src/test/java/org/raddatz/familienarchiv/controller/NotificationControllerTest.java b/backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationControllerTest.java similarity index 98% rename from backend/src/test/java/org/raddatz/familienarchiv/controller/NotificationControllerTest.java rename to backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationControllerTest.java index 8af8ed0e..6a9ffd42 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/controller/NotificationControllerTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationControllerTest.java @@ -1,15 +1,15 @@ -package org.raddatz.familienarchiv.controller; +package org.raddatz.familienarchiv.notification; import org.junit.jupiter.api.Test; import org.raddatz.familienarchiv.config.SecurityConfig; -import org.raddatz.familienarchiv.dto.NotificationDTO; +import org.raddatz.familienarchiv.notification.NotificationDTO; import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.exception.ErrorCode; import org.raddatz.familienarchiv.model.AppUser; -import org.raddatz.familienarchiv.model.NotificationType; +import org.raddatz.familienarchiv.notification.NotificationType; import org.raddatz.familienarchiv.security.PermissionAspect; import org.raddatz.familienarchiv.service.CustomUserDetailsService; -import org.raddatz.familienarchiv.service.NotificationService; +import org.raddatz.familienarchiv.notification.NotificationService; import org.raddatz.familienarchiv.service.SseEmitterRegistry; import org.raddatz.familienarchiv.service.UserService; import org.springframework.beans.factory.annotation.Autowired; diff --git a/backend/src/test/java/org/raddatz/familienarchiv/repository/NotificationRepositoryTest.java b/backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationRepositoryTest.java similarity index 95% rename from backend/src/test/java/org/raddatz/familienarchiv/repository/NotificationRepositoryTest.java rename to backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationRepositoryTest.java index 13d38fca..10489e7b 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/repository/NotificationRepositoryTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationRepositoryTest.java @@ -1,12 +1,13 @@ -package org.raddatz.familienarchiv.repository; +package org.raddatz.familienarchiv.notification; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.raddatz.familienarchiv.PostgresContainerConfig; import org.raddatz.familienarchiv.config.FlywayConfig; import org.raddatz.familienarchiv.model.AppUser; -import org.raddatz.familienarchiv.model.Notification; -import org.raddatz.familienarchiv.model.NotificationType; +import org.raddatz.familienarchiv.notification.Notification; +import org.raddatz.familienarchiv.notification.NotificationType; +import org.raddatz.familienarchiv.repository.AppUserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/NotificationServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationServiceTest.java similarity index 98% rename from backend/src/test/java/org/raddatz/familienarchiv/service/NotificationServiceTest.java rename to backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationServiceTest.java index ab9a8b1d..3e81dc64 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/NotificationServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/notification/NotificationServiceTest.java @@ -1,4 +1,4 @@ -package org.raddatz.familienarchiv.service; +package org.raddatz.familienarchiv.notification; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -6,10 +6,13 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.raddatz.familienarchiv.dto.NotificationDTO; +import org.raddatz.familienarchiv.notification.NotificationDTO; import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.model.*; -import org.raddatz.familienarchiv.repository.NotificationRepository; +import org.raddatz.familienarchiv.notification.NotificationRepository; +import org.raddatz.familienarchiv.service.DocumentService; +import org.raddatz.familienarchiv.service.SseEmitterRegistry; +import org.raddatz.familienarchiv.service.UserService; import org.springframework.data.domain.PageImpl; import org.springframework.mail.MailException; import org.springframework.mail.MailSendException; diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/CommentServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/CommentServiceTest.java index a7854424..3b3a1012 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/CommentServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/CommentServiceTest.java @@ -13,6 +13,7 @@ import org.raddatz.familienarchiv.model.DocumentComment; import org.raddatz.familienarchiv.model.TranscriptionBlock; import org.raddatz.familienarchiv.model.UserGroup; import org.raddatz.familienarchiv.repository.CommentRepository; +import org.raddatz.familienarchiv.notification.NotificationService; import java.time.LocalDateTime; import java.util.List;