refactor(document): move document sub-packages transcription/annotation/comment

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-05 12:23:28 +02:00
parent c0a1c9ff5f
commit bb7d872a61
57 changed files with 201 additions and 148 deletions

View File

@@ -1,15 +1,15 @@
package org.raddatz.familienarchiv.controller;
package org.raddatz.familienarchiv.document.annotation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.dto.CreateAnnotationDTO;
import org.raddatz.familienarchiv.dto.UpdateAnnotationDTO;
import org.raddatz.familienarchiv.document.annotation.CreateAnnotationDTO;
import org.raddatz.familienarchiv.document.annotation.UpdateAnnotationDTO;
import org.raddatz.familienarchiv.model.AppUser;
import org.raddatz.familienarchiv.model.Document;
import org.raddatz.familienarchiv.model.DocumentAnnotation;
import org.raddatz.familienarchiv.document.annotation.DocumentAnnotation;
import org.raddatz.familienarchiv.security.Permission;
import org.raddatz.familienarchiv.security.RequirePermission;
import org.raddatz.familienarchiv.service.AnnotationService;
import org.raddatz.familienarchiv.document.annotation.AnnotationService;
import org.raddatz.familienarchiv.service.DocumentService;
import org.raddatz.familienarchiv.service.UserService;
import jakarta.validation.Valid;

View File

@@ -1,6 +1,6 @@
package org.raddatz.familienarchiv.repository;
package org.raddatz.familienarchiv.document.annotation;
import org.raddatz.familienarchiv.model.DocumentAnnotation;
import org.raddatz.familienarchiv.document.annotation.DocumentAnnotation;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

View File

@@ -1,15 +1,16 @@
package org.raddatz.familienarchiv.service;
package org.raddatz.familienarchiv.document.annotation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.audit.AuditKind;
import org.raddatz.familienarchiv.audit.AuditService;
import org.raddatz.familienarchiv.dto.CreateAnnotationDTO;
import org.raddatz.familienarchiv.dto.UpdateAnnotationDTO;
import org.raddatz.familienarchiv.document.annotation.CreateAnnotationDTO;
import org.raddatz.familienarchiv.document.annotation.UpdateAnnotationDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionService;
import org.raddatz.familienarchiv.exception.DomainException;
import org.raddatz.familienarchiv.exception.ErrorCode;
import org.raddatz.familienarchiv.model.DocumentAnnotation;
import org.raddatz.familienarchiv.repository.AnnotationRepository;
import org.raddatz.familienarchiv.document.annotation.DocumentAnnotation;
import org.raddatz.familienarchiv.document.annotation.AnnotationRepository;
import org.springframework.context.annotation.Lazy;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;

View File

@@ -1,7 +1,8 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.annotation;
import jakarta.validation.Valid;
import jakarta.validation.constraints.DecimalMax;
import org.raddatz.familienarchiv.dto.UniquePoints;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.model;
package org.raddatz.familienarchiv.document.annotation;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.annotation;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;

View File

@@ -1,13 +1,13 @@
package org.raddatz.familienarchiv.controller;
package org.raddatz.familienarchiv.document.comment;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.dto.CreateCommentDTO;
import org.raddatz.familienarchiv.document.comment.CreateCommentDTO;
import org.raddatz.familienarchiv.model.AppUser;
import org.raddatz.familienarchiv.model.DocumentComment;
import org.raddatz.familienarchiv.document.comment.DocumentComment;
import org.raddatz.familienarchiv.security.Permission;
import org.raddatz.familienarchiv.security.RequirePermission;
import org.raddatz.familienarchiv.service.CommentService;
import org.raddatz.familienarchiv.document.comment.CommentService;
import org.raddatz.familienarchiv.service.UserService;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.Authentication;

View File

@@ -1,6 +1,6 @@
package org.raddatz.familienarchiv.repository;
package org.raddatz.familienarchiv.document.comment;
import org.raddatz.familienarchiv.model.DocumentComment;
import org.raddatz.familienarchiv.document.comment.DocumentComment;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

View File

@@ -1,15 +1,17 @@
package org.raddatz.familienarchiv.service;
package org.raddatz.familienarchiv.document.comment;
import lombok.RequiredArgsConstructor;
import org.raddatz.familienarchiv.audit.AuditKind;
import org.raddatz.familienarchiv.audit.AuditService;
import org.raddatz.familienarchiv.dto.MentionDTO;
import org.raddatz.familienarchiv.document.transcription.MentionDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionService;
import org.raddatz.familienarchiv.service.UserService;
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.TranscriptionBlock;
import org.raddatz.familienarchiv.repository.CommentRepository;
import org.raddatz.familienarchiv.document.comment.DocumentComment;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlock;
import org.raddatz.familienarchiv.document.comment.CommentRepository;
import org.raddatz.familienarchiv.notification.NotificationService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.comment;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.model;
package org.raddatz.familienarchiv.document.comment;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -6,7 +6,8 @@ import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import org.raddatz.familienarchiv.dto.MentionDTO;
import org.raddatz.familienarchiv.document.transcription.MentionDTO;
import org.raddatz.familienarchiv.model.AppUser;
import java.time.LocalDateTime;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.transcription;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
@@ -7,7 +7,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.raddatz.familienarchiv.model.PersonMention;
import org.raddatz.familienarchiv.document.transcription.PersonMention;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.transcription;
import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.model;
package org.raddatz.familienarchiv.document.transcription;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.Column;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.transcription;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.model;
package org.raddatz.familienarchiv.document.transcription;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;
@@ -6,6 +6,8 @@ import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import org.raddatz.familienarchiv.model.BlockSource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,17 +1,17 @@
package org.raddatz.familienarchiv.controller;
package org.raddatz.familienarchiv.document.transcription;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.dto.CreateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.dto.ReorderTranscriptionBlocksDTO;
import org.raddatz.familienarchiv.dto.UpdateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.model.TranscriptionBlock;
import org.raddatz.familienarchiv.model.TranscriptionBlockVersion;
import org.raddatz.familienarchiv.document.transcription.CreateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.document.transcription.ReorderTranscriptionBlocksDTO;
import org.raddatz.familienarchiv.document.transcription.UpdateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlock;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockVersion;
import org.raddatz.familienarchiv.security.Permission;
import org.raddatz.familienarchiv.security.RequirePermission;
import org.raddatz.familienarchiv.security.SecurityUtils;
import org.raddatz.familienarchiv.service.TranscriptionService;
import org.raddatz.familienarchiv.document.transcription.TranscriptionService;
import org.raddatz.familienarchiv.service.UserService;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.Authentication;

View File

@@ -1,9 +1,9 @@
package org.raddatz.familienarchiv.service;
package org.raddatz.familienarchiv.document.transcription;
import lombok.RequiredArgsConstructor;
import org.raddatz.familienarchiv.model.TranscriptionBlock;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlock;
import org.raddatz.familienarchiv.repository.CompletionStatsRow;
import org.raddatz.familienarchiv.repository.TranscriptionBlockRepository;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockRepository;
import org.springframework.stereotype.Service;
import java.util.HashMap;

View File

@@ -1,6 +1,7 @@
package org.raddatz.familienarchiv.repository;
package org.raddatz.familienarchiv.document.transcription;
import org.raddatz.familienarchiv.model.TranscriptionBlock;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlock;
import org.raddatz.familienarchiv.repository.CompletionStatsRow;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.model;
package org.raddatz.familienarchiv.document.transcription;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;

View File

@@ -1,6 +1,6 @@
package org.raddatz.familienarchiv.repository;
package org.raddatz.familienarchiv.document.transcription;
import org.raddatz.familienarchiv.model.TranscriptionBlockVersion;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockVersion;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

View File

@@ -1,11 +1,11 @@
package org.raddatz.familienarchiv.controller;
package org.raddatz.familienarchiv.document.transcription;
import lombok.RequiredArgsConstructor;
import org.raddatz.familienarchiv.dto.TranscriptionQueueItemDTO;
import org.raddatz.familienarchiv.dto.TranscriptionWeeklyStatsDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionQueueItemDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionWeeklyStatsDTO;
import org.raddatz.familienarchiv.security.Permission;
import org.raddatz.familienarchiv.security.RequirePermission;
import org.raddatz.familienarchiv.service.TranscriptionQueueService;
import org.raddatz.familienarchiv.document.transcription.TranscriptionQueueService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.transcription;
import io.swagger.v3.oas.annotations.media.Schema;
import org.raddatz.familienarchiv.audit.ActivityActorDTO;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.repository;
package org.raddatz.familienarchiv.document.transcription;
import java.time.LocalDate;
import java.util.UUID;

View File

@@ -1,11 +1,12 @@
package org.raddatz.familienarchiv.service;
package org.raddatz.familienarchiv.document.transcription;
import lombok.RequiredArgsConstructor;
import org.raddatz.familienarchiv.audit.ActivityActorDTO;
import org.raddatz.familienarchiv.audit.AuditLogQueryService;
import org.raddatz.familienarchiv.dto.TranscriptionQueueItemDTO;
import org.raddatz.familienarchiv.dto.TranscriptionWeeklyStatsDTO;
import org.raddatz.familienarchiv.repository.TranscriptionQueueProjection;
import org.raddatz.familienarchiv.service.DocumentService;
import org.raddatz.familienarchiv.document.transcription.TranscriptionQueueItemDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionWeeklyStatsDTO;
import org.raddatz.familienarchiv.document.transcription.TranscriptionQueueProjection;
import org.springframework.stereotype.Service;
import java.util.List;

View File

@@ -1,23 +1,25 @@
package org.raddatz.familienarchiv.service;
package org.raddatz.familienarchiv.document.transcription;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.audit.AuditKind;
import org.raddatz.familienarchiv.audit.AuditService;
import org.raddatz.familienarchiv.dto.CreateAnnotationDTO;
import org.raddatz.familienarchiv.dto.CreateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.dto.ReorderTranscriptionBlocksDTO;
import org.raddatz.familienarchiv.dto.UpdateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.document.annotation.CreateAnnotationDTO;
import org.raddatz.familienarchiv.document.transcription.CreateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.document.transcription.ReorderTranscriptionBlocksDTO;
import org.raddatz.familienarchiv.document.transcription.UpdateTranscriptionBlockDTO;
import org.raddatz.familienarchiv.document.annotation.AnnotationService;
import org.raddatz.familienarchiv.exception.DomainException;
import org.raddatz.familienarchiv.exception.ErrorCode;
import org.raddatz.familienarchiv.model.BlockSource;
import org.raddatz.familienarchiv.service.DocumentService;
import org.raddatz.familienarchiv.model.Document;
import org.raddatz.familienarchiv.model.DocumentAnnotation;
import org.raddatz.familienarchiv.document.annotation.DocumentAnnotation;
import org.raddatz.familienarchiv.ocr.ScriptType;
import org.raddatz.familienarchiv.model.TranscriptionBlock;
import org.raddatz.familienarchiv.model.TranscriptionBlockVersion;
import org.raddatz.familienarchiv.repository.TranscriptionBlockRepository;
import org.raddatz.familienarchiv.repository.TranscriptionBlockVersionRepository;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlock;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockVersion;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockRepository;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockVersionRepository;
import org.raddatz.familienarchiv.ocr.SenderModelService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.transcription;
import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package org.raddatz.familienarchiv.repository;
package org.raddatz.familienarchiv.document.transcription;
/**
* Spring Data projection for the weekly activity pulse stats.

View File

@@ -1,11 +1,11 @@
package org.raddatz.familienarchiv.dto;
package org.raddatz.familienarchiv.document.transcription;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.raddatz.familienarchiv.model.PersonMention;
import org.raddatz.familienarchiv.document.transcription.PersonMention;
import java.util.ArrayList;
import java.util.List;

View File

@@ -2,13 +2,14 @@ package org.raddatz.familienarchiv.ocr;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.raddatz.familienarchiv.dto.CreateAnnotationDTO;
import org.raddatz.familienarchiv.document.annotation.CreateAnnotationDTO;
import org.raddatz.familienarchiv.document.annotation.DocumentAnnotation;
import org.raddatz.familienarchiv.model.*;
import org.raddatz.familienarchiv.ocr.OcrJobDocumentRepository;
import org.raddatz.familienarchiv.ocr.OcrJobRepository;
import org.raddatz.familienarchiv.service.AnnotationService;
import org.raddatz.familienarchiv.document.annotation.AnnotationService;
import org.raddatz.familienarchiv.service.DocumentService;
import org.raddatz.familienarchiv.service.TranscriptionService;
import org.raddatz.familienarchiv.document.transcription.TranscriptionService;
import org.raddatz.familienarchiv.service.FileService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

View File

@@ -1,5 +1,7 @@
package org.raddatz.familienarchiv.repository;
import org.raddatz.familienarchiv.document.transcription.TranscriptionQueueProjection;
import org.raddatz.familienarchiv.document.transcription.TranscriptionWeeklyStatsProjection;
import org.raddatz.familienarchiv.model.Document;
import org.raddatz.familienarchiv.model.DocumentStatus;
import org.springframework.data.domain.Page;

View File

@@ -17,6 +17,10 @@ import org.raddatz.familienarchiv.dto.DocumentUpdateDTO;
import org.raddatz.familienarchiv.dto.IncompleteDocumentDTO;
import org.raddatz.familienarchiv.dto.MatchOffset;
import org.raddatz.familienarchiv.dto.SearchMatchData;
import org.raddatz.familienarchiv.document.annotation.AnnotationService;
import org.raddatz.familienarchiv.document.transcription.TranscriptionBlockQueryService;
import org.raddatz.familienarchiv.document.transcription.TranscriptionQueueProjection;
import org.raddatz.familienarchiv.document.transcription.TranscriptionWeeklyStatsProjection;
import org.raddatz.familienarchiv.tag.TagOperator;
import org.raddatz.familienarchiv.model.Document;
import org.raddatz.familienarchiv.model.DocumentStatus;
@@ -104,19 +108,19 @@ public class DocumentService {
return documentRepository.save(doc);
}
public List<org.raddatz.familienarchiv.repository.TranscriptionQueueProjection> findSegmentationQueue(int limit) {
public List<TranscriptionQueueProjection> findSegmentationQueue(int limit) {
return documentRepository.findSegmentationQueue(limit);
}
public List<org.raddatz.familienarchiv.repository.TranscriptionQueueProjection> findTranscriptionQueue(int limit) {
public List<TranscriptionQueueProjection> findTranscriptionQueue(int limit) {
return documentRepository.findTranscriptionQueue(limit);
}
public List<org.raddatz.familienarchiv.repository.TranscriptionQueueProjection> findReadyToReadQueue(int limit) {
public List<TranscriptionQueueProjection> findReadyToReadQueue(int limit) {
return documentRepository.findReadyToReadQueue(limit);
}
public org.raddatz.familienarchiv.repository.TranscriptionWeeklyStatsProjection findWeeklyStats() {
public TranscriptionWeeklyStatsProjection findWeeklyStats() {
return documentRepository.findWeeklyStats();
}