diff --git a/src/main/java/konkuk/thip/comment/adapter/out/jpa/CommentJpaEntity.java b/src/main/java/konkuk/thip/comment/adapter/out/jpa/CommentJpaEntity.java index a0dbeec18..68bde5025 100644 --- a/src/main/java/konkuk/thip/comment/adapter/out/jpa/CommentJpaEntity.java +++ b/src/main/java/konkuk/thip/comment/adapter/out/jpa/CommentJpaEntity.java @@ -4,7 +4,7 @@ import jakarta.persistence.*; import konkuk.thip.comment.domain.Comment; import konkuk.thip.common.entity.BaseJpaEntity; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; import konkuk.thip.post.adapter.out.jpa.PostJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import lombok.*; @@ -56,6 +56,7 @@ public class CommentJpaEntity extends BaseJpaEntity { private CommentJpaEntity parent; // 삭제용 댓글 좋아요 양방향 매핑 관계 + @Builder.Default @OneToMany(mappedBy = "commentJpaEntity", cascade = CascadeType.REMOVE, orphanRemoval = true) private List commentLikeList = new ArrayList<>(); diff --git a/src/main/java/konkuk/thip/comment/adapter/out/persistence/CommentCommandPersistenceAdapter.java b/src/main/java/konkuk/thip/comment/adapter/out/persistence/CommentCommandPersistenceAdapter.java index c8b2c0842..2cc237cc5 100644 --- a/src/main/java/konkuk/thip/comment/adapter/out/persistence/CommentCommandPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/comment/adapter/out/persistence/CommentCommandPersistenceAdapter.java @@ -7,13 +7,13 @@ import konkuk.thip.comment.application.port.out.CommentCommandPort; import konkuk.thip.comment.domain.Comment; import konkuk.thip.common.exception.EntityNotFoundException; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; import konkuk.thip.post.adapter.out.jpa.PostJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/comment/application/port/in/dto/CommentShowAllQuery.java b/src/main/java/konkuk/thip/comment/application/port/in/dto/CommentShowAllQuery.java index 3e860ef0f..41da6c4f2 100644 --- a/src/main/java/konkuk/thip/comment/application/port/in/dto/CommentShowAllQuery.java +++ b/src/main/java/konkuk/thip/comment/application/port/in/dto/CommentShowAllQuery.java @@ -1,7 +1,7 @@ package konkuk.thip.comment.application.port.in.dto; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; public record CommentShowAllQuery( Long postId, diff --git a/src/main/java/konkuk/thip/comment/application/service/CommentCreateService.java b/src/main/java/konkuk/thip/comment/application/service/CommentCreateService.java index fb349fe00..2d581aa8b 100644 --- a/src/main/java/konkuk/thip/comment/application/service/CommentCreateService.java +++ b/src/main/java/konkuk/thip/comment/application/service/CommentCreateService.java @@ -6,9 +6,9 @@ import konkuk.thip.comment.application.service.validator.CommentAuthorizationValidator; import konkuk.thip.comment.domain.Comment; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.service.PostHandler; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.CountUpdatable; +import konkuk.thip.post.application.service.handler.PostHandler; +import konkuk.thip.post.domain.PostType; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/konkuk/thip/comment/application/service/CommentDeleteService.java b/src/main/java/konkuk/thip/comment/application/service/CommentDeleteService.java index 9e5dd27da..156f3cbaf 100644 --- a/src/main/java/konkuk/thip/comment/application/service/CommentDeleteService.java +++ b/src/main/java/konkuk/thip/comment/application/service/CommentDeleteService.java @@ -5,8 +5,8 @@ import konkuk.thip.comment.application.port.out.CommentLikeCommandPort; import konkuk.thip.comment.application.service.validator.CommentAuthorizationValidator; import konkuk.thip.comment.domain.Comment; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.service.PostHandler; +import konkuk.thip.post.domain.CountUpdatable; +import konkuk.thip.post.application.service.handler.PostHandler; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/konkuk/thip/comment/application/service/CommentLikeService.java b/src/main/java/konkuk/thip/comment/application/service/CommentLikeService.java index bc351a8c3..fa4aa06c9 100644 --- a/src/main/java/konkuk/thip/comment/application/service/CommentLikeService.java +++ b/src/main/java/konkuk/thip/comment/application/service/CommentLikeService.java @@ -8,8 +8,8 @@ import konkuk.thip.comment.application.port.out.CommentLikeQueryPort; import konkuk.thip.comment.application.service.validator.CommentAuthorizationValidator; import konkuk.thip.comment.domain.Comment; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.service.PostHandler; +import konkuk.thip.post.domain.CountUpdatable; +import konkuk.thip.post.application.service.handler.PostHandler; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/konkuk/thip/comment/application/service/policy/CommentAccessPolicy.java b/src/main/java/konkuk/thip/comment/application/service/policy/CommentAccessPolicy.java index 0e91edd00..375d24084 100644 --- a/src/main/java/konkuk/thip/comment/application/service/policy/CommentAccessPolicy.java +++ b/src/main/java/konkuk/thip/comment/application/service/policy/CommentAccessPolicy.java @@ -1,6 +1,6 @@ package konkuk.thip.comment.application.service.policy; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.domain.CountUpdatable; public interface CommentAccessPolicy { void validateCommentAccess(CountUpdatable post, Long userId); diff --git a/src/main/java/konkuk/thip/comment/application/service/policy/FeedCommentAccessPolicy.java b/src/main/java/konkuk/thip/comment/application/service/policy/FeedCommentAccessPolicy.java index b553041fd..31053113c 100644 --- a/src/main/java/konkuk/thip/comment/application/service/policy/FeedCommentAccessPolicy.java +++ b/src/main/java/konkuk/thip/comment/application/service/policy/FeedCommentAccessPolicy.java @@ -1,6 +1,6 @@ package konkuk.thip.comment.application.service.policy; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.domain.CountUpdatable; import konkuk.thip.feed.domain.Feed; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/comment/application/service/policy/RoomPostCommentAccessPolicy.java b/src/main/java/konkuk/thip/comment/application/service/policy/RoomPostCommentAccessPolicy.java index f8a93b11b..fe9bdc0c1 100644 --- a/src/main/java/konkuk/thip/comment/application/service/policy/RoomPostCommentAccessPolicy.java +++ b/src/main/java/konkuk/thip/comment/application/service/policy/RoomPostCommentAccessPolicy.java @@ -1,8 +1,8 @@ package konkuk.thip.comment.application.service.policy; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.domain.CountUpdatable; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; -import konkuk.thip.room.domain.RoomPost; +import konkuk.thip.roompost.domain.RoomPost; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/comment/application/service/validator/CommentAuthorizationValidator.java b/src/main/java/konkuk/thip/comment/application/service/validator/CommentAuthorizationValidator.java index 63fad7cb0..8ad5878e6 100644 --- a/src/main/java/konkuk/thip/comment/application/service/validator/CommentAuthorizationValidator.java +++ b/src/main/java/konkuk/thip/comment/application/service/validator/CommentAuthorizationValidator.java @@ -2,8 +2,8 @@ import konkuk.thip.comment.application.service.policy.CommentAccessPolicy; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.CountUpdatable; +import konkuk.thip.post.domain.PostType; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/comment/domain/Comment.java b/src/main/java/konkuk/thip/comment/domain/Comment.java index 3aeb48ef9..ebf83622e 100644 --- a/src/main/java/konkuk/thip/comment/domain/Comment.java +++ b/src/main/java/konkuk/thip/comment/domain/Comment.java @@ -2,7 +2,7 @@ import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; import lombok.Builder; import lombok.Getter; import lombok.experimental.SuperBuilder; diff --git a/src/main/java/konkuk/thip/common/annotation/DomainService.java b/src/main/java/konkuk/thip/common/annotation/DomainService.java new file mode 100644 index 000000000..5dcaae9da --- /dev/null +++ b/src/main/java/konkuk/thip/common/annotation/DomainService.java @@ -0,0 +1,18 @@ +package konkuk.thip.common.annotation; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Component +public @interface DomainService { + + @AliasFor(annotation = Component.class) + String value() default ""; +} diff --git a/src/main/java/konkuk/thip/config/PostAccessPolicyConfig.java b/src/main/java/konkuk/thip/config/PostAccessPolicyConfig.java index e2491cb47..0ac11d66e 100644 --- a/src/main/java/konkuk/thip/config/PostAccessPolicyConfig.java +++ b/src/main/java/konkuk/thip/config/PostAccessPolicyConfig.java @@ -3,10 +3,10 @@ import konkuk.thip.comment.application.service.policy.CommentAccessPolicy; import konkuk.thip.comment.application.service.policy.FeedCommentAccessPolicy; import konkuk.thip.comment.application.service.policy.RoomPostCommentAccessPolicy; -import konkuk.thip.common.post.PostType; -import konkuk.thip.post.application.service.policy.FeedLikeAccessPolicy; +import konkuk.thip.post.domain.PostType; +import konkuk.thip.feed.application.service.policy.FeedLikeAccessPolicy; import konkuk.thip.post.application.service.policy.PostLikeAccessPolicy; -import konkuk.thip.post.application.service.policy.RoomPostLikeAccessPolicy; +import konkuk.thip.roompost.application.service.policy.RoomPostLikeAccessPolicy; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/konkuk/thip/feed/adapter/in/web/request/FeedIsLikeRequest.java b/src/main/java/konkuk/thip/feed/adapter/in/web/request/FeedIsLikeRequest.java index fdebfc734..1d3ca6ddd 100644 --- a/src/main/java/konkuk/thip/feed/adapter/in/web/request/FeedIsLikeRequest.java +++ b/src/main/java/konkuk/thip/feed/adapter/in/web/request/FeedIsLikeRequest.java @@ -4,7 +4,7 @@ import jakarta.validation.constraints.NotNull; import konkuk.thip.post.application.port.in.dto.PostIsLikeCommand; -import static konkuk.thip.common.post.PostType.FEED; +import static konkuk.thip.post.domain.PostType.FEED; @Schema(description = "피드 좋아요 상태 변경 요청 DTO") public record FeedIsLikeRequest( diff --git a/src/main/java/konkuk/thip/post/application/service/policy/FeedLikeAccessPolicy.java b/src/main/java/konkuk/thip/feed/application/service/policy/FeedLikeAccessPolicy.java similarity index 65% rename from src/main/java/konkuk/thip/post/application/service/policy/FeedLikeAccessPolicy.java rename to src/main/java/konkuk/thip/feed/application/service/policy/FeedLikeAccessPolicy.java index 146d71f8c..b9d9227df 100644 --- a/src/main/java/konkuk/thip/post/application/service/policy/FeedLikeAccessPolicy.java +++ b/src/main/java/konkuk/thip/feed/application/service/policy/FeedLikeAccessPolicy.java @@ -1,6 +1,7 @@ -package konkuk.thip.post.application.service.policy; +package konkuk.thip.feed.application.service.policy; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.application.service.policy.PostLikeAccessPolicy; +import konkuk.thip.post.domain.CountUpdatable; import konkuk.thip.feed.domain.Feed; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/feed/domain/Feed.java b/src/main/java/konkuk/thip/feed/domain/Feed.java index fd6866db0..883c37c3b 100644 --- a/src/main/java/konkuk/thip/feed/domain/Feed.java +++ b/src/main/java/konkuk/thip/feed/domain/Feed.java @@ -3,7 +3,7 @@ import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.BusinessException; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.domain.CountUpdatable; import konkuk.thip.post.domain.service.PostCountService; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/konkuk/thip/post/adapter/out/jpa/PostJpaEntity.java b/src/main/java/konkuk/thip/post/adapter/out/jpa/PostJpaEntity.java index 08f3785f9..ffac4180c 100644 --- a/src/main/java/konkuk/thip/post/adapter/out/jpa/PostJpaEntity.java +++ b/src/main/java/konkuk/thip/post/adapter/out/jpa/PostJpaEntity.java @@ -3,7 +3,6 @@ import jakarta.persistence.*; import konkuk.thip.comment.adapter.out.jpa.CommentJpaEntity; import konkuk.thip.common.entity.BaseJpaEntity; -import konkuk.thip.common.entity.StatusType; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import lombok.AccessLevel; diff --git a/src/main/java/konkuk/thip/post/adapter/out/persistence/PostLikeCommandPersistenceAdapter.java b/src/main/java/konkuk/thip/post/adapter/out/persistence/PostLikeCommandPersistenceAdapter.java index 013c94cf7..e4f9d2057 100644 --- a/src/main/java/konkuk/thip/post/adapter/out/persistence/PostLikeCommandPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/post/adapter/out/persistence/PostLikeCommandPersistenceAdapter.java @@ -1,15 +1,15 @@ package konkuk.thip.post.adapter.out.persistence; import konkuk.thip.common.exception.EntityNotFoundException; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; import konkuk.thip.post.adapter.out.jpa.PostJpaEntity; import konkuk.thip.post.adapter.out.mapper.PostLikeMapper; import konkuk.thip.post.application.port.out.PostLikeCommandPort; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/post/application/port/in/dto/PostIsLikeCommand.java b/src/main/java/konkuk/thip/post/application/port/in/dto/PostIsLikeCommand.java index 100f5a290..0b65abe6d 100644 --- a/src/main/java/konkuk/thip/post/application/port/in/dto/PostIsLikeCommand.java +++ b/src/main/java/konkuk/thip/post/application/port/in/dto/PostIsLikeCommand.java @@ -1,6 +1,6 @@ package konkuk.thip.post.application.port.in.dto; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; public record PostIsLikeCommand( diff --git a/src/main/java/konkuk/thip/post/application/port/out/PostLikeCommandPort.java b/src/main/java/konkuk/thip/post/application/port/out/PostLikeCommandPort.java index 7f15cb060..6c6421d14 100644 --- a/src/main/java/konkuk/thip/post/application/port/out/PostLikeCommandPort.java +++ b/src/main/java/konkuk/thip/post/application/port/out/PostLikeCommandPort.java @@ -1,6 +1,6 @@ package konkuk.thip.post.application.port.out; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; public interface PostLikeCommandPort { void save(Long userId, Long postId, PostType postType); diff --git a/src/main/java/konkuk/thip/post/application/service/PostLikeService.java b/src/main/java/konkuk/thip/post/application/service/PostLikeService.java index 58da05a2a..21c0effcb 100644 --- a/src/main/java/konkuk/thip/post/application/service/PostLikeService.java +++ b/src/main/java/konkuk/thip/post/application/service/PostLikeService.java @@ -1,7 +1,7 @@ package konkuk.thip.post.application.service; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.service.PostHandler; +import konkuk.thip.post.application.service.handler.PostHandler; +import konkuk.thip.post.domain.CountUpdatable; import konkuk.thip.post.application.port.in.dto.PostIsLikeCommand; import konkuk.thip.post.application.port.in.dto.PostIsLikeResult; import konkuk.thip.post.application.port.in.PostLikeUseCase; diff --git a/src/main/java/konkuk/thip/common/post/service/PostHandler.java b/src/main/java/konkuk/thip/post/application/service/handler/PostHandler.java similarity index 74% rename from src/main/java/konkuk/thip/common/post/service/PostHandler.java rename to src/main/java/konkuk/thip/post/application/service/handler/PostHandler.java index 7dce5f1f5..535791c96 100644 --- a/src/main/java/konkuk/thip/common/post/service/PostHandler.java +++ b/src/main/java/konkuk/thip/post/application/service/handler/PostHandler.java @@ -1,14 +1,14 @@ -package konkuk.thip.common.post.service; +package konkuk.thip.post.application.service.handler; import konkuk.thip.common.annotation.HelperService; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.CountUpdatable; +import konkuk.thip.post.domain.PostType; import konkuk.thip.feed.application.port.out.FeedCommandPort; import konkuk.thip.feed.domain.Feed; -import konkuk.thip.record.application.port.out.RecordCommandPort; -import konkuk.thip.record.domain.Record; -import konkuk.thip.vote.application.port.out.VoteCommandPort; -import konkuk.thip.vote.domain.Vote; +import konkuk.thip.roompost.application.port.out.RecordCommandPort; +import konkuk.thip.roompost.domain.Record; +import konkuk.thip.roompost.application.port.out.VoteCommandPort; +import konkuk.thip.roompost.domain.Vote; import lombok.RequiredArgsConstructor; @HelperService diff --git a/src/main/java/konkuk/thip/post/application/service/policy/PostLikeAccessPolicy.java b/src/main/java/konkuk/thip/post/application/service/policy/PostLikeAccessPolicy.java index 486e50683..e5e2a8b52 100644 --- a/src/main/java/konkuk/thip/post/application/service/policy/PostLikeAccessPolicy.java +++ b/src/main/java/konkuk/thip/post/application/service/policy/PostLikeAccessPolicy.java @@ -1,6 +1,6 @@ package konkuk.thip.post.application.service.policy; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.domain.CountUpdatable; public interface PostLikeAccessPolicy { void validatePostLikeAccess(CountUpdatable post, Long userId); diff --git a/src/main/java/konkuk/thip/post/application/service/validator/PostLikeAuthorizationValidator.java b/src/main/java/konkuk/thip/post/application/service/validator/PostLikeAuthorizationValidator.java index f3e76a4a5..57b65ec45 100644 --- a/src/main/java/konkuk/thip/post/application/service/validator/PostLikeAuthorizationValidator.java +++ b/src/main/java/konkuk/thip/post/application/service/validator/PostLikeAuthorizationValidator.java @@ -1,17 +1,17 @@ package konkuk.thip.post.application.service.validator; +import konkuk.thip.common.annotation.HelperService; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.CountUpdatable; -import konkuk.thip.common.post.PostType; import konkuk.thip.post.application.service.policy.PostLikeAccessPolicy; +import konkuk.thip.post.domain.CountUpdatable; +import konkuk.thip.post.domain.PostType; import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; import java.util.Map; import static konkuk.thip.common.exception.code.ErrorCode.*; -@Component +@HelperService @RequiredArgsConstructor public class PostLikeAuthorizationValidator { diff --git a/src/main/java/konkuk/thip/common/post/CountUpdatable.java b/src/main/java/konkuk/thip/post/domain/CountUpdatable.java similarity index 63% rename from src/main/java/konkuk/thip/common/post/CountUpdatable.java rename to src/main/java/konkuk/thip/post/domain/CountUpdatable.java index 614e68253..ab6d22a1d 100644 --- a/src/main/java/konkuk/thip/common/post/CountUpdatable.java +++ b/src/main/java/konkuk/thip/post/domain/CountUpdatable.java @@ -1,8 +1,8 @@ -package konkuk.thip.common.post; +package konkuk.thip.post.domain; import konkuk.thip.post.domain.service.PostCountService; -public interface CountUpdatable { //TODO 패키지 구조 충돌안나게 한번에 옮기기 +public interface CountUpdatable { void increaseCommentCount(); void decreaseCommentCount(); void updateLikeCount(PostCountService postCountService, boolean isLike); diff --git a/src/main/java/konkuk/thip/common/post/PostType.java b/src/main/java/konkuk/thip/post/domain/PostType.java similarity index 59% rename from src/main/java/konkuk/thip/common/post/PostType.java rename to src/main/java/konkuk/thip/post/domain/PostType.java index b17f35e27..46b45c214 100644 --- a/src/main/java/konkuk/thip/common/post/PostType.java +++ b/src/main/java/konkuk/thip/post/domain/PostType.java @@ -1,4 +1,4 @@ -package konkuk.thip.common.post; +package konkuk.thip.post.domain; import konkuk.thip.common.exception.InvalidStateException; import lombok.Getter; @@ -7,6 +7,7 @@ import java.util.Arrays; import static konkuk.thip.common.exception.code.ErrorCode.POST_TYPE_NOT_MATCH; +import static konkuk.thip.common.exception.code.ErrorCode.ROOM_POST_TYPE_NOT_MATCH; @Getter @RequiredArgsConstructor @@ -26,4 +27,13 @@ public static PostType from(String type) { new InvalidStateException(POST_TYPE_NOT_MATCH) ); } + + public static PostType roomPostTypeFrom(String type) { + return Arrays.stream(PostType.values()) + .filter(p -> !p.equals(FEED) && p.getType().equalsIgnoreCase(type)) + .findFirst() + .orElseThrow(() -> + new InvalidStateException(ROOM_POST_TYPE_NOT_MATCH) + ); + } } diff --git a/src/main/java/konkuk/thip/post/domain/service/PostCountService.java b/src/main/java/konkuk/thip/post/domain/service/PostCountService.java index d0a367674..814c0747a 100644 --- a/src/main/java/konkuk/thip/post/domain/service/PostCountService.java +++ b/src/main/java/konkuk/thip/post/domain/service/PostCountService.java @@ -1,11 +1,11 @@ package konkuk.thip.post.domain.service; +import konkuk.thip.common.annotation.DomainService; import konkuk.thip.common.exception.InvalidStateException; -import org.springframework.stereotype.Service; import static konkuk.thip.common.exception.code.ErrorCode.POST_LIKE_COUNT_UNDERFLOW; -@Service +@DomainService public class PostCountService { public int updatePostLikeCount(boolean isLike, int likeCount) { diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/RecordCommandController.java b/src/main/java/konkuk/thip/record/adapter/in/web/RecordCommandController.java deleted file mode 100644 index e5778f96a..000000000 --- a/src/main/java/konkuk/thip/record/adapter/in/web/RecordCommandController.java +++ /dev/null @@ -1,58 +0,0 @@ -package konkuk.thip.record.adapter.in.web; - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.validation.Valid; -import konkuk.thip.common.dto.BaseResponse; -import konkuk.thip.common.security.annotation.UserId; -import konkuk.thip.common.swagger.annotation.ExceptionDescription; -import konkuk.thip.record.adapter.in.web.request.RecordCreateRequest; -import konkuk.thip.record.adapter.in.web.response.RecordCreateResponse; -import konkuk.thip.record.adapter.in.web.response.RecordDeleteResponse; -import konkuk.thip.record.application.port.in.RecordCreateUseCase; -import konkuk.thip.record.application.port.in.RecordDeleteUseCase; -import konkuk.thip.record.application.port.in.dto.RecordDeleteCommand; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import static konkuk.thip.common.swagger.SwaggerResponseDescription.*; - -@Tag(name = "Record Command API", description = "기록 상태변경 관련 API") -@RestController -@RequiredArgsConstructor -public class RecordCommandController { - private final RecordCreateUseCase recordCreateUseCase; - private final RecordDeleteUseCase recordDeleteUseCase; - - @Operation( - summary = "기록 생성", - description = "방에 대한 기록을 생성합니다." - ) - @ExceptionDescription(RECORD_CREATE) - @PostMapping("/rooms/{roomId}/record") - public BaseResponse createRecord( - @Parameter(hidden = true) @UserId final Long userId, - @Parameter(description = "기록을 생성할 방 ID", example = "1") @PathVariable final Long roomId, - @Valid @RequestBody final RecordCreateRequest recordCreateRequest - ) { - return BaseResponse.ok( - RecordCreateResponse.of( - recordCreateUseCase.createRecord(recordCreateRequest.toCommand(roomId, userId)) - )); - } - - @Operation( - summary = "기록 삭제", - description = "사용자가 기록을 삭제합니다." - ) - @ExceptionDescription(RECORD_DELETE) - @DeleteMapping("/rooms/{roomId}/record/{recordId}") - public BaseResponse deleteRecord( - @Parameter(description = "삭제하려는 기록 ID", example = "1") @PathVariable("recordId") final Long recordId, - @Parameter(description = "삭제하려는 기록이 작성된 모임 ID", example = "1") @PathVariable("roomId") final Long roomId, - @Parameter(hidden = true) @UserId final Long userId) { - return BaseResponse.ok(RecordDeleteResponse.of(recordDeleteUseCase.deleteRecord(new RecordDeleteCommand(roomId, recordId, userId)))); - } - -} diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordQueryPersistenceAdapter.java b/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordQueryPersistenceAdapter.java deleted file mode 100644 index 306bf35bf..000000000 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordQueryPersistenceAdapter.java +++ /dev/null @@ -1,67 +0,0 @@ -package konkuk.thip.record.adapter.out.persistence; - -import konkuk.thip.common.util.Cursor; -import konkuk.thip.common.util.CursorBasedList; -import konkuk.thip.record.adapter.out.persistence.constants.SortType; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; -import konkuk.thip.record.application.port.out.RecordQueryPort; -import konkuk.thip.record.application.port.out.dto.PostQueryDto; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -@RequiredArgsConstructor -public class RecordQueryPersistenceAdapter implements RecordQueryPort { - - private final RecordJpaRepository recordJpaRepository; - - @Override - public CursorBasedList searchMyRecords(Long roomId, Long userId, Cursor cursor) { - List postQueryDtos = recordJpaRepository.findMyRecords(roomId, userId, cursor); - - return CursorBasedList.of(postQueryDtos, cursor.getPageSize(), postQueryDto -> { - Cursor nextCursor = new Cursor(List.of(postQueryDto.isOverview() ? "1" : "0", - postQueryDto.page().toString(), - postQueryDto.postId().toString())); - return nextCursor.toEncodedString(); - }); - } - - @Override - public CursorBasedList searchGroupRecordsByLatest(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { - List postQueryDtos = recordJpaRepository.findGroupRecordsOrderBySortType( - roomId, userId, cursor, pageStart, pageEnd, isOverview, SortType.CREATED_AT); - - return CursorBasedList.of(postQueryDtos, cursor.getPageSize(), postQueryDto -> { - Cursor nextCursor = new Cursor(List.of(postQueryDto.postDate().toString(), - postQueryDto.postId().toString())); - return nextCursor.toEncodedString(); - }); - } - - @Override - public CursorBasedList searchGroupRecordsByLike(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { - List postQueryDtos = recordJpaRepository.findGroupRecordsOrderBySortType( - roomId, userId, cursor, pageStart, pageEnd, isOverview, SortType.LIKE_COUNT); - - return CursorBasedList.of(postQueryDtos, cursor.getPageSize(), postQueryDto -> { - Cursor nextCursor = new Cursor(List.of(postQueryDto.likeCount().toString(), - postQueryDto.postId().toString())); - return nextCursor.toEncodedString(); - }); - } - - @Override - public CursorBasedList searchGroupRecordsByComment(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { - List postQueryDtos = recordJpaRepository.findGroupRecordsOrderBySortType( - roomId, userId, cursor, pageStart, pageEnd, isOverview, SortType.COMMENT_COUNT); - - return CursorBasedList.of(postQueryDtos, cursor.getPageSize(), postQueryDto -> { - Cursor nextCursor = new Cursor(List.of(postQueryDto.commentCount().toString(), - postQueryDto.postId().toString())); - return nextCursor.toEncodedString(); - }); - } -} \ No newline at end of file diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/constants/SortType.java b/src/main/java/konkuk/thip/record/adapter/out/persistence/constants/SortType.java deleted file mode 100644 index 6caa640fe..000000000 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/constants/SortType.java +++ /dev/null @@ -1,5 +0,0 @@ -package konkuk.thip.record.adapter.out.persistence.constants; - -public enum SortType { - CREATED_AT, LIKE_COUNT, COMMENT_COUNT, MINE -} diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordQueryRepository.java b/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordQueryRepository.java deleted file mode 100644 index f62172185..000000000 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordQueryRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package konkuk.thip.record.adapter.out.persistence.repository; - -import konkuk.thip.common.util.Cursor; -import konkuk.thip.record.adapter.out.persistence.constants.SortType; -import konkuk.thip.record.application.port.out.dto.PostQueryDto; - -import java.util.List; - -public interface RecordQueryRepository { - - List findMyRecords(Long roomId, Long userId, Cursor cursor); - - List findGroupRecordsOrderBySortType(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview, SortType sortType); -} diff --git a/src/main/java/konkuk/thip/record/application/port/in/RecordCreateUseCase.java b/src/main/java/konkuk/thip/record/application/port/in/RecordCreateUseCase.java deleted file mode 100644 index 716f94dbb..000000000 --- a/src/main/java/konkuk/thip/record/application/port/in/RecordCreateUseCase.java +++ /dev/null @@ -1,10 +0,0 @@ -package konkuk.thip.record.application.port.in; - -import konkuk.thip.record.application.port.in.dto.RecordCreateCommand; -import konkuk.thip.record.application.port.in.dto.RecordCreateResult; - -public interface RecordCreateUseCase { - - RecordCreateResult createRecord(RecordCreateCommand command); - -} diff --git a/src/main/java/konkuk/thip/record/application/port/in/RecordDeleteUseCase.java b/src/main/java/konkuk/thip/record/application/port/in/RecordDeleteUseCase.java deleted file mode 100644 index 208454c84..000000000 --- a/src/main/java/konkuk/thip/record/application/port/in/RecordDeleteUseCase.java +++ /dev/null @@ -1,7 +0,0 @@ -package konkuk.thip.record.application.port.in; - -import konkuk.thip.record.application.port.in.dto.RecordDeleteCommand; - -public interface RecordDeleteUseCase { - Long deleteRecord(RecordDeleteCommand command); -} diff --git a/src/main/java/konkuk/thip/record/application/port/in/RecordPinUseCase.java b/src/main/java/konkuk/thip/record/application/port/in/RecordPinUseCase.java deleted file mode 100644 index efb2eb0c8..000000000 --- a/src/main/java/konkuk/thip/record/application/port/in/RecordPinUseCase.java +++ /dev/null @@ -1,8 +0,0 @@ -package konkuk.thip.record.application.port.in; - -import konkuk.thip.record.adapter.in.web.response.RecordPinResponse; -import konkuk.thip.record.application.port.in.dto.RecordPinQuery; - -public interface RecordPinUseCase { - RecordPinResponse pinRecord(RecordPinQuery query); -} diff --git a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordSearchUseCase.java b/src/main/java/konkuk/thip/record/application/port/in/dto/RecordSearchUseCase.java deleted file mode 100644 index 462a4054a..000000000 --- a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordSearchUseCase.java +++ /dev/null @@ -1,8 +0,0 @@ -package konkuk.thip.record.application.port.in.dto; - -import konkuk.thip.record.adapter.in.web.response.RecordSearchResponse; - -public interface RecordSearchUseCase { - - RecordSearchResponse search(RecordSearchQuery recordSearchQuery); -} diff --git a/src/main/java/konkuk/thip/record/application/port/out/RecordQueryPort.java b/src/main/java/konkuk/thip/record/application/port/out/RecordQueryPort.java deleted file mode 100644 index 8b71d6e5d..000000000 --- a/src/main/java/konkuk/thip/record/application/port/out/RecordQueryPort.java +++ /dev/null @@ -1,17 +0,0 @@ -package konkuk.thip.record.application.port.out; - -import konkuk.thip.common.util.Cursor; -import konkuk.thip.common.util.CursorBasedList; -import konkuk.thip.record.application.port.out.dto.PostQueryDto; - -public interface RecordQueryPort { - - CursorBasedList searchMyRecords(Long roomId, Long userId, Cursor cursor); - - CursorBasedList searchGroupRecordsByLatest(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview); - - CursorBasedList searchGroupRecordsByLike(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview); - - CursorBasedList searchGroupRecordsByComment(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview); -} - diff --git a/src/main/java/konkuk/thip/room/adapter/in/web/RoomCommandController.java b/src/main/java/konkuk/thip/room/adapter/in/web/RoomCommandController.java index a3ac4bdbf..2313e0a1d 100644 --- a/src/main/java/konkuk/thip/room/adapter/in/web/RoomCommandController.java +++ b/src/main/java/konkuk/thip/room/adapter/in/web/RoomCommandController.java @@ -4,9 +4,6 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; -import konkuk.thip.room.adapter.in.web.request.AttendanceCheckCreateRequest; -import konkuk.thip.room.adapter.in.web.response.AttendanceCheckCreateResponse; -import konkuk.thip.room.application.port.in.AttendanceCheckCreateUseCase; import konkuk.thip.common.dto.BaseResponse; import konkuk.thip.common.security.annotation.UserId; import konkuk.thip.common.swagger.annotation.ExceptionDescription; @@ -14,10 +11,10 @@ import konkuk.thip.room.adapter.in.web.request.RoomCreateRequest; import konkuk.thip.room.adapter.in.web.request.RoomJoinRequest; import konkuk.thip.room.adapter.in.web.request.RoomPostIsLikeRequest; +import konkuk.thip.room.adapter.in.web.response.RoomCreateResponse; +import konkuk.thip.room.adapter.in.web.response.RoomJoinResponse; import konkuk.thip.room.adapter.in.web.response.RoomPostIsLikeResponse; import konkuk.thip.room.adapter.in.web.response.RoomRecruitCloseResponse; -import konkuk.thip.room.adapter.in.web.response.RoomJoinResponse; -import konkuk.thip.room.adapter.in.web.response.RoomCreateResponse; import konkuk.thip.room.application.port.in.RoomCreateUseCase; import konkuk.thip.room.application.port.in.RoomJoinUseCase; import konkuk.thip.room.application.port.in.RoomRecruitCloseUseCase; @@ -38,7 +35,6 @@ public class RoomCommandController { private final RoomJoinUseCase roomJoinUsecase; private final RoomRecruitCloseUseCase roomRecruitCloseUsecase; private final PostLikeUseCase postLikeUseCase; - private final AttendanceCheckCreateUseCase attendanceCheckCreateUseCase; /** * 방 생성 요청 @@ -106,22 +102,4 @@ public BaseResponse likeRoomPost( @Parameter(hidden = true) @UserId final Long userId) { return BaseResponse.ok(RoomPostIsLikeResponse.of(postLikeUseCase.changeLikeStatusPost(request.toCommand(userId, postId)))); } - - /** - * 오늘의 한마디 작성 - */ - @Operation( - summary = "오늘의 한마디 작성", - description = "방 참여자가 오늘의 한마디를 작성합니다." - ) - @ExceptionDescription(ATTENDANCE_CHECK_CREATE) - @PostMapping("/rooms/{roomId}/daily-greeting") - public BaseResponse createFeed( - @RequestBody @Valid final AttendanceCheckCreateRequest request, - @Parameter(description = "오늘의 한마디를 작성할 방 id값") @PathVariable("roomId") final Long roomId, - @Parameter(hidden = true) @UserId final Long userId) { - return BaseResponse.ok(AttendanceCheckCreateResponse.of( - attendanceCheckCreateUseCase.create(request.toCommand(userId, roomId)) - )); - } } diff --git a/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomJoinRequest.java b/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomJoinRequest.java index 0b95ec582..ae9e5ed98 100644 --- a/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomJoinRequest.java +++ b/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomJoinRequest.java @@ -3,6 +3,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import konkuk.thip.room.application.port.in.dto.RoomJoinCommand; +import konkuk.thip.room.application.port.in.dto.RoomJoinType; @Schema(description = "방 참여/취소 요청 DTO") public record RoomJoinRequest( @@ -11,6 +12,6 @@ public record RoomJoinRequest( String type ) { public RoomJoinCommand toCommand(Long userId, Long roomId) { - return new RoomJoinCommand(userId, roomId, type); + return new RoomJoinCommand(userId, roomId, RoomJoinType.from(type)); } } diff --git a/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomPostIsLikeRequest.java b/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomPostIsLikeRequest.java index efc86a872..5fd0dbdbb 100644 --- a/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomPostIsLikeRequest.java +++ b/src/main/java/konkuk/thip/room/adapter/in/web/request/RoomPostIsLikeRequest.java @@ -4,9 +4,9 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import konkuk.thip.post.application.port.in.dto.PostIsLikeCommand; -import konkuk.thip.room.domain.RoomPostType; +import konkuk.thip.post.domain.PostType; -@Schema(description = "방기록 좋아요 상태 변경 요청 DTO") +@Schema(description = "방 게시글 좋아요 상태 변경 요청 DTO") public record RoomPostIsLikeRequest( @Schema(description = "좋아요 여부 type (true -> 좋아요, false -> 좋아요 취소)", example = "true") @NotNull(message = "좋아요 여부는 필수입니다.") @@ -17,6 +17,6 @@ public record RoomPostIsLikeRequest( String roomPostType ) { public PostIsLikeCommand toCommand(Long userId, Long postId) { - return new PostIsLikeCommand(userId, postId, RoomPostType.from(roomPostType).toPostType(), type); + return new PostIsLikeCommand(userId, postId, PostType.roomPostTypeFrom(roomPostType), type); } } \ No newline at end of file diff --git a/src/main/java/konkuk/thip/room/application/port/in/AttendanceCheckCreateUseCase.java b/src/main/java/konkuk/thip/room/application/port/in/AttendanceCheckCreateUseCase.java deleted file mode 100644 index 9a7c67fb5..000000000 --- a/src/main/java/konkuk/thip/room/application/port/in/AttendanceCheckCreateUseCase.java +++ /dev/null @@ -1,9 +0,0 @@ -package konkuk.thip.room.application.port.in; - -import konkuk.thip.room.application.port.in.dto.AttendanceCheckCreateCommand; -import konkuk.thip.room.application.port.in.dto.AttendanceCheckCreateResult; - -public interface AttendanceCheckCreateUseCase { - - AttendanceCheckCreateResult create(AttendanceCheckCreateCommand command); -} diff --git a/src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinCommand.java b/src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinCommand.java index 4a9a79f9f..4ec8ecb55 100644 --- a/src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinCommand.java +++ b/src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinCommand.java @@ -3,6 +3,6 @@ public record RoomJoinCommand( Long userId, Long roomId, - String type + RoomJoinType type ) { } diff --git a/src/main/java/konkuk/thip/room/domain/RoomJoinType.java b/src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinType.java similarity index 93% rename from src/main/java/konkuk/thip/room/domain/RoomJoinType.java rename to src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinType.java index a0cd7dad8..883350222 100644 --- a/src/main/java/konkuk/thip/room/domain/RoomJoinType.java +++ b/src/main/java/konkuk/thip/room/application/port/in/dto/RoomJoinType.java @@ -1,4 +1,4 @@ -package konkuk.thip.room.domain; +package konkuk.thip.room.application.port.in.dto; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.common.exception.code.ErrorCode; diff --git a/src/main/java/konkuk/thip/room/application/port/out/AttendanceCheckCommandPort.java b/src/main/java/konkuk/thip/room/application/port/out/AttendanceCheckCommandPort.java deleted file mode 100644 index ab61bf30c..000000000 --- a/src/main/java/konkuk/thip/room/application/port/out/AttendanceCheckCommandPort.java +++ /dev/null @@ -1,8 +0,0 @@ -package konkuk.thip.room.application.port.out; - -import konkuk.thip.room.domain.AttendanceCheck; - -public interface AttendanceCheckCommandPort { - - Long save(AttendanceCheck attendanceCheck); -} diff --git a/src/main/java/konkuk/thip/room/application/service/RoomJoinService.java b/src/main/java/konkuk/thip/room/application/service/RoomJoinService.java index f95a239b8..619a3c43d 100644 --- a/src/main/java/konkuk/thip/room/application/service/RoomJoinService.java +++ b/src/main/java/konkuk/thip/room/application/service/RoomJoinService.java @@ -8,7 +8,7 @@ import konkuk.thip.room.application.port.out.RoomCommandPort; import konkuk.thip.room.application.port.out.RoomParticipantCommandPort; import konkuk.thip.room.domain.Room; -import konkuk.thip.room.domain.RoomJoinType; +import konkuk.thip.room.application.port.in.dto.RoomJoinType; import konkuk.thip.room.domain.RoomParticipant; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -16,8 +16,6 @@ import java.util.Optional; -import static konkuk.thip.room.adapter.out.jpa.RoomParticipantRole.MEMBER; - @Service @RequiredArgsConstructor public class RoomJoinService implements RoomJoinUseCase { @@ -28,7 +26,7 @@ public class RoomJoinService implements RoomJoinUseCase { @Override @Transactional public RoomJoinResult changeJoinState(RoomJoinCommand roomJoinCommand) { - RoomJoinType type = RoomJoinType.from(roomJoinCommand.type()); + RoomJoinType type = roomJoinCommand.type(); // 방이 존재하지 않거나 만료된 경우 Room room = roomCommandPort.findById(roomJoinCommand.roomId()) @@ -38,20 +36,16 @@ public RoomJoinResult changeJoinState(RoomJoinCommand roomJoinCommand) { Optional roomParticipantOptional = roomParticipantCommandPort.findByUserIdAndRoomIdOptional(roomJoinCommand.userId(), roomJoinCommand.roomId()); - // 참여하기 요청 - if(type.isJoinType()) { - handleJoin(roomJoinCommand, roomParticipantOptional, room); - } - - // 취소하기 요청 - if(!type.isJoinType()) { - handleCancel(roomJoinCommand, roomParticipantOptional, roomParticipantOptional, room); + // 방 참여 상태 변경 요청에 따라 분기 처리 + switch (type) { + case JOIN -> handleJoin(roomJoinCommand, roomParticipantOptional, room); + case CANCEL -> handleCancel(roomJoinCommand, roomParticipantOptional, roomParticipantOptional, room); } // 방의 상태 업데이트 roomCommandPort.update(room); - return RoomJoinResult.of(room.getId(), roomJoinCommand.type()); + return RoomJoinResult.of(room.getId(), type.getType()); } private void handleCancel(RoomJoinCommand roomJoinCommand, Optional participantOptional, Optional roomParticipantOptional, Room room) { diff --git a/src/main/java/konkuk/thip/room/application/service/RoomShowPlayingDetailViewService.java b/src/main/java/konkuk/thip/room/application/service/RoomShowPlayingDetailViewService.java index b381639ab..b85141591 100644 --- a/src/main/java/konkuk/thip/room/application/service/RoomShowPlayingDetailViewService.java +++ b/src/main/java/konkuk/thip/room/application/service/RoomShowPlayingDetailViewService.java @@ -11,7 +11,7 @@ import konkuk.thip.room.application.port.out.RoomParticipantCommandPort; import konkuk.thip.room.domain.RoomParticipants; import konkuk.thip.room.domain.RoomParticipant; -import konkuk.thip.vote.application.port.out.VoteQueryPort; +import konkuk.thip.roompost.application.port.out.VoteQueryPort; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/konkuk/thip/room/domain/RoomPost.java b/src/main/java/konkuk/thip/room/domain/RoomPost.java deleted file mode 100644 index f5631e5e3..000000000 --- a/src/main/java/konkuk/thip/room/domain/RoomPost.java +++ /dev/null @@ -1,7 +0,0 @@ -package konkuk.thip.room.domain; - -import konkuk.thip.common.post.CountUpdatable; - -public interface RoomPost extends CountUpdatable { - Long getRoomId(); -} \ No newline at end of file diff --git a/src/main/java/konkuk/thip/room/domain/RoomPostType.java b/src/main/java/konkuk/thip/room/domain/RoomPostType.java deleted file mode 100644 index 84d59c7f7..000000000 --- a/src/main/java/konkuk/thip/room/domain/RoomPostType.java +++ /dev/null @@ -1,31 +0,0 @@ -package konkuk.thip.room.domain; - -import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.PostType; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -import static konkuk.thip.common.exception.code.ErrorCode.ROOM_POST_TYPE_NOT_MATCH; - -@Getter -@RequiredArgsConstructor -public enum RoomPostType { - - RECORD("RECORD"), - VOTE("VOTE"); - - private final String type; - - public static RoomPostType from(String type) { - for (RoomPostType roomPostType : values()) { - if (roomPostType.getType().equalsIgnoreCase(type)) { - return roomPostType; - } - } - throw new InvalidStateException(ROOM_POST_TYPE_NOT_MATCH); - } - - public PostType toPostType() { - return PostType.from(this.type); - } -} \ No newline at end of file diff --git a/src/main/java/konkuk/thip/roompost/adapter/in/web/RoomPostCommandController.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/RoomPostCommandController.java new file mode 100644 index 000000000..fd7aebae0 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/RoomPostCommandController.java @@ -0,0 +1,136 @@ +package konkuk.thip.roompost.adapter.in.web; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import konkuk.thip.common.dto.BaseResponse; +import konkuk.thip.common.security.annotation.UserId; +import konkuk.thip.common.swagger.annotation.ExceptionDescription; +import konkuk.thip.roompost.adapter.in.web.request.AttendanceCheckCreateRequest; +import konkuk.thip.roompost.adapter.in.web.response.AttendanceCheckCreateResponse; +import konkuk.thip.roompost.application.port.in.AttendanceCheckCreateUseCase; +import konkuk.thip.roompost.adapter.in.web.request.RecordCreateRequest; +import konkuk.thip.roompost.adapter.in.web.request.VoteCreateRequest; +import konkuk.thip.roompost.adapter.in.web.request.VoteRequest; +import konkuk.thip.roompost.adapter.in.web.response.*; +import konkuk.thip.roompost.application.port.in.*; +import konkuk.thip.roompost.application.port.in.dto.record.RecordDeleteCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteDeleteCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteResult; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import static konkuk.thip.common.swagger.SwaggerResponseDescription.*; + +@Tag(name = "RoomPost Command API", description = "방 게시글 상태변경 관련 API") +@RestController +@RequiredArgsConstructor +public class RoomPostCommandController { + private final RecordCreateUseCase recordCreateUseCase; + private final RecordDeleteUseCase recordDeleteUseCase; + + private final VoteCreateUseCase voteCreateUseCase; + private final VoteDeleteUseCase voteDeleteUseCase; + private final VoteUseCase voteUseCase; + + private final AttendanceCheckCreateUseCase attendanceCheckCreateUseCase; + + /** + * 기록 관련 + */ + @Operation( + summary = "기록 생성", + description = "방에 대한 기록을 생성합니다." + ) + @ExceptionDescription(RECORD_CREATE) + @PostMapping("/rooms/{roomId}/record") + public BaseResponse createRecord( + @Parameter(hidden = true) @UserId final Long userId, + @Parameter(description = "기록을 생성할 방 ID", example = "1") @PathVariable final Long roomId, + @Valid @RequestBody final RecordCreateRequest recordCreateRequest + ) { + return BaseResponse.ok( + RecordCreateResponse.of( + recordCreateUseCase.createRecord(recordCreateRequest.toCommand(roomId, userId)) + )); + } + + @Operation( + summary = "기록 삭제", + description = "사용자가 기록을 삭제합니다." + ) + @ExceptionDescription(RECORD_DELETE) + @DeleteMapping("/rooms/{roomId}/record/{recordId}") + public BaseResponse deleteRecord( + @Parameter(description = "삭제하려는 기록 ID", example = "1") @PathVariable("recordId") final Long recordId, + @Parameter(description = "삭제하려는 기록이 작성된 모임 ID", example = "1") @PathVariable("roomId") final Long roomId, + @Parameter(hidden = true) @UserId final Long userId) { + return BaseResponse.ok(RecordDeleteResponse.of(recordDeleteUseCase.deleteRecord(new RecordDeleteCommand(roomId, recordId, userId)))); + } + + /** + * 투표 관련 + */ + + @Operation( + summary = "투표 생성", + description = "방에 대한 투표를 생성합니다." + ) + @PostMapping("/rooms/{roomId}/vote") + public BaseResponse createVote( + @Parameter(hidden = true) @UserId Long userId, + @Parameter(description = "투표를 생성할 방 ID", example = "1") @PathVariable Long roomId, + @Valid @RequestBody VoteCreateRequest request) { + + return BaseResponse.ok(VoteCreateResponse.of( + voteCreateUseCase.createVote(request.toCommand(userId, roomId)) + )); + } + + @Operation( + summary = "투표하기", + description = "특정 투표에 대해 사용자가 투표를 진행합니다. type이 true이면 투표하기, false이면 투표 취소입니다." + ) + @ExceptionDescription(VOTE) + @PostMapping("/rooms/{roomId}/vote/{voteId}") + public BaseResponse vote( + @Parameter(hidden = true) @UserId Long userId, + @Parameter(description = "투표를 진행할 방 ID", example = "1") @PathVariable Long roomId, + @Parameter(description = "투표할 투표 ID", example = "1") @PathVariable Long voteId, + @Valid @RequestBody VoteRequest request) { + VoteResult voteResult = voteUseCase.vote(request.toCommand(userId, roomId, voteId)); + return BaseResponse.ok(VoteResponse.of(voteResult.postId(), voteResult.roomId(), voteResult.voteItems())); + } + + @Operation( + summary = "투표 삭제", + description = "사용자가 투표를 삭제합니다." + ) + @ExceptionDescription(RECORD_DELETE) + @DeleteMapping("/rooms/{roomId}/vote/{voteId}") + public BaseResponse deleteVote( + @Parameter(description = "삭제하려는 투표 ID", example = "1") @PathVariable("voteId") final Long voteId, + @Parameter(description = "삭제하려는 투표가 작성된 모임 ID", example = "1") @PathVariable("roomId") final Long roomId, + @Parameter(hidden = true) @UserId final Long userId) { + return BaseResponse.ok(VoteDeleteResponse.of(voteDeleteUseCase.deleteVote(new VoteDeleteCommand(roomId, voteId, userId)))); + } + + /** + * 오늘의 한마디 작성 + */ + @Operation( + summary = "오늘의 한마디 작성", + description = "방 참여자가 오늘의 한마디를 작성합니다." + ) + @ExceptionDescription(ATTENDANCE_CHECK_CREATE) + @PostMapping("/rooms/{roomId}/daily-greeting") + public BaseResponse createFeed( + @RequestBody @Valid final AttendanceCheckCreateRequest request, + @Parameter(description = "오늘의 한마디를 작성할 방 id값") @PathVariable("roomId") final Long roomId, + @Parameter(hidden = true) @UserId final Long userId) { + return BaseResponse.ok(AttendanceCheckCreateResponse.of( + attendanceCheckCreateUseCase.create(request.toCommand(userId, roomId)) + )); + } +} diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/RecordQueryController.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/RoomPostQueryController.java similarity index 81% rename from src/main/java/konkuk/thip/record/adapter/in/web/RecordQueryController.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/RoomPostQueryController.java index 3aa7aa831..94f7f01ef 100644 --- a/src/main/java/konkuk/thip/record/adapter/in/web/RecordQueryController.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/RoomPostQueryController.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -6,26 +6,27 @@ import konkuk.thip.common.dto.BaseResponse; import konkuk.thip.common.security.annotation.UserId; import konkuk.thip.common.swagger.annotation.ExceptionDescription; -import konkuk.thip.record.adapter.in.web.response.RecordPinResponse; -import konkuk.thip.record.adapter.in.web.response.RecordSearchResponse; -import konkuk.thip.record.application.port.in.RecordPinUseCase; -import konkuk.thip.record.application.port.in.dto.RecordPinQuery; -import konkuk.thip.record.application.port.in.dto.RecordSearchQuery; -import konkuk.thip.record.application.port.in.dto.RecordSearchUseCase; +import konkuk.thip.roompost.adapter.in.web.response.RecordPinResponse; +import konkuk.thip.roompost.adapter.in.web.response.RoomPostSearchResponse; +import konkuk.thip.roompost.application.port.in.RecordPinUseCase; +import konkuk.thip.roompost.application.port.in.RoomPostSearchUseCase; +import konkuk.thip.roompost.application.port.in.dto.record.RecordPinQuery; +import konkuk.thip.roompost.application.port.in.dto.RoomPostSearchQuery; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import static konkuk.thip.common.swagger.SwaggerResponseDescription.*; +import static konkuk.thip.common.swagger.SwaggerResponseDescription.RECORD_PIN; +import static konkuk.thip.common.swagger.SwaggerResponseDescription.RECORD_SEARCH; -@Tag(name = "Record Query API", description = "기록 조회 관련 API") +@Tag(name = "RoomPost Query API", description = "방 게시글 조회 관련 API") @RestController @RequiredArgsConstructor -public class RecordQueryController { +public class RoomPostQueryController { - private final RecordSearchUseCase recordSearchUseCase; + private final RoomPostSearchUseCase roomPostSearchUseCase; private final RecordPinUseCase recordPinUseCase; @Operation( @@ -34,7 +35,7 @@ public class RecordQueryController { ) @ExceptionDescription(RECORD_SEARCH) @GetMapping("/rooms/{roomId}/posts") - public BaseResponse viewRecordList( + public BaseResponse viewRecordList( @Parameter(description = "게시글을 조회할 방 ID", example = "1") @PathVariable final Long roomId, @Parameter(description = "게시글 조회 타입 (group: 그룹 기록, mine: 내 기록)", example = "group") @RequestParam(required = false, defaultValue = "group") final String type, @@ -52,8 +53,8 @@ public BaseResponse viewRecordList( @RequestParam(required = false) final String cursor, @Parameter(hidden = true) @UserId final Long userId ) { - return BaseResponse.ok(recordSearchUseCase.search( - RecordSearchQuery.builder() + return BaseResponse.ok(roomPostSearchUseCase.search( + RoomPostSearchQuery.builder() .roomId(roomId) .type(type) .sort(sort) diff --git a/src/main/java/konkuk/thip/room/adapter/in/web/request/AttendanceCheckCreateRequest.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/AttendanceCheckCreateRequest.java similarity index 76% rename from src/main/java/konkuk/thip/room/adapter/in/web/request/AttendanceCheckCreateRequest.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/request/AttendanceCheckCreateRequest.java index 3fd12035a..50551d7bc 100644 --- a/src/main/java/konkuk/thip/room/adapter/in/web/request/AttendanceCheckCreateRequest.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/AttendanceCheckCreateRequest.java @@ -1,8 +1,8 @@ -package konkuk.thip.room.adapter.in.web.request; +package konkuk.thip.roompost.adapter.in.web.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; -import konkuk.thip.room.application.port.in.dto.AttendanceCheckCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.attendancecheck.AttendanceCheckCreateCommand; public record AttendanceCheckCreateRequest( @Schema(description = "유저가 작성한 오늘의 한마디 내용") diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/request/RecordCreateRequest.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/RecordCreateRequest.java similarity index 89% rename from src/main/java/konkuk/thip/record/adapter/in/web/request/RecordCreateRequest.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/request/RecordCreateRequest.java index d0086eb84..855a4095c 100644 --- a/src/main/java/konkuk/thip/record/adapter/in/web/request/RecordCreateRequest.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/RecordCreateRequest.java @@ -1,10 +1,10 @@ -package konkuk.thip.record.adapter.in.web.request; +package konkuk.thip.roompost.adapter.in.web.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; -import konkuk.thip.record.application.port.in.dto.RecordCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.record.RecordCreateCommand; @Schema( description = "기록 생성 요청 DTO" diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/request/VoteCreateRequest.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/VoteCreateRequest.java similarity index 94% rename from src/main/java/konkuk/thip/vote/adapter/in/web/request/VoteCreateRequest.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/request/VoteCreateRequest.java index f9e720f7d..1fc5cab4c 100644 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/request/VoteCreateRequest.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/VoteCreateRequest.java @@ -1,11 +1,11 @@ -package konkuk.thip.vote.adapter.in.web.request; +package konkuk.thip.roompost.adapter.in.web.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; -import konkuk.thip.vote.application.port.in.dto.VoteCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateCommand; import java.util.List; diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/request/VoteRequest.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/VoteRequest.java similarity index 86% rename from src/main/java/konkuk/thip/vote/adapter/in/web/request/VoteRequest.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/request/VoteRequest.java index 5af5c4213..6ea21bd8e 100644 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/request/VoteRequest.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/request/VoteRequest.java @@ -1,8 +1,8 @@ -package konkuk.thip.vote.adapter.in.web.request; +package konkuk.thip.roompost.adapter.in.web.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; -import konkuk.thip.vote.application.port.in.dto.VoteCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCommand; @Schema( description = "투표하기 요청 DTO 정보" diff --git a/src/main/java/konkuk/thip/room/adapter/in/web/response/AttendanceCheckCreateResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/AttendanceCheckCreateResponse.java similarity index 77% rename from src/main/java/konkuk/thip/room/adapter/in/web/response/AttendanceCheckCreateResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/AttendanceCheckCreateResponse.java index 3e6c3fe69..68be54e3a 100644 --- a/src/main/java/konkuk/thip/room/adapter/in/web/response/AttendanceCheckCreateResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/AttendanceCheckCreateResponse.java @@ -1,6 +1,6 @@ -package konkuk.thip.room.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; -import konkuk.thip.room.application.port.in.dto.AttendanceCheckCreateResult; +import konkuk.thip.roompost.application.port.in.dto.attendancecheck.AttendanceCheckCreateResult; public record AttendanceCheckCreateResponse( Long attendanceCheckId, diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordCreateResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordCreateResponse.java similarity index 70% rename from src/main/java/konkuk/thip/record/adapter/in/web/response/RecordCreateResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordCreateResponse.java index 4bd07e1a2..7f4e84dc3 100644 --- a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordCreateResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordCreateResponse.java @@ -1,6 +1,6 @@ -package konkuk.thip.record.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; -import konkuk.thip.record.application.port.in.dto.RecordCreateResult; +import konkuk.thip.roompost.application.port.in.dto.record.RecordCreateResult; public record RecordCreateResponse( Long recordId, diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordDeleteResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordDeleteResponse.java similarity index 75% rename from src/main/java/konkuk/thip/record/adapter/in/web/response/RecordDeleteResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordDeleteResponse.java index b6bc76ca1..3651a6830 100644 --- a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordDeleteResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordDeleteResponse.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; public record RecordDeleteResponse(Long roomId) { public static RecordDeleteResponse of(Long roomId) { diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordPinResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordPinResponse.java similarity index 90% rename from src/main/java/konkuk/thip/record/adapter/in/web/response/RecordPinResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordPinResponse.java index 43d77e738..9f31f093e 100644 --- a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordPinResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RecordPinResponse.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; import konkuk.thip.book.application.port.in.dto.BookSelectableResult; diff --git a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordSearchResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RoomPostSearchResponse.java similarity index 86% rename from src/main/java/konkuk/thip/record/adapter/in/web/response/RecordSearchResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/RoomPostSearchResponse.java index 8922bb8e2..e73915d3c 100644 --- a/src/main/java/konkuk/thip/record/adapter/in/web/response/RecordSearchResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/RoomPostSearchResponse.java @@ -1,12 +1,12 @@ -package konkuk.thip.record.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; import lombok.Builder; import java.util.List; @Builder -public record RecordSearchResponse( - List postList, +public record RoomPostSearchResponse( + List postList, Long roomId, String isbn, boolean isOverviewEnabled, @@ -14,7 +14,7 @@ public record RecordSearchResponse( Boolean isLast ){ @Builder - public record PostDto( + public record RoomPostDto( Long postId, String postDate, String postType, diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteCreateResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteCreateResponse.java similarity index 70% rename from src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteCreateResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteCreateResponse.java index 00321af19..80e75d6f5 100644 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteCreateResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteCreateResponse.java @@ -1,6 +1,6 @@ -package konkuk.thip.vote.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; -import konkuk.thip.vote.application.port.in.dto.VoteCreateResult; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateResult; public record VoteCreateResponse( Long voteId, diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteDeleteResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteDeleteResponse.java similarity index 74% rename from src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteDeleteResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteDeleteResponse.java index a2ffe515b..5d9abe0f4 100644 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteDeleteResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteDeleteResponse.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; public record VoteDeleteResponse(Long roomId) { public static VoteDeleteResponse of(Long roomId) { diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteResponse.java b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteResponse.java similarity index 72% rename from src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteResponse.java rename to src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteResponse.java index f06064c5a..e57413277 100644 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/response/VoteResponse.java +++ b/src/main/java/konkuk/thip/roompost/adapter/in/web/response/VoteResponse.java @@ -1,6 +1,6 @@ -package konkuk.thip.vote.adapter.in.web.response; +package konkuk.thip.roompost.adapter.in.web.response; -import konkuk.thip.vote.application.port.in.dto.VoteResult; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteResult; import java.util.List; diff --git a/src/main/java/konkuk/thip/room/adapter/out/jpa/AttendanceCheckJpaEntity.java b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/AttendanceCheckJpaEntity.java similarity index 89% rename from src/main/java/konkuk/thip/room/adapter/out/jpa/AttendanceCheckJpaEntity.java rename to src/main/java/konkuk/thip/roompost/adapter/out/jpa/AttendanceCheckJpaEntity.java index 46ebb2d09..3e43a40a8 100644 --- a/src/main/java/konkuk/thip/room/adapter/out/jpa/AttendanceCheckJpaEntity.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/AttendanceCheckJpaEntity.java @@ -1,7 +1,8 @@ -package konkuk.thip.room.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import jakarta.persistence.*; import konkuk.thip.common.entity.BaseJpaEntity; +import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import lombok.*; diff --git a/src/main/java/konkuk/thip/record/adapter/out/jpa/RecordJpaEntity.java b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/RecordJpaEntity.java similarity index 94% rename from src/main/java/konkuk/thip/record/adapter/out/jpa/RecordJpaEntity.java rename to src/main/java/konkuk/thip/roompost/adapter/out/jpa/RecordJpaEntity.java index 594abe8a0..45d92fe60 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/jpa/RecordJpaEntity.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/RecordJpaEntity.java @@ -1,8 +1,8 @@ -package konkuk.thip.record.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import com.google.common.annotations.VisibleForTesting; import jakarta.persistence.*; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.domain.Record; import konkuk.thip.post.adapter.out.jpa.PostJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteItemJpaEntity.java b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteItemJpaEntity.java similarity index 90% rename from src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteItemJpaEntity.java rename to src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteItemJpaEntity.java index aace17f72..9d5eaf601 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteItemJpaEntity.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteItemJpaEntity.java @@ -1,8 +1,8 @@ -package konkuk.thip.vote.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import jakarta.persistence.*; import konkuk.thip.common.entity.BaseJpaEntity; -import konkuk.thip.vote.domain.VoteItem; +import konkuk.thip.roompost.domain.VoteItem; import lombok.*; @Entity diff --git a/src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteJpaEntity.java b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteJpaEntity.java similarity index 95% rename from src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteJpaEntity.java rename to src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteJpaEntity.java index cfab6c8a9..20f9934e9 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteJpaEntity.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteJpaEntity.java @@ -1,11 +1,11 @@ -package konkuk.thip.vote.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import com.google.common.annotations.VisibleForTesting; import jakarta.persistence.*; import konkuk.thip.post.adapter.out.jpa.PostJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; -import konkuk.thip.vote.domain.Vote; +import konkuk.thip.roompost.domain.Vote; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteParticipantJpaEntity.java b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteParticipantJpaEntity.java similarity index 95% rename from src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteParticipantJpaEntity.java rename to src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteParticipantJpaEntity.java index 4893e2de8..bda48ca30 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/jpa/VoteParticipantJpaEntity.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/jpa/VoteParticipantJpaEntity.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import jakarta.persistence.*; import konkuk.thip.common.entity.BaseJpaEntity; diff --git a/src/main/java/konkuk/thip/room/adapter/out/mapper/AttendanceCheckMapper.java b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/AttendanceCheckMapper.java similarity index 88% rename from src/main/java/konkuk/thip/room/adapter/out/mapper/AttendanceCheckMapper.java rename to src/main/java/konkuk/thip/roompost/adapter/out/mapper/AttendanceCheckMapper.java index 73d0459c1..cbf34b629 100644 --- a/src/main/java/konkuk/thip/room/adapter/out/mapper/AttendanceCheckMapper.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/AttendanceCheckMapper.java @@ -1,7 +1,7 @@ -package konkuk.thip.room.adapter.out.mapper; +package konkuk.thip.roompost.adapter.out.mapper; -import konkuk.thip.room.adapter.out.jpa.AttendanceCheckJpaEntity; -import konkuk.thip.room.domain.AttendanceCheck; +import konkuk.thip.roompost.adapter.out.jpa.AttendanceCheckJpaEntity; +import konkuk.thip.roompost.domain.AttendanceCheck; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/record/adapter/out/mapper/RecordMapper.java b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/RecordMapper.java similarity index 90% rename from src/main/java/konkuk/thip/record/adapter/out/mapper/RecordMapper.java rename to src/main/java/konkuk/thip/roompost/adapter/out/mapper/RecordMapper.java index 6997190e6..ed7ee4955 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/mapper/RecordMapper.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/RecordMapper.java @@ -1,7 +1,7 @@ -package konkuk.thip.record.adapter.out.mapper; +package konkuk.thip.roompost.adapter.out.mapper; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.domain.Record; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteItemMapper.java b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteItemMapper.java similarity index 81% rename from src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteItemMapper.java rename to src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteItemMapper.java index 06642c44d..638c8cf84 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteItemMapper.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteItemMapper.java @@ -1,8 +1,8 @@ -package konkuk.thip.vote.adapter.out.mapper; +package konkuk.thip.roompost.adapter.out.mapper; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.domain.VoteItem; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.domain.VoteItem; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteMapper.java b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteMapper.java similarity index 90% rename from src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteMapper.java rename to src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteMapper.java index d7ea120c4..0d44ee3b5 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteMapper.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteMapper.java @@ -1,9 +1,9 @@ -package konkuk.thip.vote.adapter.out.mapper; +package konkuk.thip.roompost.adapter.out.mapper; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.domain.Vote; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.domain.Vote; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteParticipantMapper.java b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteParticipantMapper.java similarity index 71% rename from src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteParticipantMapper.java rename to src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteParticipantMapper.java index fd09218e7..8a7c6bcbf 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/mapper/VoteParticipantMapper.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/mapper/VoteParticipantMapper.java @@ -1,8 +1,9 @@ -package konkuk.thip.vote.adapter.out.mapper; +package konkuk.thip.roompost.adapter.out.mapper; +import konkuk.thip.roompost.domain.VoteParticipant; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteParticipantJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; import org.springframework.stereotype.Component; @Component @@ -15,8 +16,8 @@ public VoteParticipantJpaEntity toJpaEntity(UserJpaEntity userJpaEntity, VoteIte .build(); } - public konkuk.thip.vote.domain.VoteParticipant toDomainEntity(VoteParticipantJpaEntity voteParticipantJpaEntity) { - return konkuk.thip.vote.domain.VoteParticipant.builder() + public VoteParticipant toDomainEntity(VoteParticipantJpaEntity voteParticipantJpaEntity) { + return VoteParticipant.builder() .id(voteParticipantJpaEntity.getVoteParticipantId()) .userId(voteParticipantJpaEntity.getUserJpaEntity().getUserId()) .voteItemId(voteParticipantJpaEntity.getVoteItemJpaEntity().getVoteItemId()) diff --git a/src/main/java/konkuk/thip/room/adapter/out/persistence/AttendanceCheckCommandPersistenceAdapter.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/AttendanceCheckCommandPersistenceAdapter.java similarity index 81% rename from src/main/java/konkuk/thip/room/adapter/out/persistence/AttendanceCheckCommandPersistenceAdapter.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/AttendanceCheckCommandPersistenceAdapter.java index 5112903b5..33d36ca41 100644 --- a/src/main/java/konkuk/thip/room/adapter/out/persistence/AttendanceCheckCommandPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/AttendanceCheckCommandPersistenceAdapter.java @@ -1,9 +1,9 @@ -package konkuk.thip.room.adapter.out.persistence; +package konkuk.thip.roompost.adapter.out.persistence; -import konkuk.thip.room.adapter.out.mapper.AttendanceCheckMapper; -import konkuk.thip.room.adapter.out.persistence.repository.attendancecheck.AttendanceCheckJpaRepository; -import konkuk.thip.room.application.port.out.AttendanceCheckCommandPort; -import konkuk.thip.room.domain.AttendanceCheck; +import konkuk.thip.roompost.adapter.out.mapper.AttendanceCheckMapper; +import konkuk.thip.roompost.adapter.out.persistence.repository.attendancecheck.AttendanceCheckJpaRepository; +import konkuk.thip.roompost.application.port.out.AttendanceCheckCommandPort; +import konkuk.thip.roompost.domain.AttendanceCheck; import konkuk.thip.common.exception.EntityNotFoundException; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; diff --git a/src/main/java/konkuk/thip/room/adapter/out/persistence/AttendanceCheckQueryPersistenceAdapter.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/AttendanceCheckQueryPersistenceAdapter.java similarity index 72% rename from src/main/java/konkuk/thip/room/adapter/out/persistence/AttendanceCheckQueryPersistenceAdapter.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/AttendanceCheckQueryPersistenceAdapter.java index ab44b6f72..779131e78 100644 --- a/src/main/java/konkuk/thip/room/adapter/out/persistence/AttendanceCheckQueryPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/AttendanceCheckQueryPersistenceAdapter.java @@ -1,8 +1,8 @@ -package konkuk.thip.room.adapter.out.persistence; +package konkuk.thip.roompost.adapter.out.persistence; -import konkuk.thip.room.adapter.out.mapper.AttendanceCheckMapper; -import konkuk.thip.room.adapter.out.persistence.repository.attendancecheck.AttendanceCheckJpaRepository; -import konkuk.thip.room.application.port.out.AttendanceCheckQueryPort; +import konkuk.thip.roompost.adapter.out.mapper.AttendanceCheckMapper; +import konkuk.thip.roompost.adapter.out.persistence.repository.attendancecheck.AttendanceCheckJpaRepository; +import konkuk.thip.roompost.application.port.out.AttendanceCheckQueryPort; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordCommandPersistenceAdapter.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RecordCommandPersistenceAdapter.java similarity index 86% rename from src/main/java/konkuk/thip/record/adapter/out/persistence/RecordCommandPersistenceAdapter.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/RecordCommandPersistenceAdapter.java index 29bc76369..015bbf797 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordCommandPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RecordCommandPersistenceAdapter.java @@ -1,11 +1,11 @@ -package konkuk.thip.record.adapter.out.persistence; +package konkuk.thip.roompost.adapter.out.persistence; import konkuk.thip.common.exception.EntityNotFoundException; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.mapper.RecordMapper; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; -import konkuk.thip.record.application.port.out.RecordCommandPort; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.mapper.RecordMapper; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; +import konkuk.thip.roompost.application.port.out.RecordCommandPort; +import konkuk.thip.roompost.domain.Record; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; diff --git a/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RecordQueryPersistenceAdapter.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RecordQueryPersistenceAdapter.java new file mode 100644 index 000000000..6b3e1a1f5 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RecordQueryPersistenceAdapter.java @@ -0,0 +1,66 @@ +package konkuk.thip.roompost.adapter.out.persistence; + +import konkuk.thip.common.util.Cursor; +import konkuk.thip.common.util.CursorBasedList; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; +import konkuk.thip.roompost.application.port.out.RecordQueryPort; +import konkuk.thip.roompost.application.port.out.dto.RoomPostQueryDto; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class RecordQueryPersistenceAdapter implements RecordQueryPort { + + private final RecordJpaRepository recordJpaRepository; + + @Override + public CursorBasedList searchMyRecords(Long roomId, Long userId, Cursor cursor) { + List roomPostQueryDtos = recordJpaRepository.findMyRecords(roomId, userId, cursor); + + return CursorBasedList.of(roomPostQueryDtos, cursor.getPageSize(), postQueryDto -> { + Cursor nextCursor = new Cursor(List.of(postQueryDto.isOverview() ? "1" : "0", + postQueryDto.page().toString(), + postQueryDto.postId().toString())); + return nextCursor.toEncodedString(); + }); + } + + @Override + public CursorBasedList searchGroupRecordsByLatest(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { + List roomPostQueryDtos = recordJpaRepository.findGroupRecordsOrderBySortType( + roomId, userId, cursor, pageStart, pageEnd, isOverview, RoomPostSortType.CREATED_AT); + + return CursorBasedList.of(roomPostQueryDtos, cursor.getPageSize(), postQueryDto -> { + Cursor nextCursor = new Cursor(List.of(postQueryDto.postDate().toString(), + postQueryDto.postId().toString())); + return nextCursor.toEncodedString(); + }); + } + + @Override + public CursorBasedList searchGroupRecordsByLike(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { + List roomPostQueryDtos = recordJpaRepository.findGroupRecordsOrderBySortType( + roomId, userId, cursor, pageStart, pageEnd, isOverview, RoomPostSortType.LIKE_COUNT); + + return CursorBasedList.of(roomPostQueryDtos, cursor.getPageSize(), postQueryDto -> { + Cursor nextCursor = new Cursor(List.of(postQueryDto.likeCount().toString(), + postQueryDto.postId().toString())); + return nextCursor.toEncodedString(); + }); + } + + @Override + public CursorBasedList searchGroupRecordsByComment(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { + List roomPostQueryDtos = recordJpaRepository.findGroupRecordsOrderBySortType( + roomId, userId, cursor, pageStart, pageEnd, isOverview, RoomPostSortType.COMMENT_COUNT); + + return CursorBasedList.of(roomPostQueryDtos, cursor.getPageSize(), postQueryDto -> { + Cursor nextCursor = new Cursor(List.of(postQueryDto.commentCount().toString(), + postQueryDto.postId().toString())); + return nextCursor.toEncodedString(); + }); + } +} \ No newline at end of file diff --git a/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RoomPostSortType.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RoomPostSortType.java new file mode 100644 index 000000000..c6dee311e --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/RoomPostSortType.java @@ -0,0 +1,5 @@ +package konkuk.thip.roompost.adapter.out.persistence; + +public enum RoomPostSortType { + CREATED_AT, LIKE_COUNT, COMMENT_COUNT, MINE +} diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/VoteCommandPersistenceAdapter.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/VoteCommandPersistenceAdapter.java similarity index 86% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/VoteCommandPersistenceAdapter.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/VoteCommandPersistenceAdapter.java index fdcdbd938..3fbfea317 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/VoteCommandPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/VoteCommandPersistenceAdapter.java @@ -1,23 +1,23 @@ -package konkuk.thip.vote.adapter.out.persistence; +package konkuk.thip.roompost.adapter.out.persistence; import konkuk.thip.common.exception.EntityNotFoundException; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteParticipantJpaEntity; -import konkuk.thip.vote.adapter.out.mapper.VoteItemMapper; -import konkuk.thip.vote.adapter.out.mapper.VoteMapper; -import konkuk.thip.vote.adapter.out.mapper.VoteParticipantMapper; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteParticipantJpaRepository; -import konkuk.thip.vote.application.port.out.VoteCommandPort; -import konkuk.thip.vote.domain.Vote; -import konkuk.thip.vote.domain.VoteItem; -import konkuk.thip.vote.domain.VoteParticipant; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.mapper.VoteItemMapper; +import konkuk.thip.roompost.adapter.out.mapper.VoteMapper; +import konkuk.thip.roompost.adapter.out.mapper.VoteParticipantMapper; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteParticipantJpaRepository; +import konkuk.thip.roompost.application.port.out.VoteCommandPort; +import konkuk.thip.roompost.domain.Vote; +import konkuk.thip.roompost.domain.VoteItem; +import konkuk.thip.roompost.domain.VoteParticipant; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/VoteQueryPersistenceAdapter.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/VoteQueryPersistenceAdapter.java similarity index 83% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/VoteQueryPersistenceAdapter.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/VoteQueryPersistenceAdapter.java index 5b812d3c1..ac86e9552 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/VoteQueryPersistenceAdapter.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/VoteQueryPersistenceAdapter.java @@ -1,10 +1,10 @@ -package konkuk.thip.vote.adapter.out.persistence; +package konkuk.thip.roompost.adapter.out.persistence; import konkuk.thip.room.adapter.in.web.response.RoomPlayingDetailViewResponse; import konkuk.thip.room.domain.Room; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; -import konkuk.thip.vote.application.port.out.VoteQueryPort; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; +import konkuk.thip.roompost.application.port.out.VoteQueryPort; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/room/adapter/out/persistence/repository/attendancecheck/AttendanceCheckJpaRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/attendancecheck/AttendanceCheckJpaRepository.java similarity index 87% rename from src/main/java/konkuk/thip/room/adapter/out/persistence/repository/attendancecheck/AttendanceCheckJpaRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/attendancecheck/AttendanceCheckJpaRepository.java index 97b629b60..0e7a7fc46 100644 --- a/src/main/java/konkuk/thip/room/adapter/out/persistence/repository/attendancecheck/AttendanceCheckJpaRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/attendancecheck/AttendanceCheckJpaRepository.java @@ -1,7 +1,7 @@ -package konkuk.thip.room.adapter.out.persistence.repository.attendancecheck; +package konkuk.thip.roompost.adapter.out.persistence.repository.attendancecheck; import konkuk.thip.common.entity.StatusType; -import konkuk.thip.room.adapter.out.jpa.AttendanceCheckJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.AttendanceCheckJpaEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordJpaRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordJpaRepository.java similarity index 71% rename from src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordJpaRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordJpaRepository.java index a5058f7db..6e197c50d 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordJpaRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordJpaRepository.java @@ -1,7 +1,7 @@ -package konkuk.thip.record.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.record; import konkuk.thip.common.entity.StatusType; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordQueryRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordQueryRepository.java new file mode 100644 index 000000000..936f14737 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordQueryRepository.java @@ -0,0 +1,14 @@ +package konkuk.thip.roompost.adapter.out.persistence.repository.record; + +import konkuk.thip.common.util.Cursor; +import konkuk.thip.roompost.adapter.out.persistence.RoomPostSortType; +import konkuk.thip.roompost.application.port.out.dto.RoomPostQueryDto; + +import java.util.List; + +public interface RecordQueryRepository { + + List findMyRecords(Long roomId, Long userId, Cursor cursor); + + List findGroupRecordsOrderBySortType(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview, RoomPostSortType roomPostSortType); +} diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordQueryRepositoryImpl.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordQueryRepositoryImpl.java similarity index 82% rename from src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordQueryRepositoryImpl.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordQueryRepositoryImpl.java index 1f530f321..98bb895f8 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/repository/RecordQueryRepositoryImpl.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/record/RecordQueryRepositoryImpl.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.record; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.OrderSpecifier; @@ -8,20 +8,20 @@ import konkuk.thip.common.entity.StatusType; import konkuk.thip.common.util.Cursor; import konkuk.thip.post.adapter.out.jpa.QPostJpaEntity; -import konkuk.thip.record.adapter.out.jpa.QRecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.constants.SortType; -import konkuk.thip.record.application.port.out.dto.PostQueryDto; -import konkuk.thip.record.application.port.out.dto.QPostQueryDto; +import konkuk.thip.roompost.adapter.out.jpa.QRecordJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.QVoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.RoomPostSortType; +import konkuk.thip.roompost.application.port.out.dto.QRoomPostQueryDto; +import konkuk.thip.roompost.application.port.out.dto.RoomPostQueryDto; import konkuk.thip.user.adapter.out.jpa.QUserJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.QVoteJpaEntity; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.time.LocalDateTime; import java.util.List; -import static konkuk.thip.common.post.PostType.RECORD; -import static konkuk.thip.common.post.PostType.VOTE; +import static konkuk.thip.post.domain.PostType.RECORD; +import static konkuk.thip.post.domain.PostType.VOTE; @Repository @@ -36,12 +36,12 @@ public class RecordQueryRepositoryImpl implements RecordQueryRepository { private final QUserJpaEntity user = QUserJpaEntity.userJpaEntity; @Override - public List findMyRecords(Long roomId, Long userId, Cursor cursor) { + public List findMyRecords(Long roomId, Long userId, Cursor cursor) { BooleanBuilder where = buildMyRecordCondition(roomId, userId); - SortType sortType = SortType.MINE; + RoomPostSortType roomPostSortType = RoomPostSortType.MINE; if (!cursor.isFirstRequest()) { - where.and(buildCursorPredicateForSortType(sortType, cursor)); + where.and(buildCursorPredicateForSortType(roomPostSortType, cursor)); } return queryFactory @@ -51,7 +51,7 @@ public List findMyRecords(Long roomId, Long userId, Cursor cursor) .leftJoin(vote).on(post.postId.eq(vote.postId)) .join(post.userJpaEntity, user) .where(where) - .orderBy(getOrderSpecifiers(sortType)) + .orderBy(getOrderSpecifiers(roomPostSortType)) .limit(cursor.getPageSize() + 1) .fetch(); } @@ -74,11 +74,11 @@ private BooleanBuilder buildMyRecordCondition(Long roomId, Long userId) { } @Override - public List findGroupRecordsOrderBySortType(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview, SortType sortType) { + public List findGroupRecordsOrderBySortType(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview, RoomPostSortType roomPostSortType) { BooleanBuilder where = buildRecordVoteCondition(roomId, pageStart, pageEnd, isOverview); if (!cursor.isFirstRequest()) { - where.and(buildCursorPredicateForSortType(sortType, cursor)); + where.and(buildCursorPredicateForSortType(roomPostSortType, cursor)); } return queryFactory @@ -88,7 +88,7 @@ public List findGroupRecordsOrderBySortType(Long roomId, Long user .leftJoin(vote).on(post.postId.eq(vote.postId)) .join(post.userJpaEntity, user) .where(where) - .orderBy(getOrderSpecifiers(sortType)) + .orderBy(getOrderSpecifiers(roomPostSortType)) .limit(cursor.getPageSize() + 1) .fetch(); } @@ -139,10 +139,10 @@ private NumberExpression isOverviewExpr() { .otherwise(0); } - private BooleanBuilder buildCursorPredicateForSortType(SortType sortType, Cursor cursor) { + private BooleanBuilder buildCursorPredicateForSortType(RoomPostSortType roomPostSortType, Cursor cursor) { BooleanBuilder builder = new BooleanBuilder(); - switch (sortType) { + switch (roomPostSortType) { case CREATED_AT -> { LocalDateTime createdAt = cursor.getLocalDateTime(0); Long postId = cursor.getLong(1); @@ -176,8 +176,8 @@ private BooleanBuilder buildCursorPredicateForSortType(SortType sortType, Cursor return builder; } - private OrderSpecifier[] getOrderSpecifiers(SortType sortType) { - return switch (sortType) { + private OrderSpecifier[] getOrderSpecifiers(RoomPostSortType roomPostSortType) { + return switch (roomPostSortType) { case CREATED_AT -> new OrderSpecifier[] { post.createdAt.desc(), post.postId.desc() }; case LIKE_COUNT -> new OrderSpecifier[] { post.likeCount.desc(), post.postId.desc() }; case COMMENT_COUNT -> new OrderSpecifier[] { post.commentCount.desc(), post.postId.desc() }; @@ -185,8 +185,8 @@ private OrderSpecifier[] getOrderSpecifiers(SortType sortType) { }; } - private QPostQueryDto selectPostQueryDto() { - return new QPostQueryDto( + private QRoomPostQueryDto selectPostQueryDto() { + return new QRoomPostQueryDto( post.postId, post.dtype, //추후에 상속 구조 해지시 type 필드로 구분 post.createdAt, diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteItemJpaRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteItemJpaRepository.java similarity index 82% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteItemJpaRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteItemJpaRepository.java index 7af0784a1..b8640c6b2 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteItemJpaRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteItemJpaRepository.java @@ -1,6 +1,6 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteJpaRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteJpaRepository.java similarity index 71% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteJpaRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteJpaRepository.java index c82257108..8591fde59 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteJpaRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteJpaRepository.java @@ -1,7 +1,7 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; import konkuk.thip.common.entity.StatusType; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantJpaRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantJpaRepository.java similarity index 88% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantJpaRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantJpaRepository.java index bcafcced2..f92a674cc 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantJpaRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantJpaRepository.java @@ -1,6 +1,6 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; -import konkuk.thip.vote.adapter.out.jpa.VoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteParticipantJpaEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantQueryRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantQueryRepository.java similarity index 57% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantQueryRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantQueryRepository.java index 83eb3c600..a685423cb 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantQueryRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantQueryRepository.java @@ -1,6 +1,6 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; -import konkuk.thip.vote.adapter.out.jpa.VoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteParticipantJpaEntity; import java.util.Optional; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantQueryRepositoryImpl.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantQueryRepositoryImpl.java similarity index 80% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantQueryRepositoryImpl.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantQueryRepositoryImpl.java index 9db24cb92..1e04a07a9 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteParticipantQueryRepositoryImpl.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteParticipantQueryRepositoryImpl.java @@ -1,10 +1,10 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; import com.querydsl.jpa.impl.JPAQueryFactory; -import konkuk.thip.vote.adapter.out.jpa.QVoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.QVoteJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.QVoteParticipantJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.QVoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.QVoteJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.QVoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteParticipantJpaEntity; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteQueryRepository.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteQueryRepository.java similarity index 73% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteQueryRepository.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteQueryRepository.java index b8ae5bd17..b659d7029 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteQueryRepository.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteQueryRepository.java @@ -1,8 +1,8 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; import konkuk.thip.room.adapter.in.web.response.RoomPlayingDetailViewResponse; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; import java.util.List; import java.util.Set; diff --git a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteQueryRepositoryImpl.java b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteQueryRepositoryImpl.java similarity index 92% rename from src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteQueryRepositoryImpl.java rename to src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteQueryRepositoryImpl.java index 0a28f99f8..7a25d9522 100644 --- a/src/main/java/konkuk/thip/vote/adapter/out/persistence/repository/VoteQueryRepositoryImpl.java +++ b/src/main/java/konkuk/thip/roompost/adapter/out/persistence/repository/vote/VoteQueryRepositoryImpl.java @@ -1,16 +1,16 @@ -package konkuk.thip.vote.adapter.out.persistence.repository; +package konkuk.thip.roompost.adapter.out.persistence.repository.vote; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.impl.JPAQueryFactory; import konkuk.thip.room.adapter.in.web.response.RoomPlayingDetailViewResponse; +import konkuk.thip.roompost.adapter.out.jpa.QVoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.QVoteJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.QVoteParticipantJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.application.port.out.dto.QVoteItemQueryDto; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; import konkuk.thip.user.adapter.out.jpa.QUserJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.QVoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.QVoteJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.QVoteParticipantJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.application.port.out.dto.QVoteItemQueryDto; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; diff --git a/src/main/java/konkuk/thip/record/application/mapper/RecordQueryMapper.java b/src/main/java/konkuk/thip/roompost/application/mapper/RoomPostQueryMapper.java similarity index 77% rename from src/main/java/konkuk/thip/record/application/mapper/RecordQueryMapper.java rename to src/main/java/konkuk/thip/roompost/application/mapper/RoomPostQueryMapper.java index 9d30ce5ba..045da8b0f 100644 --- a/src/main/java/konkuk/thip/record/application/mapper/RecordQueryMapper.java +++ b/src/main/java/konkuk/thip/roompost/application/mapper/RoomPostQueryMapper.java @@ -1,8 +1,8 @@ -package konkuk.thip.record.application.mapper; +package konkuk.thip.roompost.application.mapper; import konkuk.thip.common.util.DateUtil; -import konkuk.thip.record.adapter.in.web.response.RecordSearchResponse; -import konkuk.thip.record.application.port.out.dto.PostQueryDto; +import konkuk.thip.roompost.adapter.in.web.response.RoomPostSearchResponse; +import konkuk.thip.roompost.application.port.out.dto.RoomPostQueryDto; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.ReportingPolicy; @@ -10,7 +10,7 @@ import java.util.List; @Mapper(componentModel = "spring", imports = DateUtil.class, unmappedTargetPolicy = ReportingPolicy.ERROR) -public interface RecordQueryMapper { +public interface RoomPostQueryMapper { @Mapping(target = "postId", source = "dto.postId") @Mapping(target = "postDate", expression = "java(DateUtil.formatBeforeTime(dto.postDate()))") @@ -27,12 +27,12 @@ public interface RecordQueryMapper { @Mapping(target = "isWriter", source = "isWriter") @Mapping(target = "isLocked", source = "isLocked") @Mapping(target = "voteItems", source = "voteItems") - RecordSearchResponse.PostDto toPostDto( - PostQueryDto dto, + RoomPostSearchResponse.RoomPostDto toPostDto( + RoomPostQueryDto dto, String content, boolean isLiked, boolean isWriter, boolean isLocked, - List voteItems + List voteItems ); } \ No newline at end of file diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/AttendanceCheckCreateUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/AttendanceCheckCreateUseCase.java new file mode 100644 index 000000000..597e12fc7 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/AttendanceCheckCreateUseCase.java @@ -0,0 +1,9 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.application.port.in.dto.attendancecheck.AttendanceCheckCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.attendancecheck.AttendanceCheckCreateResult; + +public interface AttendanceCheckCreateUseCase { + + AttendanceCheckCreateResult create(AttendanceCheckCreateCommand command); +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/RecordCreateUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/RecordCreateUseCase.java new file mode 100644 index 000000000..754dbafa0 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/RecordCreateUseCase.java @@ -0,0 +1,10 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.application.port.in.dto.record.RecordCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.record.RecordCreateResult; + +public interface RecordCreateUseCase { + + RecordCreateResult createRecord(RecordCreateCommand command); + +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/RecordDeleteUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/RecordDeleteUseCase.java new file mode 100644 index 000000000..ffb1762eb --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/RecordDeleteUseCase.java @@ -0,0 +1,7 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.application.port.in.dto.record.RecordDeleteCommand; + +public interface RecordDeleteUseCase { + Long deleteRecord(RecordDeleteCommand command); +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/RecordPinUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/RecordPinUseCase.java new file mode 100644 index 000000000..f816bdcdd --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/RecordPinUseCase.java @@ -0,0 +1,8 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.adapter.in.web.response.RecordPinResponse; +import konkuk.thip.roompost.application.port.in.dto.record.RecordPinQuery; + +public interface RecordPinUseCase { + RecordPinResponse pinRecord(RecordPinQuery query); +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/RoomPostSearchUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/RoomPostSearchUseCase.java new file mode 100644 index 000000000..04905c3ed --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/RoomPostSearchUseCase.java @@ -0,0 +1,9 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.adapter.in.web.response.RoomPostSearchResponse; +import konkuk.thip.roompost.application.port.in.dto.RoomPostSearchQuery; + +public interface RoomPostSearchUseCase { + + RoomPostSearchResponse search(RoomPostSearchQuery roomPostSearchQuery); +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/VoteCreateUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/VoteCreateUseCase.java new file mode 100644 index 000000000..b20d18338 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/VoteCreateUseCase.java @@ -0,0 +1,9 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateResult; + +public interface VoteCreateUseCase { + + VoteCreateResult createVote(VoteCreateCommand command); +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/VoteDeleteUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/VoteDeleteUseCase.java new file mode 100644 index 000000000..163449a3e --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/VoteDeleteUseCase.java @@ -0,0 +1,7 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.application.port.in.dto.vote.VoteDeleteCommand; + +public interface VoteDeleteUseCase { + Long deleteVote(VoteDeleteCommand command); +} diff --git a/src/main/java/konkuk/thip/roompost/application/port/in/VoteUseCase.java b/src/main/java/konkuk/thip/roompost/application/port/in/VoteUseCase.java new file mode 100644 index 000000000..2eadae597 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/in/VoteUseCase.java @@ -0,0 +1,8 @@ +package konkuk.thip.roompost.application.port.in; + +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteResult; + +public interface VoteUseCase { + VoteResult vote(VoteCommand command); +} diff --git a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordSearchQuery.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchQuery.java similarity index 74% rename from src/main/java/konkuk/thip/record/application/port/in/dto/RecordSearchQuery.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchQuery.java index e5d8a7c5f..c06efe499 100644 --- a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordSearchQuery.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchQuery.java @@ -1,9 +1,9 @@ -package konkuk.thip.record.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto; import lombok.Builder; @Builder -public record RecordSearchQuery( +public record RoomPostSearchQuery( Long roomId, String type, String sort, diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordSearchSortParams.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchSortParams.java similarity index 69% rename from src/main/java/konkuk/thip/record/adapter/out/persistence/RecordSearchSortParams.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchSortParams.java index ebaa373b7..9286b490e 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordSearchSortParams.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchSortParams.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.out.persistence; +package konkuk.thip.roompost.application.port.in.dto; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.common.exception.code.ErrorCode; @@ -7,7 +7,7 @@ import java.util.Arrays; @Getter -public enum RecordSearchSortParams { +public enum RoomPostSearchSortParams { LATEST("latest"), LIKE("like"), @@ -15,12 +15,12 @@ public enum RecordSearchSortParams { private final String value; - RecordSearchSortParams(String value) { + RoomPostSearchSortParams(String value) { this.value = value; } - public static RecordSearchSortParams from(String value) { - return Arrays.stream(RecordSearchSortParams.values()) + public static RoomPostSearchSortParams from(String value) { + return Arrays.stream(RoomPostSearchSortParams.values()) .filter(param -> param.getValue().equals(value)) .findFirst() .orElseThrow( diff --git a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordSearchTypeParams.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchTypeParams.java similarity index 70% rename from src/main/java/konkuk/thip/record/adapter/out/persistence/RecordSearchTypeParams.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchTypeParams.java index f679984f6..5bdeddfd9 100644 --- a/src/main/java/konkuk/thip/record/adapter/out/persistence/RecordSearchTypeParams.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/RoomPostSearchTypeParams.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.out.persistence; +package konkuk.thip.roompost.application.port.in.dto; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.common.exception.code.ErrorCode; @@ -7,18 +7,18 @@ import java.util.Arrays; @Getter -public enum RecordSearchTypeParams { +public enum RoomPostSearchTypeParams { GROUP("group"), MINE("mine"); private final String value; - RecordSearchTypeParams(String value) { + RoomPostSearchTypeParams(String value) { this.value = value; } - public static RecordSearchTypeParams from(String value) { - return Arrays.stream(RecordSearchTypeParams.values()) + public static RoomPostSearchTypeParams from(String value) { + return Arrays.stream(RoomPostSearchTypeParams.values()) .filter(param -> param.getValue().equals(value)) .findFirst() .orElseThrow( diff --git a/src/main/java/konkuk/thip/room/application/port/in/dto/AttendanceCheckCreateCommand.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/attendancecheck/AttendanceCheckCreateCommand.java similarity index 62% rename from src/main/java/konkuk/thip/room/application/port/in/dto/AttendanceCheckCreateCommand.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/attendancecheck/AttendanceCheckCreateCommand.java index 7aec9a957..13a6d4229 100644 --- a/src/main/java/konkuk/thip/room/application/port/in/dto/AttendanceCheckCreateCommand.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/attendancecheck/AttendanceCheckCreateCommand.java @@ -1,4 +1,4 @@ -package konkuk.thip.room.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.attendancecheck; public record AttendanceCheckCreateCommand( Long creatorId, diff --git a/src/main/java/konkuk/thip/room/application/port/in/dto/AttendanceCheckCreateResult.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/attendancecheck/AttendanceCheckCreateResult.java similarity index 70% rename from src/main/java/konkuk/thip/room/application/port/in/dto/AttendanceCheckCreateResult.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/attendancecheck/AttendanceCheckCreateResult.java index 30b3a395d..dc87fddec 100644 --- a/src/main/java/konkuk/thip/room/application/port/in/dto/AttendanceCheckCreateResult.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/attendancecheck/AttendanceCheckCreateResult.java @@ -1,4 +1,4 @@ -package konkuk.thip.room.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.attendancecheck; import lombok.Builder; diff --git a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordCreateCommand.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordCreateCommand.java similarity index 72% rename from src/main/java/konkuk/thip/record/application/port/in/dto/RecordCreateCommand.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordCreateCommand.java index c9e5c526a..61e28c8f8 100644 --- a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordCreateCommand.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordCreateCommand.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.record; public record RecordCreateCommand( Long userId, diff --git a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordCreateResult.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordCreateResult.java similarity index 78% rename from src/main/java/konkuk/thip/record/application/port/in/dto/RecordCreateResult.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordCreateResult.java index b914d4152..438c88603 100644 --- a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordCreateResult.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordCreateResult.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.record; public record RecordCreateResult( Long recordId, diff --git a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordDeleteCommand.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordDeleteCommand.java similarity index 63% rename from src/main/java/konkuk/thip/record/application/port/in/dto/RecordDeleteCommand.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordDeleteCommand.java index e0f9218af..c6639845c 100644 --- a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordDeleteCommand.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordDeleteCommand.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.record; public record RecordDeleteCommand( Long roomId, diff --git a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordPinQuery.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordPinQuery.java similarity index 62% rename from src/main/java/konkuk/thip/record/application/port/in/dto/RecordPinQuery.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordPinQuery.java index a92cac7cb..1f9566123 100644 --- a/src/main/java/konkuk/thip/record/application/port/in/dto/RecordPinQuery.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/record/RecordPinQuery.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.record; public record RecordPinQuery( Long roomId, diff --git a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCommand.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCommand.java similarity index 70% rename from src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCommand.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCommand.java index 29e721266..6f37b2f25 100644 --- a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCommand.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCommand.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.vote; public record VoteCommand( Long userId, diff --git a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCreateCommand.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCreateCommand.java similarity index 83% rename from src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCreateCommand.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCreateCommand.java index b0e5d8308..f9a4635bf 100644 --- a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCreateCommand.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCreateCommand.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.vote; import java.util.List; diff --git a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCreateResult.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCreateResult.java similarity index 77% rename from src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCreateResult.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCreateResult.java index 182643fad..96974c3ee 100644 --- a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteCreateResult.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteCreateResult.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.vote; public record VoteCreateResult( Long voteId, diff --git a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteDeleteCommand.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteDeleteCommand.java similarity index 63% rename from src/main/java/konkuk/thip/vote/application/port/in/dto/VoteDeleteCommand.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteDeleteCommand.java index 68cca2858..9b9889b5d 100644 --- a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteDeleteCommand.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteDeleteCommand.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.vote; public record VoteDeleteCommand( Long roomId, diff --git a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteResult.java b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteResult.java similarity index 91% rename from src/main/java/konkuk/thip/vote/application/port/in/dto/VoteResult.java rename to src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteResult.java index 3205dda11..6fa404f49 100644 --- a/src/main/java/konkuk/thip/vote/application/port/in/dto/VoteResult.java +++ b/src/main/java/konkuk/thip/roompost/application/port/in/dto/vote/VoteResult.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.port.in.dto; +package konkuk.thip.roompost.application.port.in.dto.vote; import java.util.List; diff --git a/src/main/java/konkuk/thip/roompost/application/port/out/AttendanceCheckCommandPort.java b/src/main/java/konkuk/thip/roompost/application/port/out/AttendanceCheckCommandPort.java new file mode 100644 index 000000000..68f974a97 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/out/AttendanceCheckCommandPort.java @@ -0,0 +1,8 @@ +package konkuk.thip.roompost.application.port.out; + +import konkuk.thip.roompost.domain.AttendanceCheck; + +public interface AttendanceCheckCommandPort { + + Long save(AttendanceCheck attendanceCheck); +} diff --git a/src/main/java/konkuk/thip/room/application/port/out/AttendanceCheckQueryPort.java b/src/main/java/konkuk/thip/roompost/application/port/out/AttendanceCheckQueryPort.java similarity index 70% rename from src/main/java/konkuk/thip/room/application/port/out/AttendanceCheckQueryPort.java rename to src/main/java/konkuk/thip/roompost/application/port/out/AttendanceCheckQueryPort.java index 112136c26..d86d32f97 100644 --- a/src/main/java/konkuk/thip/room/application/port/out/AttendanceCheckQueryPort.java +++ b/src/main/java/konkuk/thip/roompost/application/port/out/AttendanceCheckQueryPort.java @@ -1,4 +1,4 @@ -package konkuk.thip.room.application.port.out; +package konkuk.thip.roompost.application.port.out; public interface AttendanceCheckQueryPort { diff --git a/src/main/java/konkuk/thip/record/application/port/out/RecordCommandPort.java b/src/main/java/konkuk/thip/roompost/application/port/out/RecordCommandPort.java similarity index 84% rename from src/main/java/konkuk/thip/record/application/port/out/RecordCommandPort.java rename to src/main/java/konkuk/thip/roompost/application/port/out/RecordCommandPort.java index 5c23224b2..cf1994e38 100644 --- a/src/main/java/konkuk/thip/record/application/port/out/RecordCommandPort.java +++ b/src/main/java/konkuk/thip/roompost/application/port/out/RecordCommandPort.java @@ -1,8 +1,8 @@ -package konkuk.thip.record.application.port.out; +package konkuk.thip.roompost.application.port.out; import konkuk.thip.common.exception.EntityNotFoundException; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.domain.Record; import java.util.Optional; diff --git a/src/main/java/konkuk/thip/roompost/application/port/out/RecordQueryPort.java b/src/main/java/konkuk/thip/roompost/application/port/out/RecordQueryPort.java new file mode 100644 index 000000000..6244f9f9e --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/application/port/out/RecordQueryPort.java @@ -0,0 +1,17 @@ +package konkuk.thip.roompost.application.port.out; + +import konkuk.thip.common.util.Cursor; +import konkuk.thip.common.util.CursorBasedList; +import konkuk.thip.roompost.application.port.out.dto.RoomPostQueryDto; + +public interface RecordQueryPort { + + CursorBasedList searchMyRecords(Long roomId, Long userId, Cursor cursor); + + CursorBasedList searchGroupRecordsByLatest(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview); + + CursorBasedList searchGroupRecordsByLike(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview); + + CursorBasedList searchGroupRecordsByComment(Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview); +} + diff --git a/src/main/java/konkuk/thip/vote/application/port/out/VoteCommandPort.java b/src/main/java/konkuk/thip/roompost/application/port/out/VoteCommandPort.java similarity index 87% rename from src/main/java/konkuk/thip/vote/application/port/out/VoteCommandPort.java rename to src/main/java/konkuk/thip/roompost/application/port/out/VoteCommandPort.java index a06696b2b..18051c628 100644 --- a/src/main/java/konkuk/thip/vote/application/port/out/VoteCommandPort.java +++ b/src/main/java/konkuk/thip/roompost/application/port/out/VoteCommandPort.java @@ -1,9 +1,9 @@ -package konkuk.thip.vote.application.port.out; +package konkuk.thip.roompost.application.port.out; import konkuk.thip.common.exception.EntityNotFoundException; -import konkuk.thip.vote.domain.Vote; -import konkuk.thip.vote.domain.VoteItem; -import konkuk.thip.vote.domain.VoteParticipant; +import konkuk.thip.roompost.domain.Vote; +import konkuk.thip.roompost.domain.VoteItem; +import konkuk.thip.roompost.domain.VoteParticipant; import java.util.List; import java.util.Optional; diff --git a/src/main/java/konkuk/thip/vote/application/port/out/VoteQueryPort.java b/src/main/java/konkuk/thip/roompost/application/port/out/VoteQueryPort.java similarity index 80% rename from src/main/java/konkuk/thip/vote/application/port/out/VoteQueryPort.java rename to src/main/java/konkuk/thip/roompost/application/port/out/VoteQueryPort.java index 4d6ccfedb..3bb1a416e 100644 --- a/src/main/java/konkuk/thip/vote/application/port/out/VoteQueryPort.java +++ b/src/main/java/konkuk/thip/roompost/application/port/out/VoteQueryPort.java @@ -1,8 +1,8 @@ -package konkuk.thip.vote.application.port.out; +package konkuk.thip.roompost.application.port.out; import konkuk.thip.room.adapter.in.web.response.RoomPlayingDetailViewResponse; import konkuk.thip.room.domain.Room; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; import java.util.List; import java.util.Map; diff --git a/src/main/java/konkuk/thip/record/application/port/out/dto/PostQueryDto.java b/src/main/java/konkuk/thip/roompost/application/port/out/dto/RoomPostQueryDto.java similarity index 90% rename from src/main/java/konkuk/thip/record/application/port/out/dto/PostQueryDto.java rename to src/main/java/konkuk/thip/roompost/application/port/out/dto/RoomPostQueryDto.java index 5cadfa69e..4a57911a9 100644 --- a/src/main/java/konkuk/thip/record/application/port/out/dto/PostQueryDto.java +++ b/src/main/java/konkuk/thip/roompost/application/port/out/dto/RoomPostQueryDto.java @@ -1,11 +1,11 @@ -package konkuk.thip.record.application.port.out.dto; +package konkuk.thip.roompost.application.port.out.dto; import com.querydsl.core.annotations.QueryProjection; import org.springframework.util.Assert; import java.time.LocalDateTime; -public record PostQueryDto( +public record RoomPostQueryDto( Long postId, String postType, LocalDateTime postDate, @@ -19,7 +19,7 @@ public record PostQueryDto( Boolean isOverview ) { @QueryProjection - public PostQueryDto { + public RoomPostQueryDto { Assert.notNull(postId, "postId must not be null"); Assert.notNull(postType, "postType must not be null"); Assert.notNull(postDate, "postDate must not be null"); diff --git a/src/main/java/konkuk/thip/vote/application/port/out/dto/VoteItemQueryDto.java b/src/main/java/konkuk/thip/roompost/application/port/out/dto/VoteItemQueryDto.java similarity index 91% rename from src/main/java/konkuk/thip/vote/application/port/out/dto/VoteItemQueryDto.java rename to src/main/java/konkuk/thip/roompost/application/port/out/dto/VoteItemQueryDto.java index 3b609bebf..1a2b57194 100644 --- a/src/main/java/konkuk/thip/vote/application/port/out/dto/VoteItemQueryDto.java +++ b/src/main/java/konkuk/thip/roompost/application/port/out/dto/VoteItemQueryDto.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.port.out.dto; +package konkuk.thip.roompost.application.port.out.dto; import com.querydsl.core.annotations.QueryProjection; import org.springframework.util.Assert; diff --git a/src/main/java/konkuk/thip/room/application/service/AttendanceCheckCreateService.java b/src/main/java/konkuk/thip/roompost/application/service/AttendanceCheckCreateService.java similarity index 75% rename from src/main/java/konkuk/thip/room/application/service/AttendanceCheckCreateService.java rename to src/main/java/konkuk/thip/roompost/application/service/AttendanceCheckCreateService.java index 31866cd96..44d97b3b4 100644 --- a/src/main/java/konkuk/thip/room/application/service/AttendanceCheckCreateService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/AttendanceCheckCreateService.java @@ -1,11 +1,11 @@ -package konkuk.thip.room.application.service; +package konkuk.thip.roompost.application.service; -import konkuk.thip.room.application.port.in.AttendanceCheckCreateUseCase; -import konkuk.thip.room.application.port.in.dto.AttendanceCheckCreateCommand; -import konkuk.thip.room.application.port.in.dto.AttendanceCheckCreateResult; -import konkuk.thip.room.application.port.out.AttendanceCheckCommandPort; -import konkuk.thip.room.application.port.out.AttendanceCheckQueryPort; -import konkuk.thip.room.domain.AttendanceCheck; +import konkuk.thip.roompost.application.port.in.AttendanceCheckCreateUseCase; +import konkuk.thip.roompost.application.port.in.dto.attendancecheck.AttendanceCheckCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.attendancecheck.AttendanceCheckCreateResult; +import konkuk.thip.roompost.application.port.out.AttendanceCheckCommandPort; +import konkuk.thip.roompost.application.port.out.AttendanceCheckQueryPort; +import konkuk.thip.roompost.domain.AttendanceCheck; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/konkuk/thip/record/application/service/RecordCreateService.java b/src/main/java/konkuk/thip/roompost/application/service/RecordCreateService.java similarity index 83% rename from src/main/java/konkuk/thip/record/application/service/RecordCreateService.java rename to src/main/java/konkuk/thip/roompost/application/service/RecordCreateService.java index 33ec5f39a..e3d4046f2 100644 --- a/src/main/java/konkuk/thip/record/application/service/RecordCreateService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/RecordCreateService.java @@ -1,19 +1,19 @@ -package konkuk.thip.record.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.book.application.port.out.BookCommandPort; import konkuk.thip.book.domain.Book; import konkuk.thip.common.exception.BusinessException; -import konkuk.thip.record.application.port.in.RecordCreateUseCase; -import konkuk.thip.record.application.port.in.dto.RecordCreateCommand; -import konkuk.thip.record.application.port.in.dto.RecordCreateResult; -import konkuk.thip.record.application.port.out.RecordCommandPort; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.application.port.in.RecordCreateUseCase; +import konkuk.thip.roompost.application.port.in.dto.record.RecordCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.record.RecordCreateResult; +import konkuk.thip.roompost.application.port.out.RecordCommandPort; +import konkuk.thip.roompost.domain.Record; import konkuk.thip.room.application.port.out.RoomCommandPort; import konkuk.thip.room.application.port.out.RoomParticipantCommandPort; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; import konkuk.thip.room.domain.Room; import konkuk.thip.room.domain.RoomParticipant; -import konkuk.thip.roompost.application.service.helper.RoomProgressHelper; +import konkuk.thip.roompost.application.service.manager.RoomProgressManager; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,7 +30,7 @@ public class RecordCreateService implements RecordCreateUseCase { private final RoomParticipantCommandPort roomParticipantCommandPort; private final RoomParticipantValidator roomParticipantValidator; - private final RoomProgressHelper roomProgressHelper; + private final RoomProgressManager roomProgressManager; @Override @Transactional @@ -61,7 +61,7 @@ public RecordCreateResult createRecord(RecordCreateCommand command) { Long newRecordId = recordCommandPort.saveRecord(record); // 5. RoomParticipant, Room progress 정보 update - roomProgressHelper.updateUserAndRoomProgress(record.getCreatorId(), record.getRoomId(), record.getPage()); + roomProgressManager.updateUserAndRoomProgress(record.getCreatorId(), record.getRoomId(), record.getPage()); return RecordCreateResult.of(newRecordId, command.roomId()); } diff --git a/src/main/java/konkuk/thip/record/application/service/RecordDeleteService.java b/src/main/java/konkuk/thip/roompost/application/service/RecordDeleteService.java similarity index 83% rename from src/main/java/konkuk/thip/record/application/service/RecordDeleteService.java rename to src/main/java/konkuk/thip/roompost/application/service/RecordDeleteService.java index 3004f1a8b..b8bb5dcd7 100644 --- a/src/main/java/konkuk/thip/record/application/service/RecordDeleteService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/RecordDeleteService.java @@ -1,11 +1,11 @@ -package konkuk.thip.record.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.comment.application.port.out.CommentCommandPort; import konkuk.thip.post.application.port.out.PostLikeCommandPort; -import konkuk.thip.record.application.port.in.RecordDeleteUseCase; -import konkuk.thip.record.application.port.in.dto.RecordDeleteCommand; -import konkuk.thip.record.application.port.out.RecordCommandPort; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.application.port.in.RecordDeleteUseCase; +import konkuk.thip.roompost.application.port.in.dto.record.RecordDeleteCommand; +import konkuk.thip.roompost.application.port.out.RecordCommandPort; +import konkuk.thip.roompost.domain.Record; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/konkuk/thip/record/application/service/RecordPinService.java b/src/main/java/konkuk/thip/roompost/application/service/RecordPinService.java similarity index 78% rename from src/main/java/konkuk/thip/record/application/service/RecordPinService.java rename to src/main/java/konkuk/thip/roompost/application/service/RecordPinService.java index b83f1283f..89bd8f5ee 100644 --- a/src/main/java/konkuk/thip/record/application/service/RecordPinService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/RecordPinService.java @@ -1,13 +1,13 @@ -package konkuk.thip.record.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.book.application.mapper.BookQueryMapper; import konkuk.thip.book.application.port.out.BookCommandPort; import konkuk.thip.book.domain.Book; -import konkuk.thip.record.adapter.in.web.response.RecordPinResponse; -import konkuk.thip.record.application.port.in.RecordPinUseCase; -import konkuk.thip.record.application.port.in.dto.RecordPinQuery; -import konkuk.thip.record.application.port.out.RecordCommandPort; -import konkuk.thip.record.domain.Record; +import konkuk.thip.roompost.adapter.in.web.response.RecordPinResponse; +import konkuk.thip.roompost.application.port.in.RecordPinUseCase; +import konkuk.thip.roompost.application.port.in.dto.record.RecordPinQuery; +import konkuk.thip.roompost.application.port.out.RecordCommandPort; +import konkuk.thip.roompost.domain.Record; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/konkuk/thip/record/application/service/RecordSearchService.java b/src/main/java/konkuk/thip/roompost/application/service/RoomPostSearchService.java similarity index 55% rename from src/main/java/konkuk/thip/record/application/service/RecordSearchService.java rename to src/main/java/konkuk/thip/roompost/application/service/RoomPostSearchService.java index 9776ec281..3c9960d12 100644 --- a/src/main/java/konkuk/thip/record/application/service/RecordSearchService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/RoomPostSearchService.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.book.application.port.out.BookCommandPort; import konkuk.thip.book.domain.Book; @@ -7,20 +7,20 @@ import konkuk.thip.common.util.Cursor; import konkuk.thip.common.util.CursorBasedList; import konkuk.thip.post.application.port.out.PostLikeQueryPort; -import konkuk.thip.record.adapter.in.web.response.RecordSearchResponse; -import konkuk.thip.record.adapter.out.persistence.RecordSearchSortParams; -import konkuk.thip.record.adapter.out.persistence.RecordSearchTypeParams; -import konkuk.thip.record.application.mapper.RecordQueryMapper; -import konkuk.thip.record.application.port.in.dto.RecordSearchQuery; -import konkuk.thip.record.application.port.in.dto.RecordSearchUseCase; -import konkuk.thip.record.application.port.out.RecordQueryPort; -import konkuk.thip.record.application.port.out.dto.PostQueryDto; -import konkuk.thip.record.application.service.validator.RecordAccessValidator; +import konkuk.thip.roompost.adapter.in.web.response.RoomPostSearchResponse; +import konkuk.thip.roompost.application.port.in.dto.RoomPostSearchSortParams; +import konkuk.thip.roompost.application.port.in.dto.RoomPostSearchTypeParams; +import konkuk.thip.roompost.application.mapper.RoomPostQueryMapper; +import konkuk.thip.roompost.application.port.in.dto.RoomPostSearchQuery; +import konkuk.thip.roompost.application.port.in.RoomPostSearchUseCase; +import konkuk.thip.roompost.application.port.out.RecordQueryPort; +import konkuk.thip.roompost.application.port.out.dto.RoomPostQueryDto; +import konkuk.thip.roompost.application.service.validator.RoomPostAccessValidator; import konkuk.thip.room.application.port.out.RoomParticipantCommandPort; import konkuk.thip.room.domain.RoomParticipant; -import konkuk.thip.vote.application.port.out.VoteQueryPort; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; -import konkuk.thip.vote.domain.VoteItem; +import konkuk.thip.roompost.application.port.out.VoteQueryPort; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; +import konkuk.thip.roompost.domain.VoteItem; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -32,13 +32,13 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import static konkuk.thip.common.post.PostType.RECORD; -import static konkuk.thip.common.post.PostType.VOTE; +import static konkuk.thip.post.domain.PostType.RECORD; +import static konkuk.thip.post.domain.PostType.VOTE; @Slf4j @Service @RequiredArgsConstructor -public class RecordSearchService implements RecordSearchUseCase { +public class RoomPostSearchService implements RoomPostSearchUseCase { private final RecordQueryPort recordQueryPort; private final BookCommandPort bookCommandPort; @@ -46,42 +46,42 @@ public class RecordSearchService implements RecordSearchUseCase { private final PostLikeQueryPort postLikeQueryPort; private final RoomParticipantCommandPort roomParticipantCommandPort; - private final RecordAccessValidator recordAccessValidator; - private final RecordQueryMapper recordQueryMapper; + private final RoomPostAccessValidator roomPostAccessValidator; + private final RoomPostQueryMapper roomPostQueryMapper; private static final int DEFAULT_PAGE_SIZE = 10; @Override @Transactional(readOnly = true) - public RecordSearchResponse search(RecordSearchQuery recordSearchQuery) { + public RoomPostSearchResponse search(RoomPostSearchQuery roomPostSearchQuery) { // RecordSearchQuery에서 필드 반환 - Integer pageStart = recordSearchQuery.pageStart(); - Integer pageEnd = recordSearchQuery.pageEnd(); - Boolean isOverview = recordSearchQuery.isOverview(); - Boolean isPageFilter = recordSearchQuery.isPageFilter(); - Long userId = recordSearchQuery.userId(); - Long roomId = recordSearchQuery.roomId(); - - Book book = bookCommandPort.findBookByRoomId(recordSearchQuery.roomId()); - RoomParticipant roomParticipant = roomParticipantCommandPort.findByUserIdAndRoomIdOptional(recordSearchQuery.userId(), recordSearchQuery.roomId()) + Integer pageStart = roomPostSearchQuery.pageStart(); + Integer pageEnd = roomPostSearchQuery.pageEnd(); + Boolean isOverview = roomPostSearchQuery.isOverview(); + Boolean isPageFilter = roomPostSearchQuery.isPageFilter(); + Long userId = roomPostSearchQuery.userId(); + Long roomId = roomPostSearchQuery.roomId(); + + Book book = bookCommandPort.findBookByRoomId(roomPostSearchQuery.roomId()); + RoomParticipant roomParticipant = roomParticipantCommandPort.findByUserIdAndRoomIdOptional(roomPostSearchQuery.userId(), roomPostSearchQuery.roomId()) .orElseThrow(() -> new BusinessException(ErrorCode.ROOM_ACCESS_FORBIDDEN)); // cursor 파싱 - Cursor cursor = Cursor.from(recordSearchQuery.nextCursor(), DEFAULT_PAGE_SIZE); + Cursor cursor = Cursor.from(roomPostSearchQuery.nextCursor(), DEFAULT_PAGE_SIZE); // Type에 따라 그룹기록, 내 기록 조회 분기처리 - CursorBasedList cursorBasedList = switch(RecordSearchTypeParams.from(recordSearchQuery.type())) { + CursorBasedList cursorBasedList = switch(RoomPostSearchTypeParams.from(roomPostSearchQuery.type())) { case GROUP -> { - recordAccessValidator.validateGroupRecordFilters(pageStart, pageEnd, isPageFilter, isOverview, book.getPageCount(), roomParticipant.getUserPercentage()); + roomPostAccessValidator.validateGroupRoomPostFilters(pageStart, pageEnd, isPageFilter, isOverview, book.getPageCount(), roomParticipant.getUserPercentage()); // 총평 보기가 아닌 경우, pageStart와 pageEnd를 default 값 주입 if(!isOverview) { if(pageStart == null) pageStart = 0; if(pageEnd == null) pageEnd = book.getPageCount(); } - yield getGroupRecordBySortParams(recordSearchQuery.sort(), roomId, userId, cursor, pageStart, pageEnd, isOverview); + yield getGroupRecordBySortParams(roomPostSearchQuery.sort(), roomId, userId, cursor, pageStart, pageEnd, isOverview); } case MINE -> { - recordAccessValidator.validateMyRecordFilters(pageStart, pageEnd, isPageFilter, isOverview, recordSearchQuery.sort()); + roomPostAccessValidator.validateMyRoomPostFilters(pageStart, pageEnd, isPageFilter, isOverview, roomPostSearchQuery.sort()); yield recordQueryPort.searchMyRecords(roomId, userId, cursor); } }; @@ -89,31 +89,31 @@ public RecordSearchResponse search(RecordSearchQuery recordSearchQuery) { // VoteItem 한번에 조회 (투표 게시물에 대한 투표 항목 조회) Map> voteItemQueryMap = voteQueryPort.findVoteItemsByVoteIds(cursorBasedList.contents().stream() .filter(postQueryDto -> postQueryDto.postType().equals(VOTE.getType())) - .map(PostQueryDto::postId) + .map(RoomPostQueryDto::postId) .collect(Collectors.toSet()), userId); // 사용자가 좋아요를 누른 게시물 ID 목록 조회 Set likedPostIds = postLikeQueryPort.findPostIdsLikedByUser(cursorBasedList.contents().stream() - .map(PostQueryDto::postId) + .map(RoomPostQueryDto::postId) .collect(Collectors.toSet()), userId); // 게시물 DTO 변환 var postDtos = cursorBasedList.contents().stream() .map(dto -> { - boolean isLocked = recordAccessValidator.isLocked(roomParticipant.getCurrentPage(), dto.page()); + boolean isLocked = roomPostAccessValidator.isLocked(roomParticipant.getCurrentPage(), dto.page()); boolean isWriter = dto.userId().equals(userId); boolean isLiked = likedPostIds.contains(dto.postId()); - String content = isLocked ? recordAccessValidator.createBlurredString(dto.content()) : dto.content(); + String content = isLocked ? roomPostAccessValidator.createBlurredString(dto.content()) : dto.content(); - List voteItems = + List voteItems = getVoteItemDtosIfApplicable(dto, voteItemQueryMap, isLocked); - return recordQueryMapper.toPostDto(dto, content, isLiked, isWriter, isLocked, voteItems); + return roomPostQueryMapper.toPostDto(dto, content, isLiked, isWriter, isLocked, voteItems); }) .toList(); // RecordSearchResponse 생성 - return RecordSearchResponse.builder() + return RoomPostSearchResponse.builder() .roomId(roomId) .isbn(book.getIsbn()) .isOverviewEnabled(roomParticipant.getUserPercentage() >= 80) @@ -124,8 +124,8 @@ public RecordSearchResponse search(RecordSearchQuery recordSearchQuery) { } // 그룹 기록을 정렬 파라미터에 따라 조회하는 메서드 - private CursorBasedList getGroupRecordBySortParams(String sort, Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { - return switch(RecordSearchSortParams.from(sort)) { + private CursorBasedList getGroupRecordBySortParams(String sort, Long roomId, Long userId, Cursor cursor, Integer pageStart, Integer pageEnd, Boolean isOverview) { + return switch(RoomPostSearchSortParams.from(sort)) { case LATEST -> recordQueryPort.searchGroupRecordsByLatest(roomId, userId, cursor, pageStart, pageEnd, isOverview); case LIKE -> recordQueryPort.searchGroupRecordsByLike(roomId, userId, cursor, pageStart, pageEnd, isOverview); case COMMENT -> recordQueryPort.searchGroupRecordsByComment(roomId, userId, cursor, pageStart, pageEnd, isOverview); @@ -133,7 +133,7 @@ private CursorBasedList getGroupRecordBySortParams(String sort, Lo } // 투표 게시물인 경우 VoteItem DTO 목록을 생성하는 메서드 - private List getVoteItemDtosIfApplicable(PostQueryDto dto, Map> voteItemMap, boolean isLocked) { + private List getVoteItemDtosIfApplicable(RoomPostQueryDto dto, Map> voteItemMap, boolean isLocked) { if (RECORD.getType().equals(dto.postType())) { return List.of(); } @@ -143,7 +143,7 @@ private List getVoteItemDtosIfApplicab } // VoteItemQueryDto 목록을 RecordSearchResponse.PostDto.VoteItemDto 목록으로 변환하는 메서드 - private List mapToVoteItemDtos(List items, boolean isLocked) { + private List mapToVoteItemDtos(List items, boolean isLocked) { // voteCount를 모아 리스트로 변환 List counts = items.stream() .map(VoteItemQueryDto::voteCount) @@ -154,9 +154,9 @@ private List mapToVoteItemDtos(List RecordSearchResponse.PostDto.VoteItemDto.of( + .mapToObj(i -> RoomPostSearchResponse.RoomPostDto.VoteItemDto.of( items.get(i).voteItemId(), - isLocked ? recordAccessValidator.createBlurredString(items.get(i).itemName()) : items.get(i).itemName(), + isLocked ? roomPostAccessValidator.createBlurredString(items.get(i).itemName()) : items.get(i).itemName(), percentages.get(i), items.get(i).isVoted() )) diff --git a/src/main/java/konkuk/thip/vote/application/service/VoteCreateService.java b/src/main/java/konkuk/thip/roompost/application/service/VoteCreateService.java similarity index 78% rename from src/main/java/konkuk/thip/vote/application/service/VoteCreateService.java rename to src/main/java/konkuk/thip/roompost/application/service/VoteCreateService.java index 45b71917e..96926d5eb 100644 --- a/src/main/java/konkuk/thip/vote/application/service/VoteCreateService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/VoteCreateService.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.book.application.port.out.BookCommandPort; import konkuk.thip.book.domain.Book; @@ -6,13 +6,13 @@ import konkuk.thip.room.application.port.out.RoomParticipantCommandPort; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; import konkuk.thip.room.domain.Room; -import konkuk.thip.roompost.application.service.helper.RoomProgressHelper; -import konkuk.thip.vote.application.port.in.VoteCreateUseCase; -import konkuk.thip.vote.application.port.in.dto.VoteCreateCommand; -import konkuk.thip.vote.application.port.in.dto.VoteCreateResult; -import konkuk.thip.vote.application.port.out.VoteCommandPort; -import konkuk.thip.vote.domain.Vote; -import konkuk.thip.vote.domain.VoteItem; +import konkuk.thip.roompost.application.service.manager.RoomProgressManager; +import konkuk.thip.roompost.application.port.in.VoteCreateUseCase; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateResult; +import konkuk.thip.roompost.application.port.out.VoteCommandPort; +import konkuk.thip.roompost.domain.Vote; +import konkuk.thip.roompost.domain.VoteItem; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -31,7 +31,7 @@ public class VoteCreateService implements VoteCreateUseCase { private final RoomCommandPort roomCommandPort; private final BookCommandPort bookCommandPort; - private final RoomProgressHelper roomProgressHelper; + private final RoomProgressManager roomProgressManager; @Transactional @Override @@ -64,7 +64,7 @@ public VoteCreateResult createVote(VoteCreateCommand command) { voteCommandPort.saveAllVoteItems(voteItems); // 4. RoomParticipant, Room progress 정보 update - roomProgressHelper.updateUserAndRoomProgress(vote.getCreatorId(), vote.getRoomId(), vote.getPage()); + roomProgressManager.updateUserAndRoomProgress(vote.getCreatorId(), vote.getRoomId(), vote.getPage()); return VoteCreateResult.of(savedVoteId, command.roomId()); } diff --git a/src/main/java/konkuk/thip/vote/application/service/VoteDeleteService.java b/src/main/java/konkuk/thip/roompost/application/service/VoteDeleteService.java similarity index 83% rename from src/main/java/konkuk/thip/vote/application/service/VoteDeleteService.java rename to src/main/java/konkuk/thip/roompost/application/service/VoteDeleteService.java index 6578816ce..5fa410ef6 100644 --- a/src/main/java/konkuk/thip/vote/application/service/VoteDeleteService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/VoteDeleteService.java @@ -1,13 +1,13 @@ -package konkuk.thip.vote.application.service; +package konkuk.thip.roompost.application.service; import jakarta.transaction.Transactional; import konkuk.thip.comment.application.port.out.CommentCommandPort; import konkuk.thip.post.application.port.out.PostLikeCommandPort; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; -import konkuk.thip.vote.application.port.in.VoteDeleteUseCase; -import konkuk.thip.vote.application.port.in.dto.VoteDeleteCommand; -import konkuk.thip.vote.application.port.out.VoteCommandPort; -import konkuk.thip.vote.domain.Vote; +import konkuk.thip.roompost.application.port.in.VoteDeleteUseCase; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteDeleteCommand; +import konkuk.thip.roompost.application.port.out.VoteCommandPort; +import konkuk.thip.roompost.domain.Vote; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/konkuk/thip/vote/application/service/VoteService.java b/src/main/java/konkuk/thip/roompost/application/service/VoteService.java similarity index 88% rename from src/main/java/konkuk/thip/vote/application/service/VoteService.java rename to src/main/java/konkuk/thip/roompost/application/service/VoteService.java index bc0b47412..22ee0fab6 100644 --- a/src/main/java/konkuk/thip/vote/application/service/VoteService.java +++ b/src/main/java/konkuk/thip/roompost/application/service/VoteService.java @@ -1,16 +1,16 @@ -package konkuk.thip.vote.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.common.exception.BusinessException; import konkuk.thip.common.exception.code.ErrorCode; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; -import konkuk.thip.vote.application.port.in.VoteUseCase; -import konkuk.thip.vote.application.port.in.dto.VoteCommand; -import konkuk.thip.vote.application.port.in.dto.VoteResult; -import konkuk.thip.vote.application.port.out.VoteCommandPort; -import konkuk.thip.vote.application.port.out.VoteQueryPort; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; -import konkuk.thip.vote.domain.VoteItem; -import konkuk.thip.vote.domain.VoteParticipant; +import konkuk.thip.roompost.application.port.in.VoteUseCase; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteResult; +import konkuk.thip.roompost.application.port.out.VoteCommandPort; +import konkuk.thip.roompost.application.port.out.VoteQueryPort; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; +import konkuk.thip.roompost.domain.VoteItem; +import konkuk.thip.roompost.domain.VoteParticipant; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/konkuk/thip/roompost/application/service/helper/RoomProgressHelper.java b/src/main/java/konkuk/thip/roompost/application/service/manager/RoomProgressManager.java similarity index 89% rename from src/main/java/konkuk/thip/roompost/application/service/helper/RoomProgressHelper.java rename to src/main/java/konkuk/thip/roompost/application/service/manager/RoomProgressManager.java index b6d7cbb62..0667345e3 100644 --- a/src/main/java/konkuk/thip/roompost/application/service/helper/RoomProgressHelper.java +++ b/src/main/java/konkuk/thip/roompost/application/service/manager/RoomProgressManager.java @@ -1,4 +1,4 @@ -package konkuk.thip.roompost.application.service.helper; +package konkuk.thip.roompost.application.service.manager; import konkuk.thip.book.application.port.out.BookCommandPort; import konkuk.thip.book.domain.Book; @@ -8,14 +8,12 @@ import konkuk.thip.room.domain.Room; import konkuk.thip.room.domain.RoomParticipant; import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.List; @HelperService @RequiredArgsConstructor -public class RoomProgressHelper { +public class RoomProgressManager { private final RoomParticipantCommandPort roomParticipantCommandPort; private final RoomCommandPort roomCommandPort; diff --git a/src/main/java/konkuk/thip/post/application/service/policy/RoomPostLikeAccessPolicy.java b/src/main/java/konkuk/thip/roompost/application/service/policy/RoomPostLikeAccessPolicy.java similarity index 72% rename from src/main/java/konkuk/thip/post/application/service/policy/RoomPostLikeAccessPolicy.java rename to src/main/java/konkuk/thip/roompost/application/service/policy/RoomPostLikeAccessPolicy.java index fa9f9f51c..5d75645aa 100644 --- a/src/main/java/konkuk/thip/post/application/service/policy/RoomPostLikeAccessPolicy.java +++ b/src/main/java/konkuk/thip/roompost/application/service/policy/RoomPostLikeAccessPolicy.java @@ -1,8 +1,9 @@ -package konkuk.thip.post.application.service.policy; +package konkuk.thip.roompost.application.service.policy; -import konkuk.thip.common.post.CountUpdatable; +import konkuk.thip.post.application.service.policy.PostLikeAccessPolicy; +import konkuk.thip.post.domain.CountUpdatable; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; -import konkuk.thip.room.domain.RoomPost; +import konkuk.thip.roompost.domain.RoomPost; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/java/konkuk/thip/record/application/service/validator/RecordAccessValidator.java b/src/main/java/konkuk/thip/roompost/application/service/validator/RoomPostAccessValidator.java similarity index 89% rename from src/main/java/konkuk/thip/record/application/service/validator/RecordAccessValidator.java rename to src/main/java/konkuk/thip/roompost/application/service/validator/RoomPostAccessValidator.java index d9c598bcb..586f9fab9 100644 --- a/src/main/java/konkuk/thip/record/application/service/validator/RecordAccessValidator.java +++ b/src/main/java/konkuk/thip/roompost/application/service/validator/RoomPostAccessValidator.java @@ -1,15 +1,15 @@ -package konkuk.thip.record.application.service.validator; +package konkuk.thip.roompost.application.service.validator; import konkuk.thip.common.annotation.HelperService; import konkuk.thip.common.exception.BusinessException; import konkuk.thip.common.exception.code.ErrorCode; @HelperService -public class RecordAccessValidator { +public class RoomPostAccessValidator { private static final String BLURRED_STRING = "여긴 못 지나가지롱~~"; - public void validateGroupRecordFilters(Integer pageStart, Integer pageEnd, Boolean isPageFilter, Boolean isOverview, int bookPageSize, double currentPercentage) { + public void validateGroupRoomPostFilters(Integer pageStart, Integer pageEnd, Boolean isPageFilter, Boolean isOverview, int bookPageSize, double currentPercentage) { if(!isPageFilter && !isOverview) { // 어떤 필터도 적용되지 않는 경우 if (pageStart != null || pageEnd != null) { throw new BusinessException(ErrorCode.API_INVALID_PARAM, new IllegalArgumentException("어떤 필터도 적용되지 않는 경우 pageStart와 pageEnd는 null이어야 합니다.")); @@ -39,7 +39,7 @@ public void validateGroupRecordFilters(Integer pageStart, Integer pageEnd, Boole } } - public void validateMyRecordFilters(Integer pageStart, Integer pageEnd, Boolean isPageFilter, Boolean isOverview, String sort) { + public void validateMyRoomPostFilters(Integer pageStart, Integer pageEnd, Boolean isPageFilter, Boolean isOverview, String sort) { // 모든 파라미터중 하나라도 null이 아닌 경우 예외 발생 if (pageStart != null || pageEnd != null || isPageFilter || isOverview || sort != null) { throw new BusinessException(ErrorCode.API_INVALID_PARAM, new IllegalArgumentException("내 기록 조회에서는 roomId, type, cursor를 제외한 모든 파라미터는 null이어야 합니다.")); diff --git a/src/main/java/konkuk/thip/room/domain/AttendanceCheck.java b/src/main/java/konkuk/thip/roompost/domain/AttendanceCheck.java similarity index 96% rename from src/main/java/konkuk/thip/room/domain/AttendanceCheck.java rename to src/main/java/konkuk/thip/roompost/domain/AttendanceCheck.java index 73a057dce..f0e7548a1 100644 --- a/src/main/java/konkuk/thip/room/domain/AttendanceCheck.java +++ b/src/main/java/konkuk/thip/roompost/domain/AttendanceCheck.java @@ -1,4 +1,4 @@ -package konkuk.thip.room.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.InvalidStateException; diff --git a/src/main/java/konkuk/thip/record/domain/Record.java b/src/main/java/konkuk/thip/roompost/domain/Record.java similarity index 94% rename from src/main/java/konkuk/thip/record/domain/Record.java rename to src/main/java/konkuk/thip/roompost/domain/Record.java index 669f357f1..003628218 100644 --- a/src/main/java/konkuk/thip/record/domain/Record.java +++ b/src/main/java/konkuk/thip/roompost/domain/Record.java @@ -1,10 +1,8 @@ -package konkuk.thip.record.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.CountUpdatable; import konkuk.thip.post.domain.service.PostCountService; -import konkuk.thip.room.domain.RoomPost; import lombok.Builder; import lombok.Getter; import lombok.experimental.SuperBuilder; @@ -13,7 +11,7 @@ @Getter @SuperBuilder -public class Record extends BaseDomainEntity implements CountUpdatable, RoomPost { +public class Record extends BaseDomainEntity implements RoomPost { private Long id; diff --git a/src/main/java/konkuk/thip/roompost/domain/RoomPost.java b/src/main/java/konkuk/thip/roompost/domain/RoomPost.java new file mode 100644 index 000000000..a4cfab148 --- /dev/null +++ b/src/main/java/konkuk/thip/roompost/domain/RoomPost.java @@ -0,0 +1,7 @@ +package konkuk.thip.roompost.domain; + +import konkuk.thip.post.domain.CountUpdatable; + +public interface RoomPost extends CountUpdatable { + Long getRoomId(); +} \ No newline at end of file diff --git a/src/main/java/konkuk/thip/vote/domain/Vote.java b/src/main/java/konkuk/thip/roompost/domain/Vote.java similarity index 94% rename from src/main/java/konkuk/thip/vote/domain/Vote.java rename to src/main/java/konkuk/thip/roompost/domain/Vote.java index 34ad81076..31b7c0106 100644 --- a/src/main/java/konkuk/thip/vote/domain/Vote.java +++ b/src/main/java/konkuk/thip/roompost/domain/Vote.java @@ -1,10 +1,8 @@ -package konkuk.thip.vote.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.InvalidStateException; -import konkuk.thip.common.post.CountUpdatable; import konkuk.thip.post.domain.service.PostCountService; -import konkuk.thip.room.domain.RoomPost; import lombok.Builder; import lombok.Getter; import lombok.experimental.SuperBuilder; @@ -13,7 +11,7 @@ @Getter @SuperBuilder -public class Vote extends BaseDomainEntity implements CountUpdatable, RoomPost { +public class Vote extends BaseDomainEntity implements RoomPost { private Long id; diff --git a/src/main/java/konkuk/thip/vote/domain/VoteItem.java b/src/main/java/konkuk/thip/roompost/domain/VoteItem.java similarity index 98% rename from src/main/java/konkuk/thip/vote/domain/VoteItem.java rename to src/main/java/konkuk/thip/roompost/domain/VoteItem.java index 9d4400ae1..398d31d72 100644 --- a/src/main/java/konkuk/thip/vote/domain/VoteItem.java +++ b/src/main/java/konkuk/thip/roompost/domain/VoteItem.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.InvalidStateException; diff --git a/src/main/java/konkuk/thip/vote/domain/VoteParticipant.java b/src/main/java/konkuk/thip/roompost/domain/VoteParticipant.java similarity index 96% rename from src/main/java/konkuk/thip/vote/domain/VoteParticipant.java rename to src/main/java/konkuk/thip/roompost/domain/VoteParticipant.java index d74a04198..e7cd3f0c9 100644 --- a/src/main/java/konkuk/thip/vote/domain/VoteParticipant.java +++ b/src/main/java/konkuk/thip/roompost/domain/VoteParticipant.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.entity.BaseDomainEntity; import konkuk.thip.common.exception.InvalidStateException; diff --git a/src/main/java/konkuk/thip/user/application/mapper/ReactionQueryMapper.java b/src/main/java/konkuk/thip/user/application/mapper/ReactionQueryMapper.java index 723e10d69..d759a7f70 100644 --- a/src/main/java/konkuk/thip/user/application/mapper/ReactionQueryMapper.java +++ b/src/main/java/konkuk/thip/user/application/mapper/ReactionQueryMapper.java @@ -9,7 +9,7 @@ import java.util.List; -import static konkuk.thip.common.post.PostType.*; +import static konkuk.thip.post.domain.PostType.*; @Mapper(componentModel = "spring") public interface ReactionQueryMapper { diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/VoteCommandController.java b/src/main/java/konkuk/thip/vote/adapter/in/web/VoteCommandController.java deleted file mode 100644 index 324e9dee1..000000000 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/VoteCommandController.java +++ /dev/null @@ -1,77 +0,0 @@ -package konkuk.thip.vote.adapter.in.web; - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.validation.Valid; -import konkuk.thip.common.dto.BaseResponse; -import konkuk.thip.common.security.annotation.UserId; -import konkuk.thip.common.swagger.annotation.ExceptionDescription; -import konkuk.thip.vote.adapter.in.web.request.VoteCreateRequest; -import konkuk.thip.vote.adapter.in.web.request.VoteRequest; -import konkuk.thip.vote.adapter.in.web.response.VoteCreateResponse; -import konkuk.thip.vote.adapter.in.web.response.VoteDeleteResponse; -import konkuk.thip.vote.adapter.in.web.response.VoteResponse; -import konkuk.thip.vote.application.port.in.VoteCreateUseCase; -import konkuk.thip.vote.application.port.in.VoteDeleteUseCase; -import konkuk.thip.vote.application.port.in.VoteUseCase; -import konkuk.thip.vote.application.port.in.dto.VoteResult; -import konkuk.thip.vote.application.port.in.dto.VoteDeleteCommand; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import static konkuk.thip.common.swagger.SwaggerResponseDescription.RECORD_DELETE; -import static konkuk.thip.common.swagger.SwaggerResponseDescription.VOTE; - -@Tag(name = "Vote Command API", description = "투표 상태변경 관련 API") -@RestController -@RequiredArgsConstructor -public class VoteCommandController { - - private final VoteCreateUseCase voteCreateUseCase; - private final VoteDeleteUseCase voteDeleteUseCase; - private final VoteUseCase voteUseCase; - - @Operation( - summary = "투표 생성", - description = "방에 대한 투표를 생성합니다." - ) - @PostMapping("/rooms/{roomId}/vote") - public BaseResponse createVote( - @Parameter(hidden = true) @UserId Long userId, - @Parameter(description = "투표를 생성할 방 ID", example = "1") @PathVariable Long roomId, - @Valid @RequestBody VoteCreateRequest request) { - - return BaseResponse.ok(VoteCreateResponse.of( - voteCreateUseCase.createVote(request.toCommand(userId, roomId)) - )); - } - - @Operation( - summary = "투표하기", - description = "특정 투표에 대해 사용자가 투표를 진행합니다. type이 true이면 투표하기, false이면 투표 취소입니다." - ) - @ExceptionDescription(VOTE) - @PostMapping("/rooms/{roomId}/vote/{voteId}") - public BaseResponse vote( - @Parameter(hidden = true) @UserId Long userId, - @Parameter(description = "투표를 진행할 방 ID", example = "1") @PathVariable Long roomId, - @Parameter(description = "투표할 투표 ID", example = "1") @PathVariable Long voteId, - @Valid @RequestBody VoteRequest request) { - VoteResult voteResult = voteUseCase.vote(request.toCommand(userId, roomId, voteId)); - return BaseResponse.ok(VoteResponse.of(voteResult.postId(), voteResult.roomId(), voteResult.voteItems())); - } - - @Operation( - summary = "투표 삭제", - description = "사용자가 투표를 삭제합니다." - ) - @ExceptionDescription(RECORD_DELETE) - @DeleteMapping("/rooms/{roomId}/vote/{voteId}") - public BaseResponse deleteVote( - @Parameter(description = "삭제하려는 투표 ID", example = "1") @PathVariable("voteId") final Long voteId, - @Parameter(description = "삭제하려는 투표가 작성된 모임 ID", example = "1") @PathVariable("roomId") final Long roomId, - @Parameter(hidden = true) @UserId final Long userId) { - return BaseResponse.ok(VoteDeleteResponse.of(voteDeleteUseCase.deleteVote(new VoteDeleteCommand(roomId, voteId, userId)))); - } -} diff --git a/src/main/java/konkuk/thip/vote/adapter/in/web/VoteQueryController.java b/src/main/java/konkuk/thip/vote/adapter/in/web/VoteQueryController.java deleted file mode 100644 index 2557f95fb..000000000 --- a/src/main/java/konkuk/thip/vote/adapter/in/web/VoteQueryController.java +++ /dev/null @@ -1,12 +0,0 @@ -package konkuk.thip.vote.adapter.in.web; - -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RestController; - -@Tag(name = "Vote Query API", description = "투표 조회 관련 API") -@RestController -@RequiredArgsConstructor -public class VoteQueryController { - -} diff --git a/src/main/java/konkuk/thip/vote/application/port/in/VoteCreateUseCase.java b/src/main/java/konkuk/thip/vote/application/port/in/VoteCreateUseCase.java deleted file mode 100644 index 1c4d8892f..000000000 --- a/src/main/java/konkuk/thip/vote/application/port/in/VoteCreateUseCase.java +++ /dev/null @@ -1,9 +0,0 @@ -package konkuk.thip.vote.application.port.in; - -import konkuk.thip.vote.application.port.in.dto.VoteCreateCommand; -import konkuk.thip.vote.application.port.in.dto.VoteCreateResult; - -public interface VoteCreateUseCase { - - VoteCreateResult createVote(VoteCreateCommand command); -} diff --git a/src/main/java/konkuk/thip/vote/application/port/in/VoteDeleteUseCase.java b/src/main/java/konkuk/thip/vote/application/port/in/VoteDeleteUseCase.java deleted file mode 100644 index 3b10a6b52..000000000 --- a/src/main/java/konkuk/thip/vote/application/port/in/VoteDeleteUseCase.java +++ /dev/null @@ -1,7 +0,0 @@ -package konkuk.thip.vote.application.port.in; - -import konkuk.thip.vote.application.port.in.dto.VoteDeleteCommand; - -public interface VoteDeleteUseCase { - Long deleteVote(VoteDeleteCommand command); -} diff --git a/src/main/java/konkuk/thip/vote/application/port/in/VoteUseCase.java b/src/main/java/konkuk/thip/vote/application/port/in/VoteUseCase.java deleted file mode 100644 index c673d4a35..000000000 --- a/src/main/java/konkuk/thip/vote/application/port/in/VoteUseCase.java +++ /dev/null @@ -1,8 +0,0 @@ -package konkuk.thip.vote.application.port.in; - -import konkuk.thip.vote.application.port.in.dto.VoteCommand; -import konkuk.thip.vote.application.port.in.dto.VoteResult; - -public interface VoteUseCase { - VoteResult vote(VoteCommand command); -} diff --git a/src/test/java/konkuk/thip/book/adapter/in/web/BookChangeSavedControllerTest.java b/src/test/java/konkuk/thip/book/adapter/in/web/BookChangeSavedApiTest.java similarity index 98% rename from src/test/java/konkuk/thip/book/adapter/in/web/BookChangeSavedControllerTest.java rename to src/test/java/konkuk/thip/book/adapter/in/web/BookChangeSavedApiTest.java index 5675a01c9..c8db670b7 100644 --- a/src/test/java/konkuk/thip/book/adapter/in/web/BookChangeSavedControllerTest.java +++ b/src/test/java/konkuk/thip/book/adapter/in/web/BookChangeSavedApiTest.java @@ -37,8 +37,8 @@ @SpringBootTest @AutoConfigureMockMvc @ActiveProfiles("test") -@DisplayName("[통합] BookChangeSavedController 테스트") -class BookChangeSavedControllerTest { +@DisplayName("[통합] 방 저장상태 변경 api 통합 테스트") +class BookChangeSavedApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/book/adapter/in/web/BookDetailSearchControllerTest.java b/src/test/java/konkuk/thip/book/adapter/in/web/BookDetailSearchApiTest.java similarity index 98% rename from src/test/java/konkuk/thip/book/adapter/in/web/BookDetailSearchControllerTest.java rename to src/test/java/konkuk/thip/book/adapter/in/web/BookDetailSearchApiTest.java index 922b329b9..34ddce6e4 100644 --- a/src/test/java/konkuk/thip/book/adapter/in/web/BookDetailSearchControllerTest.java +++ b/src/test/java/konkuk/thip/book/adapter/in/web/BookDetailSearchApiTest.java @@ -37,8 +37,8 @@ @SpringBootTest @AutoConfigureMockMvc(addFilters = false) @ActiveProfiles("test") -@DisplayName("[통합] BookDetailSearchController 테스트") -class BookDetailSearchControllerTest { +@DisplayName("[통합] 방 상세보기 api 통합 테스트") +class BookDetailSearchApiTest { @Autowired private BookSearchService bookSearchService; diff --git a/src/test/java/konkuk/thip/book/adapter/in/web/BookMostSearchedBooksControllerTest.java b/src/test/java/konkuk/thip/book/adapter/in/web/BookMostSearchedBooksApiTest.java similarity index 98% rename from src/test/java/konkuk/thip/book/adapter/in/web/BookMostSearchedBooksControllerTest.java rename to src/test/java/konkuk/thip/book/adapter/in/web/BookMostSearchedBooksApiTest.java index fc29c4ea8..a09d7fbe7 100644 --- a/src/test/java/konkuk/thip/book/adapter/in/web/BookMostSearchedBooksControllerTest.java +++ b/src/test/java/konkuk/thip/book/adapter/in/web/BookMostSearchedBooksApiTest.java @@ -35,7 +35,8 @@ @SpringBootTest @AutoConfigureMockMvc(addFilters = false) @ActiveProfiles("test") -class BookMostSearchedBooksControllerTest { +@DisplayName("[통합] 가장 많이 검색된 책 조회 API 통합 테스트") +class BookMostSearchedBooksApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/book/adapter/in/web/BookQueryControllerTest.java b/src/test/java/konkuk/thip/book/adapter/in/web/BookSearchApiTest.java similarity index 98% rename from src/test/java/konkuk/thip/book/adapter/in/web/BookQueryControllerTest.java rename to src/test/java/konkuk/thip/book/adapter/in/web/BookSearchApiTest.java index 52467e26f..a1b1f13ba 100644 --- a/src/test/java/konkuk/thip/book/adapter/in/web/BookQueryControllerTest.java +++ b/src/test/java/konkuk/thip/book/adapter/in/web/BookSearchApiTest.java @@ -33,8 +33,8 @@ @SpringBootTest @AutoConfigureMockMvc @ActiveProfiles("test") -@DisplayName("[통합] BookQueryController 테스트") -class BookQueryControllerTest { +@DisplayName("[통합] 방 검색 api 통합 테스트") +class BookSearchApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentChangeLikeStatusAPITest.java b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentChangeLikeStatusApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/comment/adapter/in/web/CommentChangeLikeStatusAPITest.java rename to src/test/java/konkuk/thip/comment/adapter/in/web/CommentChangeLikeStatusApiTest.java index d38ba405c..6b3944001 100644 --- a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentChangeLikeStatusAPITest.java +++ b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentChangeLikeStatusApiTest.java @@ -33,7 +33,7 @@ import java.util.List; -import static konkuk.thip.common.post.PostType.FEED; +import static konkuk.thip.post.domain.PostType.FEED; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; @@ -44,7 +44,7 @@ @Transactional @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 댓글 좋아요 상태 변경 api 통합 테스트") -class CommentChangeLikeStatusAPITest { +class CommentChangeLikeStatusApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateAPITest.java b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateApiTest.java similarity index 94% rename from src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateAPITest.java rename to src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateApiTest.java index 9515f17c6..49d1dcd48 100644 --- a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateAPITest.java +++ b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateApiTest.java @@ -7,20 +7,20 @@ import konkuk.thip.common.util.TestEntityFactory; import konkuk.thip.feed.adapter.out.jpa.FeedJpaEntity; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.category.CategoryJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.roomparticipant.RoomParticipantJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -36,7 +36,7 @@ import java.util.HashMap; import java.util.Map; -import static konkuk.thip.common.post.PostType.*; +import static konkuk.thip.post.domain.PostType.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -47,7 +47,7 @@ @Transactional @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) @DisplayName("[통합] 댓글 생성 api 통합 테스트") -class CommentCreateAPITest { +class CommentCreateApiTest { @Autowired private MockMvc mockMvc; @@ -124,7 +124,7 @@ void createReplyCommentEachPostType() throws Exception { // given //부모 댓글 생성 - Long feedParentId = commentJpaRepository.save(TestEntityFactory.createComment(feed,user,FEED)).getCommentId(); + Long feedParentId = commentJpaRepository.save(TestEntityFactory.createComment(feed,user, FEED)).getCommentId(); Long recordParentId = commentJpaRepository.save(TestEntityFactory.createComment(record,user,RECORD)).getCommentId(); Long voteParentId = commentJpaRepository.save(TestEntityFactory.createComment(vote,user,VOTE)).getCommentId(); diff --git a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateControllerTest.java b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateControllerTest.java index 22bd3bb63..2288bb545 100644 --- a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateControllerTest.java +++ b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentCreateControllerTest.java @@ -7,8 +7,8 @@ import konkuk.thip.common.util.TestEntityFactory; import konkuk.thip.feed.adapter.out.jpa.FeedJpaEntity; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; @@ -19,8 +19,8 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; diff --git a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentDeleteAPITest.java b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentDeleteApiTest.java similarity index 95% rename from src/test/java/konkuk/thip/comment/adapter/in/web/CommentDeleteAPITest.java rename to src/test/java/konkuk/thip/comment/adapter/in/web/CommentDeleteApiTest.java index 36e787de3..bf6950c50 100644 --- a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentDeleteAPITest.java +++ b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentDeleteApiTest.java @@ -8,8 +8,8 @@ import konkuk.thip.common.util.TestEntityFactory; import konkuk.thip.feed.adapter.out.jpa.FeedJpaEntity; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; @@ -20,8 +20,8 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -33,7 +33,7 @@ import org.springframework.test.web.servlet.MockMvc; import static konkuk.thip.common.entity.StatusType.INACTIVE; -import static konkuk.thip.common.post.PostType.*; +import static konkuk.thip.post.domain.PostType.FEED; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -42,7 +42,7 @@ @ActiveProfiles("test") @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 댓글 삭제 api 통합 테스트") -class CommentDeleteAPITest { +class CommentDeleteApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentShowAllApiTest.java b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentShowAllApiTest.java index e254d4187..c2a8e42e2 100644 --- a/src/test/java/konkuk/thip/comment/adapter/in/web/CommentShowAllApiTest.java +++ b/src/test/java/konkuk/thip/comment/adapter/in/web/CommentShowAllApiTest.java @@ -6,7 +6,7 @@ import konkuk.thip.comment.adapter.out.jpa.CommentJpaEntity; import konkuk.thip.comment.adapter.out.persistence.repository.CommentJpaRepository; import konkuk.thip.comment.adapter.out.persistence.repository.CommentLikeJpaRepository; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; import konkuk.thip.common.util.TestEntityFactory; import konkuk.thip.feed.adapter.out.jpa.FeedJpaEntity; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; diff --git a/src/test/java/konkuk/thip/comment/domain/CommentTest.java b/src/test/java/konkuk/thip/comment/domain/CommentTest.java index 99425f8e7..a33a2b877 100644 --- a/src/test/java/konkuk/thip/comment/domain/CommentTest.java +++ b/src/test/java/konkuk/thip/comment/domain/CommentTest.java @@ -7,7 +7,7 @@ import static konkuk.thip.common.entity.StatusType.ACTIVE; import static konkuk.thip.common.entity.StatusType.INACTIVE; import static konkuk.thip.common.exception.code.ErrorCode.*; -import static konkuk.thip.common.post.PostType.FEED; +import static konkuk.thip.post.domain.PostType.FEED; import static org.junit.jupiter.api.Assertions.*; @DisplayName("[단위] Comment 단위 테스트") diff --git a/src/test/java/konkuk/thip/common/util/TestEntityFactory.java b/src/test/java/konkuk/thip/common/util/TestEntityFactory.java index 0741a5557..1fc0608ad 100644 --- a/src/test/java/konkuk/thip/common/util/TestEntityFactory.java +++ b/src/test/java/konkuk/thip/common/util/TestEntityFactory.java @@ -4,26 +4,22 @@ import konkuk.thip.book.adapter.out.jpa.SavedBookJpaEntity; import konkuk.thip.comment.adapter.out.jpa.CommentJpaEntity; import konkuk.thip.comment.adapter.out.jpa.CommentLikeJpaEntity; -import konkuk.thip.common.post.PostType; +import konkuk.thip.post.domain.PostType; import konkuk.thip.feed.adapter.out.jpa.ContentJpaEntity; import konkuk.thip.feed.adapter.out.jpa.FeedJpaEntity; import konkuk.thip.feed.adapter.out.jpa.FeedTagJpaEntity; import konkuk.thip.post.adapter.out.jpa.PostJpaEntity; import konkuk.thip.feed.adapter.out.jpa.TagJpaEntity; import konkuk.thip.post.adapter.out.jpa.PostLikeJpaEntity; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.*; import konkuk.thip.room.adapter.out.jpa.*; import konkuk.thip.room.domain.Category; import konkuk.thip.feed.adapter.out.jpa.SavedFeedJpaEntity; -import konkuk.thip.room.domain.RoomParticipant; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; import konkuk.thip.user.adapter.out.jpa.FollowingJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserRole; import konkuk.thip.user.domain.Alias; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteParticipantJpaEntity; import java.time.LocalDate; import java.util.ArrayList; diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeLikeStatusAPITest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeLikeStatusApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeLikeStatusAPITest.java rename to src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeLikeStatusApiTest.java index 7f51c0202..c692e29e0 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeLikeStatusAPITest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeLikeStatusApiTest.java @@ -37,7 +37,7 @@ @AutoConfigureMockMvc(addFilters = false) @Transactional @DisplayName("[통합] 피드 좋아요 api 통합 테스트") -class FeedChangeLikeStatusAPITest { +class FeedChangeLikeStatusApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeSavedAPITest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeSavedApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeSavedAPITest.java rename to src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeSavedApiTest.java index 9d14f1d86..5c7e263c4 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeSavedAPITest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedChangeSavedApiTest.java @@ -41,7 +41,7 @@ @Transactional @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 피드 저장 상태 변경 api 통합 테스트") -class FeedChangeSavedAPITest { +class FeedChangeSavedApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedCreateAPITest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedCreateApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/feed/adapter/in/web/FeedCreateAPITest.java rename to src/test/java/konkuk/thip/feed/adapter/in/web/FeedCreateApiTest.java index 8057beb8b..e77cf13c6 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedCreateAPITest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedCreateApiTest.java @@ -48,7 +48,7 @@ @Transactional @Import(TestS3MockConfig.class) @DisplayName("[통합] 피드 생성 api 통합 테스트") -class FeedCreateAPITest { +class FeedCreateApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedDeleteAPITest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedDeleteApiTest.java similarity index 98% rename from src/test/java/konkuk/thip/feed/adapter/in/web/FeedDeleteAPITest.java rename to src/test/java/konkuk/thip/feed/adapter/in/web/FeedDeleteApiTest.java index cf2fdb1e7..c472aa9f2 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedDeleteAPITest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedDeleteApiTest.java @@ -33,7 +33,7 @@ import java.util.List; import static konkuk.thip.common.entity.StatusType.INACTIVE; -import static konkuk.thip.common.post.PostType.FEED; +import static konkuk.thip.post.domain.PostType.FEED; import static konkuk.thip.feed.domain.Tag.FOREIGN_NOVEL; import static konkuk.thip.feed.domain.Tag.KOREAN_NOVEL; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @@ -46,7 +46,7 @@ @Transactional @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 피드 삭제 api 통합 테스트") -class FeedDeleteAPITest { +class FeedDeleteApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedShowWriteInfoAPITest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedShowWriteInfoApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/feed/adapter/in/web/FeedShowWriteInfoAPITest.java rename to src/test/java/konkuk/thip/feed/adapter/in/web/FeedShowWriteInfoApiTest.java index fbce20b38..28c19cc37 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedShowWriteInfoAPITest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedShowWriteInfoApiTest.java @@ -34,7 +34,7 @@ @Transactional @Import(TestS3MockConfig.class) @DisplayName("[통합] 피드 작성을 위한 화면 조회 api 통합 테스트") -class FeedShowWriteInfoAPITest { +class FeedShowWriteInfoApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedUpdateAPITest.java b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedUpdateApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/feed/adapter/in/web/FeedUpdateAPITest.java rename to src/test/java/konkuk/thip/feed/adapter/in/web/FeedUpdateApiTest.java index 1788fd09f..0cd4b7f5b 100644 --- a/src/test/java/konkuk/thip/feed/adapter/in/web/FeedUpdateAPITest.java +++ b/src/test/java/konkuk/thip/feed/adapter/in/web/FeedUpdateApiTest.java @@ -49,7 +49,7 @@ @Transactional @Import(TestS3MockConfig.class) @DisplayName("[통합] 피드 수정 api 통합 테스트") -class FeedUpdateAPITest { +class FeedUpdateApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateAPITest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateAPITest.java rename to src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateApiTest.java index 806381c01..0934530a0 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateAPITest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateApiTest.java @@ -43,7 +43,7 @@ @ActiveProfiles("test") @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 방 생성 api 통합 테스트") -class RoomCreateAPITest { +class RoomCreateApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateControllerTest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateControllerTest.java index cad63a039..98f3a692c 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateControllerTest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomCreateControllerTest.java @@ -23,7 +23,7 @@ @SpringBootTest @ActiveProfiles("test") @AutoConfigureMockMvc(addFilters = false) -@DisplayName("방 생성 api controller 단위 테스트") +@DisplayName("[단위] 방 생성 api controller 단위 테스트") class RoomCreateControllerTest { @Autowired diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomJoinApiTest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomJoinApiTest.java index 4248b49e7..458743a4b 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomJoinApiTest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomJoinApiTest.java @@ -31,8 +31,8 @@ import java.util.HashMap; import java.util.Map; -import static konkuk.thip.room.domain.RoomJoinType.CANCEL; -import static konkuk.thip.room.domain.RoomJoinType.JOIN; +import static konkuk.thip.room.application.port.in.dto.RoomJoinType.CANCEL; +import static konkuk.thip.room.application.port.in.dto.RoomJoinType.JOIN; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -40,7 +40,7 @@ @SpringBootTest @ActiveProfiles("test") @AutoConfigureMockMvc(addFilters = false) -@DisplayName("방 참여/취소 API 통합 테스트") +@DisplayName("[통합] 방 참여/취소 API 통합 테스트") class RoomJoinApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomPlayingDetailViewApiTest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomPlayingDetailViewApiTest.java index 06438285e..ccdf09139 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomPlayingDetailViewApiTest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomPlayingDetailViewApiTest.java @@ -17,10 +17,10 @@ import konkuk.thip.user.adapter.out.jpa.UserRole; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusAPITest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusApiTest.java similarity index 97% rename from src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusAPITest.java rename to src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusApiTest.java index c9d920af3..957d0deb1 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusAPITest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusApiTest.java @@ -7,8 +7,8 @@ import konkuk.thip.feed.adapter.out.jpa.FeedJpaEntity; import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; import konkuk.thip.post.adapter.out.persistence.PostLikeJpaRepository; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.in.web.request.RoomPostIsLikeRequest; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; @@ -20,8 +20,8 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -46,7 +46,7 @@ @AutoConfigureMockMvc(addFilters = false) @Transactional @DisplayName("[통합] 방 게시물(기록,투표) 좋아요 api 통합 테스트") -class RoomPostChangeLikeStatusAPITest { +class RoomPostChangeLikeStatusApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusControllerTest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusControllerTest.java index c336e4a31..592c7c4ec 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusControllerTest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomPostChangeLikeStatusControllerTest.java @@ -4,8 +4,8 @@ import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordAPITest.java b/src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordApiTest.java similarity index 99% rename from src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordAPITest.java rename to src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordApiTest.java index 76708ecf5..8f8de79b2 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordAPITest.java +++ b/src/test/java/konkuk/thip/room/adapter/in/web/RoomVerifyPasswordApiTest.java @@ -9,7 +9,6 @@ import konkuk.thip.room.adapter.out.persistence.repository.category.CategoryJpaRepository; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; -import konkuk.thip.user.adapter.out.jpa.UserRole; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; @@ -39,7 +38,7 @@ @ActiveProfiles("test") @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 비공개 방 비밀번호 입력 검증 api 통합 테스트") -class RoomVerifyPasswordAPITest { +class RoomVerifyPasswordApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/room/application/service/RoomJoinServiceTest.java b/src/test/java/konkuk/thip/room/application/service/RoomJoinServiceTest.java index aa0719139..5feedd7da 100644 --- a/src/test/java/konkuk/thip/room/application/service/RoomJoinServiceTest.java +++ b/src/test/java/konkuk/thip/room/application/service/RoomJoinServiceTest.java @@ -15,7 +15,8 @@ import java.time.LocalDate; import java.util.Optional; -import static konkuk.thip.room.adapter.out.jpa.RoomParticipantRole.MEMBER; +import static konkuk.thip.room.application.port.in.dto.RoomJoinType.CANCEL; +import static konkuk.thip.room.application.port.in.dto.RoomJoinType.JOIN; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.BDDMockito.*; import static org.mockito.Mockito.mock; @@ -51,7 +52,7 @@ class Join { @Test @DisplayName("이미 참여한 경우 예외 발생") void alreadyParticipated() { - RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, "join"); + RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, JOIN); given(roomCommandPort.findById(ROOM_ID)).willReturn(Optional.of(room)); given(roomParticipantCommandPort.findByUserIdAndRoomIdOptional(USER_ID, ROOM_ID)) @@ -65,7 +66,7 @@ void alreadyParticipated() { @Test @DisplayName("정상적으로 참여 시 참여자 저장 및 인원수 증가") void successJoin() { - RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, "join"); + RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, JOIN); given(roomCommandPort.findById(ROOM_ID)).willReturn(Optional.of(room)); given(roomParticipantCommandPort.findByUserIdAndRoomIdOptional(USER_ID, ROOM_ID)) @@ -85,7 +86,7 @@ class Cancel { @Test @DisplayName("참여하지 않은 경우 예외 발생") void notParticipated() { - RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, "cancel"); + RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, CANCEL); given(roomCommandPort.findById(ROOM_ID)).willReturn(Optional.of(room)); given(roomParticipantCommandPort.findByUserIdAndRoomIdOptional(USER_ID, ROOM_ID)) @@ -99,7 +100,7 @@ void notParticipated() { @Test @DisplayName("정상적으로 취소 시 참여자 제거 및 인원수 감소") void successCancel() { - RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, "cancel"); + RoomJoinCommand command = new RoomJoinCommand(USER_ID, ROOM_ID, CANCEL); RoomParticipant participant = RoomParticipant.memberWithoutId(USER_ID, ROOM_ID); given(roomCommandPort.findById(ROOM_ID)).willReturn(Optional.of(room)); diff --git a/src/test/java/konkuk/thip/room/domain/RoomParticipantTest.java b/src/test/java/konkuk/thip/room/domain/RoomParticipantTest.java index 7fb63e091..53d8490a8 100644 --- a/src/test/java/konkuk/thip/room/domain/RoomParticipantTest.java +++ b/src/test/java/konkuk/thip/room/domain/RoomParticipantTest.java @@ -5,7 +5,7 @@ import static org.assertj.core.api.Assertions.assertThat; -@DisplayName("[단위] UserRoom 도메인 테스트") +@DisplayName("[단위] RoomParticipant 도메인 테스트") class RoomParticipantTest { @Test diff --git a/src/test/java/konkuk/thip/room/domain/RoomParticipantsTest.java b/src/test/java/konkuk/thip/room/domain/RoomParticipantsTest.java index 135d48a3f..a935d5a94 100644 --- a/src/test/java/konkuk/thip/room/domain/RoomParticipantsTest.java +++ b/src/test/java/konkuk/thip/room/domain/RoomParticipantsTest.java @@ -9,6 +9,7 @@ import static org.junit.jupiter.api.Assertions.*; +@DisplayName("[단위] RoomParticipants 도메인 테스트") class RoomParticipantsTest { private RoomParticipant createUserRoom(Long id, Long userId, Long roomId, RoomParticipantRole role) { diff --git a/src/test/java/konkuk/thip/room/domain/RoomTest.java b/src/test/java/konkuk/thip/room/domain/RoomTest.java index 0e268657d..f4bd6f9a4 100644 --- a/src/test/java/konkuk/thip/room/domain/RoomTest.java +++ b/src/test/java/konkuk/thip/room/domain/RoomTest.java @@ -1,6 +1,5 @@ package konkuk.thip.room.domain; -import konkuk.thip.common.exception.BusinessException; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.common.exception.code.ErrorCode; import org.junit.jupiter.api.DisplayName; @@ -13,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.springframework.test.util.ReflectionTestUtils.setField; -@DisplayName("[단위] Room 단위 테스트") +@DisplayName("[단위] Room 도메인 테스트") class RoomTest { private static final PasswordEncoder PASSWORD_ENCODER = new BCryptPasswordEncoder(); diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/AttendanceCheckCreateApiTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/AttendanceCheckCreateApiTest.java similarity index 98% rename from src/test/java/konkuk/thip/room/adapter/in/web/AttendanceCheckCreateApiTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/AttendanceCheckCreateApiTest.java index a29257319..269dc8eb4 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/AttendanceCheckCreateApiTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/AttendanceCheckCreateApiTest.java @@ -1,8 +1,8 @@ -package konkuk.thip.room.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import konkuk.thip.room.adapter.out.persistence.repository.attendancecheck.AttendanceCheckJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.attendancecheck.AttendanceCheckJpaRepository; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; diff --git a/src/test/java/konkuk/thip/room/adapter/in/web/AttendanceCheckCreateControllerTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/AttendanceCheckCreateControllerTest.java similarity index 94% rename from src/test/java/konkuk/thip/room/adapter/in/web/AttendanceCheckCreateControllerTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/AttendanceCheckCreateControllerTest.java index 9f1527db2..fd8f818c1 100644 --- a/src/test/java/konkuk/thip/room/adapter/in/web/AttendanceCheckCreateControllerTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/AttendanceCheckCreateControllerTest.java @@ -1,7 +1,7 @@ -package konkuk.thip.room.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.ObjectMapper; -import konkuk.thip.room.adapter.in.web.request.AttendanceCheckCreateRequest; +import konkuk.thip.roompost.adapter.in.web.request.AttendanceCheckCreateRequest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/konkuk/thip/record/adapter/in/web/RecordCreateControllerTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/RecordCreateControllerTest.java similarity index 97% rename from src/test/java/konkuk/thip/record/adapter/in/web/RecordCreateControllerTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/RecordCreateControllerTest.java index 186880f48..954089e89 100644 --- a/src/test/java/konkuk/thip/record/adapter/in/web/RecordCreateControllerTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/RecordCreateControllerTest.java @@ -1,13 +1,13 @@ -package konkuk.thip.record.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; -import konkuk.thip.record.adapter.in.web.request.RecordCreateRequest; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.in.web.request.RecordCreateRequest; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantJpaEntity; diff --git a/src/test/java/konkuk/thip/record/adapter/in/web/RecordDeleteAPITest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/RecordDeleteApiTest.java similarity index 94% rename from src/test/java/konkuk/thip/record/adapter/in/web/RecordDeleteAPITest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/RecordDeleteApiTest.java index 65e897ec3..9a62a8e1e 100644 --- a/src/test/java/konkuk/thip/record/adapter/in/web/RecordDeleteAPITest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/RecordDeleteApiTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.record.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; @@ -7,8 +7,8 @@ import konkuk.thip.comment.adapter.out.persistence.repository.CommentLikeJpaRepository; import konkuk.thip.common.util.TestEntityFactory; import konkuk.thip.post.adapter.out.persistence.PostLikeJpaRepository; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; @@ -19,7 +19,6 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -31,7 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import static konkuk.thip.common.entity.StatusType.INACTIVE; -import static konkuk.thip.common.post.PostType.RECORD; +import static konkuk.thip.post.domain.PostType.RECORD; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -41,7 +40,7 @@ @Transactional @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 기록 삭제 api 통합 테스트") -class RecordDeleteAPITest { +class RecordDeleteApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/record/adapter/in/web/RecordPinAPITest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/RecordPinApiTest.java similarity index 94% rename from src/test/java/konkuk/thip/record/adapter/in/web/RecordPinAPITest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/RecordPinApiTest.java index 2df17fc28..7eb355b64 100644 --- a/src/test/java/konkuk/thip/record/adapter/in/web/RecordPinAPITest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/RecordPinApiTest.java @@ -1,10 +1,10 @@ -package konkuk.thip.record.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; @@ -35,7 +35,7 @@ @Transactional @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 기록을 핀하기 api 통합 테스트") -class RecordPinAPITest { +class RecordPinApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/record/adapter/in/web/RecordSearchApiTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/RoomPostSearchApiTest.java similarity index 97% rename from src/test/java/konkuk/thip/record/adapter/in/web/RecordSearchApiTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/RoomPostSearchApiTest.java index b64659c63..e61e978d4 100644 --- a/src/test/java/konkuk/thip/record/adapter/in/web/RecordSearchApiTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/RoomPostSearchApiTest.java @@ -1,12 +1,12 @@ -package konkuk.thip.record.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantJpaEntity; @@ -19,10 +19,10 @@ import konkuk.thip.user.adapter.out.jpa.UserRole; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -43,10 +43,10 @@ @SpringBootTest @ActiveProfiles("test") -@DisplayName("[통합] RecordSearchApiTest 테스트") +@DisplayName("[통합] 게시글 조회 api 테스트") @AutoConfigureMockMvc(addFilters = false) @Transactional -class RecordSearchApiTest { +class RoomPostSearchApiTest { @Autowired private MockMvc mockMvc; @Autowired private ObjectMapper objectMapper; diff --git a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteApiTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteApiTest.java similarity index 95% rename from src/test/java/konkuk/thip/vote/adapter/in/web/VoteApiTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/VoteApiTest.java index c263e8f3d..ae38d0ffe 100644 --- a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteApiTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteApiTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.ObjectMapper; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; @@ -14,12 +14,12 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.in.web.request.VoteRequest; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteParticipantJpaRepository; +import konkuk.thip.roompost.adapter.in.web.request.VoteRequest; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteParticipantJpaRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteCreateApiTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteCreateApiTest.java similarity index 93% rename from src/test/java/konkuk/thip/vote/adapter/in/web/VoteCreateApiTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/VoteCreateApiTest.java index 17586a69f..e4208b295 100644 --- a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteCreateApiTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteCreateApiTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -15,11 +15,11 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.in.web.request.VoteCreateRequest; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.in.web.request.VoteCreateRequest; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteCreateControllerTest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteCreateControllerTest.java similarity index 99% rename from src/test/java/konkuk/thip/vote/adapter/in/web/VoteCreateControllerTest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/VoteCreateControllerTest.java index 06238791a..3c7e679be 100644 --- a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteCreateControllerTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteCreateControllerTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.DisplayName; diff --git a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteDeleteAPITest.java b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteDeleteApiTest.java similarity index 92% rename from src/test/java/konkuk/thip/vote/adapter/in/web/VoteDeleteAPITest.java rename to src/test/java/konkuk/thip/roompost/adapter/in/web/VoteDeleteApiTest.java index fce5dedad..bb39dfed9 100644 --- a/src/test/java/konkuk/thip/vote/adapter/in/web/VoteDeleteAPITest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/in/web/VoteDeleteApiTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.adapter.in.web; +package konkuk.thip.roompost.adapter.in.web; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; @@ -17,11 +17,11 @@ import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteItemJpaEntity; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteParticipantJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.VoteItemJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteParticipantJpaRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -33,7 +33,7 @@ import org.springframework.transaction.annotation.Transactional; import static konkuk.thip.common.entity.StatusType.INACTIVE; -import static konkuk.thip.common.post.PostType.VOTE; +import static konkuk.thip.post.domain.PostType.VOTE; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -43,7 +43,7 @@ @Transactional @AutoConfigureMockMvc(addFilters = false) @DisplayName("[통합] 투표 삭제 api 통합 테스트") -class VoteDeleteAPITest { +class VoteDeleteApiTest { @Autowired private MockMvc mockMvc; diff --git a/src/test/java/konkuk/thip/room/adapter/out/jpa/RecordJpaEntityTest.java b/src/test/java/konkuk/thip/roompost/adapter/out/jpa/RecordJpaEntityTest.java similarity index 91% rename from src/test/java/konkuk/thip/room/adapter/out/jpa/RecordJpaEntityTest.java rename to src/test/java/konkuk/thip/roompost/adapter/out/jpa/RecordJpaEntityTest.java index 45a045b83..16c5e8688 100644 --- a/src/test/java/konkuk/thip/room/adapter/out/jpa/RecordJpaEntityTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/out/jpa/RecordJpaEntityTest.java @@ -1,11 +1,12 @@ -package konkuk.thip.room.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import jakarta.persistence.EntityManager; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; +import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; +import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.category.CategoryJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; diff --git a/src/test/java/konkuk/thip/room/adapter/out/jpa/VoteJpaEntityTest.java b/src/test/java/konkuk/thip/roompost/adapter/out/jpa/VoteJpaEntityTest.java similarity index 92% rename from src/test/java/konkuk/thip/room/adapter/out/jpa/VoteJpaEntityTest.java rename to src/test/java/konkuk/thip/roompost/adapter/out/jpa/VoteJpaEntityTest.java index 3915a7feb..8c708e9ff 100644 --- a/src/test/java/konkuk/thip/room/adapter/out/jpa/VoteJpaEntityTest.java +++ b/src/test/java/konkuk/thip/roompost/adapter/out/jpa/VoteJpaEntityTest.java @@ -1,17 +1,18 @@ -package konkuk.thip.room.adapter.out.jpa; +package konkuk.thip.roompost.adapter.out.jpa; import jakarta.persistence.EntityManager; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; import konkuk.thip.common.util.TestEntityFactory; +import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; +import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.persistence.repository.category.CategoryJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/konkuk/thip/vote/application/service/VoteCreateServiceTest.java b/src/test/java/konkuk/thip/roompost/application/service/VoteCreateServiceTest.java similarity index 93% rename from src/test/java/konkuk/thip/vote/application/service/VoteCreateServiceTest.java rename to src/test/java/konkuk/thip/roompost/application/service/VoteCreateServiceTest.java index cbaf3ac72..31eb39c3f 100644 --- a/src/test/java/konkuk/thip/vote/application/service/VoteCreateServiceTest.java +++ b/src/test/java/konkuk/thip/roompost/application/service/VoteCreateServiceTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.book.adapter.out.jpa.BookJpaEntity; import konkuk.thip.book.adapter.out.persistence.repository.BookJpaRepository; @@ -10,13 +10,13 @@ import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.category.CategoryJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.roomparticipant.RoomParticipantJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteItemJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCreateCommand; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteItemJpaRepository; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; -import konkuk.thip.vote.application.port.in.dto.VoteCreateCommand; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -33,7 +33,7 @@ @SpringBootTest @ActiveProfiles("test") @AutoConfigureMockMvc(addFilters = false) -@DisplayName("[단위] 투표 생성 service 단위 테스트") +@DisplayName("[통합] 투표 생성 service 통합 테스트") class VoteCreateServiceTest { @Autowired diff --git a/src/test/java/konkuk/thip/vote/application/service/VoteServiceTest.java b/src/test/java/konkuk/thip/roompost/application/service/VoteServiceTest.java similarity index 91% rename from src/test/java/konkuk/thip/vote/application/service/VoteServiceTest.java rename to src/test/java/konkuk/thip/roompost/application/service/VoteServiceTest.java index 8da6d1f99..35d593186 100644 --- a/src/test/java/konkuk/thip/vote/application/service/VoteServiceTest.java +++ b/src/test/java/konkuk/thip/roompost/application/service/VoteServiceTest.java @@ -1,16 +1,17 @@ -package konkuk.thip.vote.application.service; +package konkuk.thip.roompost.application.service; import konkuk.thip.common.exception.BusinessException; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.common.exception.code.ErrorCode; import konkuk.thip.room.application.service.validator.RoomParticipantValidator; -import konkuk.thip.vote.application.port.in.dto.VoteCommand; -import konkuk.thip.vote.application.port.in.dto.VoteResult; -import konkuk.thip.vote.application.port.out.VoteCommandPort; -import konkuk.thip.vote.application.port.out.VoteQueryPort; -import konkuk.thip.vote.application.port.out.dto.VoteItemQueryDto; -import konkuk.thip.vote.domain.VoteItem; -import konkuk.thip.vote.domain.VoteParticipant; +import konkuk.thip.roompost.application.service.VoteService; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteCommand; +import konkuk.thip.roompost.application.port.in.dto.vote.VoteResult; +import konkuk.thip.roompost.application.port.out.VoteCommandPort; +import konkuk.thip.roompost.application.port.out.VoteQueryPort; +import konkuk.thip.roompost.application.port.out.dto.VoteItemQueryDto; +import konkuk.thip.roompost.domain.VoteItem; +import konkuk.thip.roompost.domain.VoteParticipant; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/konkuk/thip/room/domain/AttendanceCheckTest.java b/src/test/java/konkuk/thip/roompost/domain/AttendanceCheckTest.java similarity index 94% rename from src/test/java/konkuk/thip/room/domain/AttendanceCheckTest.java rename to src/test/java/konkuk/thip/roompost/domain/AttendanceCheckTest.java index c59750f2d..d4a9d4de8 100644 --- a/src/test/java/konkuk/thip/room/domain/AttendanceCheckTest.java +++ b/src/test/java/konkuk/thip/roompost/domain/AttendanceCheckTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.room.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.exception.InvalidStateException; import org.junit.jupiter.api.DisplayName; @@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.*; +@DisplayName("[단위] AttendanceCheck 도메인 테스트") class AttendanceCheckTest { @Test diff --git a/src/test/java/konkuk/thip/record/domain/RecordTest.java b/src/test/java/konkuk/thip/roompost/domain/RecordTest.java similarity index 80% rename from src/test/java/konkuk/thip/record/domain/RecordTest.java rename to src/test/java/konkuk/thip/roompost/domain/RecordTest.java index 3e3564d2a..e7719eff1 100644 --- a/src/test/java/konkuk/thip/record/domain/RecordTest.java +++ b/src/test/java/konkuk/thip/roompost/domain/RecordTest.java @@ -1,7 +1,8 @@ -package konkuk.thip.record.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.post.domain.service.PostCountService; +import konkuk.thip.roompost.domain.Record; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,8 +26,8 @@ void setUp() { private final Long ROOM_ID = 1L; private final Long OTHER_ROOM_ID = 2L; - private Record createWithCommentRecord() { - return Record.builder() + private konkuk.thip.roompost.domain.Record createWithCommentRecord() { + return konkuk.thip.roompost.domain.Record.builder() .id(100L) .content("댓글이 존재하는 기록입니다.") .creatorId(CREATOR_ID) @@ -38,8 +39,8 @@ private Record createWithCommentRecord() { .build(); } - private Record createNotCommentRecord() { - return Record.builder() + private konkuk.thip.roompost.domain.Record createNotCommentRecord() { + return konkuk.thip.roompost.domain.Record.builder() .id(100L) .content("댓글이 존재하지 않는 기록입니다.") .creatorId(CREATOR_ID) @@ -55,7 +56,7 @@ private Record createNotCommentRecord() { @Test @DisplayName("validatePage: 유효한 페이지 범위일 때, 예외가 발생하지 않는다.") void validate_page_valid_range() { - Record record = Record.withoutId("content", 1L, 10, false, 1L); + konkuk.thip.roompost.domain.Record record = konkuk.thip.roompost.domain.Record.withoutId("content", 1L, 10, false, 1L); assertDoesNotThrow(() -> record.validatePage(20)); assertDoesNotThrow(() -> record.validatePage(10)); } @@ -63,7 +64,7 @@ void validate_page_valid_range() { @Test @DisplayName("validatePage: page가 1보다 작을 때, InvalidStateException 발생한다.") void validate_page_lower_than_zero() { - Record record = Record.withoutId("content", 1L, 0, false, 1L); + konkuk.thip.roompost.domain.Record record = konkuk.thip.roompost.domain.Record.withoutId("content", 1L, 0, false, 1L); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validatePage(20)); assertInstanceOf(IllegalArgumentException.class, ex.getCause()); @@ -73,7 +74,7 @@ void validate_page_lower_than_zero() { @Test @DisplayName("validatePage: page가 전체 페이지 수를 초과할 때, InvalidStateException 발생한다.") void validate_page_bigger_than_total() { - Record record = Record.withoutId("content", 1L, 25, false, 1L); + konkuk.thip.roompost.domain.Record record = konkuk.thip.roompost.domain.Record.withoutId("content", 1L, 25, false, 1L); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validatePage(20)); assertInstanceOf(IllegalArgumentException.class, ex.getCause()); @@ -83,21 +84,21 @@ void validate_page_bigger_than_total() { @Test @DisplayName("validateOverview: isOverview=false 이면, 예외가 발생하지 않는다.") void validate_overview_not_overview_no_exception() { - Record record = Record.withoutId("content", 1L, 5, false, 1L); + konkuk.thip.roompost.domain.Record record = konkuk.thip.roompost.domain.Record.withoutId("content", 1L, 5, false, 1L); assertDoesNotThrow(() -> record.validateOverview(20)); } @Test @DisplayName("validateOverview: isOverview=true 이고 page가 전체 페이지 수와 같으면, 예외가 발생하지 않는다.") void validate_overview_page_is_book_page_count() { - Record record = Record.withoutId("content", 1L, 100, true, 1L); + konkuk.thip.roompost.domain.Record record = konkuk.thip.roompost.domain.Record.withoutId("content", 1L, 100, true, 1L); assertDoesNotThrow(() -> record.validateOverview(100)); } @Test @DisplayName("validateOverview: isOverview=true 이고 page가 전체 페이지 수와 다르면, InvalidStateException 발생한다.") void validate_overview_page_is_not_book_page_count() { - Record record = Record.withoutId("content", 1L, 15, true, 1L); // 15/20 = 0.75 + konkuk.thip.roompost.domain.Record record = konkuk.thip.roompost.domain.Record.withoutId("content", 1L, 15, true, 1L); // 15/20 = 0.75 InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validateOverview(20)); assertInstanceOf(IllegalArgumentException.class, ex.getCause()); @@ -107,7 +108,7 @@ void validate_overview_page_is_not_book_page_count() { @Test @DisplayName("increaseCommentCount: 기록의 댓글 수가 정상적으로 1 증가한다.") void increaseCommentCount_increments() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); int before = record.getCommentCount(); record.increaseCommentCount(); @@ -118,7 +119,7 @@ void increaseCommentCount_increments() { @Test @DisplayName("decreaseCommentCount: 기록의 댓글 수가 정상적으로 1 감소한다.") void decreaseCommentCount_decrements() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); int before = record.getCommentCount(); record.decreaseCommentCount(); @@ -129,7 +130,7 @@ void decreaseCommentCount_decrements() { @Test @DisplayName("decreaseCommentCount: 기록의 댓글 수가 0 이하로 내려가면 InvalidStateException이 발생한다.") void decreaseCommentCount_belowZero_throws() { - Record record = createNotCommentRecord(); + konkuk.thip.roompost.domain.Record record = createNotCommentRecord(); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.decreaseCommentCount()); @@ -140,7 +141,7 @@ void decreaseCommentCount_belowZero_throws() { @Test @DisplayName("updateLikeCount: like == true 면 likeCount 가 1씩 증가한다.") void updateLikeCount_likeTrue_increments() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); record.updateLikeCount(postCountService,true); assertEquals(1, record.getLikeCount()); @@ -152,7 +153,7 @@ void updateLikeCount_likeTrue_increments() { @Test @DisplayName("updateLikeCount: like == false 면 likeCount 가 1씩 감소한다.") void updateLikeCount_likeFalse_decrements() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); // 먼저 likeCount 증가 셋업 record.updateLikeCount(postCountService,true); @@ -169,7 +170,7 @@ void updateLikeCount_likeFalse_decrements() { @Test @DisplayName("updateLikeCount: like == false 면 likeCount 가 0 이하로 내려가면 InvalidStateException이 발생한다.") void updateLikeCount_likeFalse_underflow_throws() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); assertEquals(0, record.getLikeCount()); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> { @@ -182,7 +183,7 @@ void updateLikeCount_likeFalse_underflow_throws() { @Test @DisplayName("validateDeletable: 작성자가 아닌 경우 기록을 삭제하려고 하면 InvalidStateException이 발생한다.") void validateDeletable_byNonCreator_throws(){ - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validateDeletable(OTHER_USER_ID,ROOM_ID)); @@ -192,7 +193,7 @@ void validateDeletable_byNonCreator_throws(){ @Test @DisplayName("validateDeletable: 전달된 roomId가 기록의 roomId가 일치 하지않은 경우 기록을 삭제하려고 하면 InvalidStateException이 발생한다.") void validateDeletable_byOtherRoomId_throws(){ - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validateDeletable(CREATOR_ID,OTHER_ROOM_ID)); @@ -202,14 +203,14 @@ void validateDeletable_byOtherRoomId_throws(){ @Test @DisplayName("validateDeletable: 기록의 작성자면서, 전달된 roomId가 기록의 roomId와 일치할 경우 기록을 삭제 할 수 있다.") void validateDeletable_byCreator_byRoomId_Success(){ - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); assertDoesNotThrow(() -> record.validateDeletable(CREATOR_ID,ROOM_ID)); } @Test @DisplayName("validatePin: 작성자가 아닌 경우 기록을 핀하려고 하면 InvalidStateException이 발생한다.") void validatePin_byNonCreator_throws() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validatePin(OTHER_USER_ID, ROOM_ID)); @@ -220,7 +221,7 @@ void validatePin_byNonCreator_throws() { @Test @DisplayName("validatePin: 전달된 roomId가 기록의 roomId와 일치하지 않는 경우 기록을 핀하려고 하면 InvalidStateException이 발생한다.") void validatePin_byOtherRoomId_throws() { - Record record = createWithCommentRecord(); + konkuk.thip.roompost.domain.Record record = createWithCommentRecord(); InvalidStateException ex = assertThrows(InvalidStateException.class, () -> record.validatePin(CREATOR_ID, OTHER_ROOM_ID)); diff --git a/src/test/java/konkuk/thip/vote/domain/VoteItemTest.java b/src/test/java/konkuk/thip/roompost/domain/VoteItemTest.java similarity index 98% rename from src/test/java/konkuk/thip/vote/domain/VoteItemTest.java rename to src/test/java/konkuk/thip/roompost/domain/VoteItemTest.java index 863734db0..44faeb7f1 100644 --- a/src/test/java/konkuk/thip/vote/domain/VoteItemTest.java +++ b/src/test/java/konkuk/thip/roompost/domain/VoteItemTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.domain; +package konkuk.thip.roompost.domain; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/konkuk/thip/vote/domain/VoteParticipantTest.java b/src/test/java/konkuk/thip/roompost/domain/VoteParticipantTest.java similarity index 97% rename from src/test/java/konkuk/thip/vote/domain/VoteParticipantTest.java rename to src/test/java/konkuk/thip/roompost/domain/VoteParticipantTest.java index 8d83ac49b..42bf7153e 100644 --- a/src/test/java/konkuk/thip/vote/domain/VoteParticipantTest.java +++ b/src/test/java/konkuk/thip/roompost/domain/VoteParticipantTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.common.exception.code.ErrorCode; diff --git a/src/test/java/konkuk/thip/vote/domain/VoteTest.java b/src/test/java/konkuk/thip/roompost/domain/VoteTest.java similarity index 99% rename from src/test/java/konkuk/thip/vote/domain/VoteTest.java rename to src/test/java/konkuk/thip/roompost/domain/VoteTest.java index 6c0ced4b5..7383fdd3a 100644 --- a/src/test/java/konkuk/thip/vote/domain/VoteTest.java +++ b/src/test/java/konkuk/thip/roompost/domain/VoteTest.java @@ -1,4 +1,4 @@ -package konkuk.thip.vote.domain; +package konkuk.thip.roompost.domain; import konkuk.thip.common.exception.InvalidStateException; import konkuk.thip.post.domain.service.PostCountService; diff --git a/src/test/java/konkuk/thip/user/adapter/in/web/UserReactionApiTest.java b/src/test/java/konkuk/thip/user/adapter/in/web/UserReactionApiTest.java index aae65841b..ff07c4ef0 100644 --- a/src/test/java/konkuk/thip/user/adapter/in/web/UserReactionApiTest.java +++ b/src/test/java/konkuk/thip/user/adapter/in/web/UserReactionApiTest.java @@ -10,20 +10,20 @@ import konkuk.thip.feed.adapter.out.persistence.repository.FeedJpaRepository; import konkuk.thip.post.adapter.out.jpa.PostLikeJpaEntity; import konkuk.thip.post.adapter.out.persistence.PostLikeJpaRepository; -import konkuk.thip.record.adapter.out.jpa.RecordJpaEntity; -import konkuk.thip.record.adapter.out.persistence.repository.RecordJpaRepository; import konkuk.thip.room.adapter.out.jpa.CategoryJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomJpaEntity; import konkuk.thip.room.adapter.out.jpa.RoomParticipantRole; import konkuk.thip.room.adapter.out.persistence.repository.RoomJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.category.CategoryJpaRepository; import konkuk.thip.room.adapter.out.persistence.repository.roomparticipant.RoomParticipantJpaRepository; +import konkuk.thip.roompost.adapter.out.jpa.RecordJpaEntity; +import konkuk.thip.roompost.adapter.out.jpa.VoteJpaEntity; +import konkuk.thip.roompost.adapter.out.persistence.repository.record.RecordJpaRepository; +import konkuk.thip.roompost.adapter.out.persistence.repository.vote.VoteJpaRepository; import konkuk.thip.user.adapter.out.jpa.AliasJpaEntity; import konkuk.thip.user.adapter.out.jpa.UserJpaEntity; import konkuk.thip.user.adapter.out.persistence.repository.UserJpaRepository; import konkuk.thip.user.adapter.out.persistence.repository.alias.AliasJpaRepository; -import konkuk.thip.vote.adapter.out.jpa.VoteJpaEntity; -import konkuk.thip.vote.adapter.out.persistence.repository.VoteJpaRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -37,7 +37,7 @@ import java.util.List; import java.util.stream.IntStream; -import static konkuk.thip.common.post.PostType.*; +import static konkuk.thip.post.domain.PostType.FEED; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;