From e368456b748d2f7786fed633e4c8bf553d1be228 Mon Sep 17 00:00:00 2001 From: coehgns Date: Mon, 18 Aug 2025 13:56:54 +0900 Subject: [PATCH 1/6] =?UTF-8?q?refactor=20(=20#27=20)=20:=20attachFile=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../port/in/CreateAttachFileUseCase.kt | 18 ------------------ .../adapter/in/web}/AttachFileWebAdapter.kt | 8 ++++---- .../dto/response/CreateAttachFileResponse.kt | 2 +- .../adapter/out/entity}/AttachFileJpaEntity.kt | 2 +- .../adapter/out/mapper}/AttachFileMapper.kt | 6 +++--- .../AttachFilePersistenceAdapter.kt | 18 +++++++++--------- .../repository/AttachFileRepository.kt | 4 ++-- .../port/out/DeleteAttachFilePort.kt | 2 +- .../port/out/ExistsAttachFilePort.kt | 2 +- .../port/out/FindAttachFilePort.kt | 4 ++-- .../port/out/SaveAttachFilePort.kt | 4 ++-- .../service/CreateAttachFileService.kt | 14 +++++++------- .../attachFile/model}/AttachFile.kt | 2 +- 13 files changed, 34 insertions(+), 52 deletions(-) delete mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/in/CreateAttachFileUseCase.kt rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/attachFile => domain/attachFile/adapter/in/web}/AttachFileWebAdapter.kt (89%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/attachFile => domain/attachFile/adapter/in/web}/dto/response/CreateAttachFileResponse.kt (78%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/entity/attachFile => domain/attachFile/adapter/out/entity}/AttachFileJpaEntity.kt (90%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/mapper/attachFile => domain/attachFile/adapter/out/mapper}/AttachFileMapper.kt (79%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/attachFile => domain/attachFile/adapter/out/persistence}/AttachFilePersistenceAdapter.kt (78%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/attachFile => domain/attachFile/adapter/out/persistence}/repository/AttachFileRepository.kt (87%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/attachFile => domain/attachFile/application}/port/out/DeleteAttachFilePort.kt (85%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/attachFile => domain/attachFile/application}/port/out/ExistsAttachFilePort.kt (88%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/attachFile => domain/attachFile/application}/port/out/FindAttachFilePort.kt (79%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/attachFile => domain/attachFile/application}/port/out/SaveAttachFilePort.kt (78%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/attachFile => domain/attachFile/application}/service/CreateAttachFileService.kt (82%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{model/attachFile => domain/attachFile/model}/AttachFile.kt (90%) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/in/CreateAttachFileUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/in/CreateAttachFileUseCase.kt deleted file mode 100644 index 240ad88..0000000 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/in/CreateAttachFileUseCase.kt +++ /dev/null @@ -1,18 +0,0 @@ -package hs.kr.entrydsm.feed.application.attachFile.port.`in` - -import hs.kr.entrydsm.feed.adapter.`in`.attachFile.dto.response.CreateAttachFileResponse -import org.springframework.web.multipart.MultipartFile - -/** - * 첨부 파일 관련 비즈니스 로직을 정의한 인터페이스입니다. - * 첨부 파일 업로드 기능을 제공합니다. - */ -interface CreateAttachFileUseCase { - /** - * 하나 이상의 첨부 파일을 업로드합니다. - * - * @param attachFile 업로드할 첨부 파일 목록 - * @return 생성된 첨부 파일 정보 응답 목록 - */ - fun execute(attachFile: List): List -} diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/attachFile/AttachFileWebAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/in/web/AttachFileWebAdapter.kt similarity index 89% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/attachFile/AttachFileWebAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/in/web/AttachFileWebAdapter.kt index ea40f4f..b49a451 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/attachFile/AttachFileWebAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/in/web/AttachFileWebAdapter.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.attachFile +package hs.kr.entrydsm.feed.domain.attachFile.adapter.`in`.web -import hs.kr.entrydsm.feed.application.attachFile.service.CreateAttachFileService +import hs.kr.entrydsm.feed.domain.attachFile.application.service.CreateAttachFileService import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestPart @@ -13,7 +13,7 @@ import org.springframework.web.multipart.MultipartFile * 이 클래스는 첨부 파일 업로드와 관련된 HTTP 엔드포인트를 제공하며, * 클라이언트의 요청을 적절한 서비스 메서드로 라우팅합니다. * - * @property createAttachFileService 첨부 파일 비즈니스 로직을 처리하는 서비스 + * @property createAttachFileUseCase 첨부 파일 비즈니스 로직을 처리하는 서비스 */ @RestController @RequestMapping("/attach-file") @@ -28,7 +28,7 @@ class AttachFileWebAdapter( * * @param attachFile 업로드할 첨부 파일 목록 (multipart/form-data 형식의 'attach_file' 파라미터로 전달) * @return 업로드된 첨부 파일 정보 목록 (CreateAttachFileResponse 리스트) - * + * * @throws org.springframework.web.multipart.MultipartException 파일 업로드에 실패한 경우 * @throws java.io.IOException 파일 저장 중 I/O 오류가 발생한 경우 * @throws hs.kr.entrydsm.feed.global.error.exception.InternalServerErrorException 내부 서버 오류가 발생한 경우 diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/attachFile/dto/response/CreateAttachFileResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/in/web/dto/response/CreateAttachFileResponse.kt similarity index 78% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/attachFile/dto/response/CreateAttachFileResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/in/web/dto/response/CreateAttachFileResponse.kt index edf81da..612d135 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/attachFile/dto/response/CreateAttachFileResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/in/web/dto/response/CreateAttachFileResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.attachFile.dto.response +package hs.kr.entrydsm.feed.domain.attachFile.adapter.`in`.web.dto.response /** * 첨부 파일 생성 응답을 위한 데이터 클래스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/attachFile/AttachFileJpaEntity.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/entity/AttachFileJpaEntity.kt similarity index 90% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/attachFile/AttachFileJpaEntity.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/entity/AttachFileJpaEntity.kt index 528210c..202c07e 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/attachFile/AttachFileJpaEntity.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/entity/AttachFileJpaEntity.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.out.entity.attachFile +package hs.kr.entrydsm.feed.domain.attachFile.adapter.out.entity import jakarta.persistence.Entity import jakarta.persistence.Id diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/attachFile/AttachFileMapper.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/mapper/AttachFileMapper.kt similarity index 79% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/attachFile/AttachFileMapper.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/mapper/AttachFileMapper.kt index 2919113..57f529f 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/attachFile/AttachFileMapper.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/mapper/AttachFileMapper.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.mapper.attachFile +package hs.kr.entrydsm.feed.domain.attachFile.adapter.out.mapper -import hs.kr.entrydsm.feed.adapter.out.entity.attachFile.AttachFileJpaEntity -import hs.kr.entrydsm.feed.model.attachFile.AttachFile +import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.entity.AttachFileJpaEntity +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile import org.mapstruct.Mapper /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/attachFile/AttachFilePersistenceAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt similarity index 78% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/attachFile/AttachFilePersistenceAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt index a3cce8a..71060ee 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/attachFile/AttachFilePersistenceAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt @@ -1,12 +1,12 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.attachFile +package hs.kr.entrydsm.feed.domain.attachFile.adapter.out.persistence -import hs.kr.entrydsm.feed.adapter.out.mapper.attachFile.AttachFileMapper -import hs.kr.entrydsm.feed.adapter.out.persistence.attachFile.repository.AttachFileRepository -import hs.kr.entrydsm.feed.application.attachFile.port.out.DeleteAttachFilePort -import hs.kr.entrydsm.feed.application.attachFile.port.out.ExistsAttachFilePort -import hs.kr.entrydsm.feed.application.attachFile.port.out.FindAttachFilePort -import hs.kr.entrydsm.feed.application.attachFile.port.out.SaveAttachFilePort -import hs.kr.entrydsm.feed.model.attachFile.AttachFile +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.DeleteAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.ExistsAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.FindAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.SaveAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.mapper.AttachFileMapper +import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.persistence.repository.AttachFileRepository +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile import org.springframework.stereotype.Component /** @@ -21,7 +21,7 @@ class AttachFilePersistenceAdapter( private val attachFileRepository: AttachFileRepository, private val attachFileMapper: AttachFileMapper, ) : ExistsAttachFilePort, DeleteAttachFilePort, SaveAttachFilePort, FindAttachFilePort { - + /** * 주어진 원본 파일명을 가진 첨부 파일이 존재하는지 확인합니다. * diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/attachFile/repository/AttachFileRepository.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/repository/AttachFileRepository.kt similarity index 87% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/attachFile/repository/AttachFileRepository.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/repository/AttachFileRepository.kt index fddde5b..b3612f0 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/attachFile/repository/AttachFileRepository.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/repository/AttachFileRepository.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.attachFile.repository +package hs.kr.entrydsm.feed.domain.attachFile.adapter.out.persistence.repository -import hs.kr.entrydsm.feed.adapter.out.entity.attachFile.AttachFileJpaEntity +import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.entity.AttachFileJpaEntity import org.springframework.data.jpa.repository.JpaRepository /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/DeleteAttachFilePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/DeleteAttachFilePort.kt similarity index 85% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/DeleteAttachFilePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/DeleteAttachFilePort.kt index 2c0b8a1..7149c28 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/DeleteAttachFilePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/DeleteAttachFilePort.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.attachFile.port.out +package hs.kr.entrydsm.feed.domain.attachFile.application.port.out /** * 첨부 파일 삭제를 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/ExistsAttachFilePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/ExistsAttachFilePort.kt similarity index 88% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/ExistsAttachFilePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/ExistsAttachFilePort.kt index 8e0ec12..3721b06 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/ExistsAttachFilePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/ExistsAttachFilePort.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.attachFile.port.out +package hs.kr.entrydsm.feed.domain.attachFile.application.port.out /** * 첨부 파일 존재 여부 확인을 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/FindAttachFilePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/FindAttachFilePort.kt similarity index 79% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/FindAttachFilePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/FindAttachFilePort.kt index 5c2c2ae..095e526 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/FindAttachFilePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/FindAttachFilePort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.attachFile.port.out +package hs.kr.entrydsm.feed.domain.attachFile.application.port.out -import hs.kr.entrydsm.feed.model.attachFile.AttachFile +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile /** * 첨부 파일 조회를 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/SaveAttachFilePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/SaveAttachFilePort.kt similarity index 78% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/SaveAttachFilePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/SaveAttachFilePort.kt index e9f8724..a90cac2 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/port/out/SaveAttachFilePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/SaveAttachFilePort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.attachFile.port.out +package hs.kr.entrydsm.feed.domain.attachFile.application.port.out -import hs.kr.entrydsm.feed.model.attachFile.AttachFile +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile /** * 첨부 파일 저장을 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/service/CreateAttachFileService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/service/CreateAttachFileService.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/service/CreateAttachFileService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/service/CreateAttachFileService.kt index 3d72272..4008a50 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/attachFile/service/CreateAttachFileService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/service/CreateAttachFileService.kt @@ -1,13 +1,13 @@ -package hs.kr.entrydsm.feed.application.attachFile.service +package hs.kr.entrydsm.feed.domain.attachFile.application.service -import hs.kr.entrydsm.feed.adapter.`in`.attachFile.dto.response.CreateAttachFileResponse -import hs.kr.entrydsm.feed.application.attachFile.port.`in`.CreateAttachFileUseCase -import hs.kr.entrydsm.feed.application.attachFile.port.out.DeleteAttachFilePort -import hs.kr.entrydsm.feed.application.attachFile.port.out.ExistsAttachFilePort -import hs.kr.entrydsm.feed.application.attachFile.port.out.SaveAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.adapter.`in`.web.dto.response.CreateAttachFileResponse +import hs.kr.entrydsm.feed.domain.attachFile.application.port.`in`.CreateAttachFileUseCase +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.DeleteAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.ExistsAttachFilePort +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.SaveAttachFilePort import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil -import hs.kr.entrydsm.feed.model.attachFile.AttachFile +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile import org.springframework.stereotype.Service import org.springframework.web.multipart.MultipartFile diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/attachFile/AttachFile.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/model/AttachFile.kt similarity index 90% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/attachFile/AttachFile.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/model/AttachFile.kt index eb8cddd..9e47888 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/attachFile/AttachFile.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/model/AttachFile.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.model.attachFile +package hs.kr.entrydsm.feed.domain.attachFile.model /** * 첨부 파일 정보를 나타내는 데이터 클래스입니다. From 306c7b623e7687e64e8b9cfa473c8fdfedc43628 Mon Sep 17 00:00:00 2001 From: coehgns Date: Mon, 18 Aug 2025 14:27:07 +0900 Subject: [PATCH 2/6] =?UTF-8?q?refactor=20(=20#27=20)=20:=20attachFile=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AttachFilePersistenceAdapter.kt | 7 ++----- .../port/in/CreateAttachFileUseCase.kt | 18 ++++++++++++++++++ .../application/port/out/AttachFilePort.kt | 11 +++++++++++ .../exception/AttachFileNotFoundException.kt | 2 +- 4 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/in/CreateAttachFileUseCase.kt create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/AttachFilePort.kt rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application => domain}/notice/exception/AttachFileNotFoundException.kt (87%) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt index 71060ee..be855df 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/adapter/out/persistence/AttachFilePersistenceAdapter.kt @@ -1,11 +1,8 @@ package hs.kr.entrydsm.feed.domain.attachFile.adapter.out.persistence -import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.DeleteAttachFilePort -import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.ExistsAttachFilePort -import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.FindAttachFilePort -import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.SaveAttachFilePort import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.mapper.AttachFileMapper import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.persistence.repository.AttachFileRepository +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.AttachFilePort import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile import org.springframework.stereotype.Component @@ -20,7 +17,7 @@ import org.springframework.stereotype.Component class AttachFilePersistenceAdapter( private val attachFileRepository: AttachFileRepository, private val attachFileMapper: AttachFileMapper, -) : ExistsAttachFilePort, DeleteAttachFilePort, SaveAttachFilePort, FindAttachFilePort { +) : AttachFilePort { /** * 주어진 원본 파일명을 가진 첨부 파일이 존재하는지 확인합니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/in/CreateAttachFileUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/in/CreateAttachFileUseCase.kt new file mode 100644 index 0000000..2821fd5 --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/in/CreateAttachFileUseCase.kt @@ -0,0 +1,18 @@ +package hs.kr.entrydsm.feed.domain.attachFile.application.port.`in` + +import hs.kr.entrydsm.feed.domain.attachFile.adapter.`in`.web.dto.response.CreateAttachFileResponse +import org.springframework.web.multipart.MultipartFile + +/** + * 첨부 파일 관련 비즈니스 로직을 정의한 인터페이스입니다. + * 첨부 파일 업로드 기능을 제공합니다. + */ +interface CreateAttachFileUseCase { + /** + * 하나 이상의 첨부 파일을 업로드합니다. + * + * @param attachFile 업로드할 첨부 파일 목록 + * @return 생성된 첨부 파일 정보 응답 목록 + */ + fun execute(attachFile: List): List +} diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/AttachFilePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/AttachFilePort.kt new file mode 100644 index 0000000..6f2e330 --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/attachFile/application/port/out/AttachFilePort.kt @@ -0,0 +1,11 @@ +package hs.kr.entrydsm.feed.domain.attachFile.application.port.out + +/** + * 파일 관련 모든 포트 인터페이스를 통합한 포트입니다. + * 파일 데이터의 CRUD 작업을 위한 모든 인터페이스를 상속받습니다. + */ +interface AttachFilePort : + DeleteAttachFilePort, + ExistsAttachFilePort, + FindAttachFilePort, + SaveAttachFilePort diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/exception/AttachFileNotFoundException.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/exception/AttachFileNotFoundException.kt similarity index 87% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/exception/AttachFileNotFoundException.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/exception/AttachFileNotFoundException.kt index b9b4d0b..8184d05 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/exception/AttachFileNotFoundException.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/exception/AttachFileNotFoundException.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.notice.exception +package hs.kr.entrydsm.feed.domain.notice.exception import hs.kr.entrydsm.feed.global.error.exception.CasperException import hs.kr.entrydsm.feed.global.error.exception.ErrorCode From ed9f0abb8aefe0fe7233ef9eeed4e4f2e625df1e Mon Sep 17 00:00:00 2001 From: coehgns Date: Mon, 18 Aug 2025 14:28:22 +0900 Subject: [PATCH 3/6] =?UTF-8?q?refactor=20(=20#27=20)=20:=20faq=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../faq/adapter/in/web}/FaqWebAdapter.kt | 36 +++++++++++-------- .../in/web}/dto/request/CreateFaqRequest.kt | 4 +-- .../in/web}/dto/request/UpdateFaqRequest.kt | 4 +-- .../web}/dto/response/FaqDetailsResponse.kt | 4 +-- .../adapter/in/web}/dto/response/FaqDto.kt | 4 +-- .../in/web}/dto/response/FaqListResponse.kt | 2 +- .../dto/response/FaqTitleAndTypeResponse.kt | 4 +-- .../in/web}/dto/response/FaqTitleResponse.kt | 2 +- .../faq/adapter/out/entity}/FaqJpaEntity.kt | 4 +-- .../faq/adapter/out/mapper}/FaqMapper.kt | 6 ++-- .../out/persistence}/FaqPersistenceAdapter.kt | 16 ++++----- .../persistence}/repository/FaqRepository.kt | 6 ++-- .../application}/port/in/CreateFaqUseCase.kt | 4 +-- .../application}/port/in/DeleteFaqUseCase.kt | 2 +- .../port/in/QueryFaqDetailsUseCase.kt | 4 +-- .../port/in/QueryFaqListByTypeUseCase.kt | 6 ++-- .../port/in/QueryFaqListUseCase.kt | 4 +-- .../port/in/QueryTopFaqUseCase.kt | 4 +-- .../application}/port/in/UpdateFaqUseCase.kt | 4 +-- .../application}/port/out/DeleteFaqPort.kt | 4 +-- .../faq/application/port/out/FaqPort.kt | 10 ++++++ .../faq/application}/port/out/FindFaqPort.kt | 6 ++-- .../faq/application}/port/out/SaveFaqPort.kt | 4 +-- .../application}/service/CreateFaqService.kt | 10 +++--- .../application}/service/DeleteFaqService.kt | 12 +++---- .../service/QueryFaqDetailsService.kt | 12 +++---- .../service/QueryFaqListByTypeService.kt | 12 +++---- .../service/QueryFaqListService.kt | 10 +++--- .../service/QueryTopFaqService.kt | 8 ++--- .../application}/service/UpdateFaqService.kt | 12 +++---- .../faq/exception/FaqNotFoundException.kt | 2 +- .../{model/faq => domain/faq/model}/Faq.kt | 4 +-- .../faq => domain/faq/model}/type/FaqType.kt | 2 +- .../kafka/consumer/DeleteFaqTableConsumer.kt | 2 +- 34 files changed, 122 insertions(+), 108 deletions(-) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/FaqWebAdapter.kt (69%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/request/CreateFaqRequest.kt (82%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/request/UpdateFaqRequest.kt (82%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/response/FaqDetailsResponse.kt (78%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/response/FaqDto.kt (81%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/response/FaqListResponse.kt (79%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/response/FaqTitleAndTypeResponse.kt (76%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/faq => domain/faq/adapter/in/web}/dto/response/FaqTitleResponse.kt (85%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/entity/faq => domain/faq/adapter/out/entity}/FaqJpaEntity.kt (89%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/mapper/faq => domain/faq/adapter/out/mapper}/FaqMapper.kt (80%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/faq => domain/faq/adapter/out/persistence}/FaqPersistenceAdapter.kt (81%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/faq => domain/faq/adapter/out/persistence}/repository/FaqRepository.kt (82%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/CreateFaqUseCase.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/DeleteFaqUseCase.kt (85%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/QueryFaqDetailsUseCase.kt (75%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/QueryFaqListByTypeUseCase.kt (69%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/QueryFaqListUseCase.kt (69%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/QueryTopFaqUseCase.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/in/UpdateFaqUseCase.kt (76%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/out/DeleteFaqPort.kt (73%) create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FaqPort.kt rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/out/FindFaqPort.kt (86%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/port/out/SaveFaqPort.kt (78%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/CreateFaqService.kt (75%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/DeleteFaqService.kt (59%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/QueryFaqDetailsService.kt (62%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/QueryFaqListByTypeService.kt (67%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/QueryFaqListService.kt (68%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/QueryTopFaqService.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/faq => domain/faq/application}/service/UpdateFaqService.kt (72%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application => domain}/faq/exception/FaqNotFoundException.kt (87%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{model/faq => domain/faq/model}/Faq.kt (92%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{model/faq => domain/faq/model}/type/FaqType.kt (65%) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/FaqWebAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/FaqWebAdapter.kt similarity index 69% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/FaqWebAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/FaqWebAdapter.kt index 2ccf174..88243ab 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/FaqWebAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/FaqWebAdapter.kt @@ -1,17 +1,17 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request.CreateFaqRequest -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request.UpdateFaqRequest -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqDetailsResponse -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqListResponse -import hs.kr.entrydsm.feed.application.faq.port.`in`.CreateFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.`in`.DeleteFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryFaqDetailsUseCase -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryFaqListByTypeUseCase -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryFaqListUseCase -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryTopFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.`in`.UpdateFaqUseCase -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request.CreateFaqRequest +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request.UpdateFaqRequest +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqDetailsResponse +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqListResponse +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.CreateFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.DeleteFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryFaqDetailsUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryFaqListByTypeUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryFaqListUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryTopFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.UpdateFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import org.springframework.http.HttpStatus import org.springframework.validation.annotation.Validated import org.springframework.web.bind.annotation.DeleteMapping @@ -30,9 +30,15 @@ import java.util.UUID * FAQ 관련 HTTP 요청을 처리하는 웹 어댑터 클래스입니다. * * 이 클래스는 FAQ와 관련된 모든 HTTP 엔드포인트를 제공하며, - * 클라이언트의 요청을 적절한 서비스 메서드로 라우팅합니다. + * 클라이언트의 요청을 적절한 유스케이스로 라우팅합니다. * - * @property faqService FAQ 비즈니스 로직을 처리하는 서비스 + * @property createFaqUseCase FAQ 생성 유스케이스 + * @property deleteFaqUseCase FAQ 삭제 유스케이스 + * @property queryFaqDetailsUseCase FAQ 상세 정보 조회 유스케이스 + * @property queryFaqListByTypeUseCase FAQ 유형별 목록 조회 유스케이스 + * @property queryFaqListUseCase FAQ 전체 목록 조회 유스케이스 + * @property queryTopFaqUseCase 최근 FAQ 목록 조회 유스케이스 + * @property updateFaqUseCase FAQ 수정 유스케이스 */ @RequestMapping("/faq") @RestController diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/request/CreateFaqRequest.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/request/CreateFaqRequest.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/request/CreateFaqRequest.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/request/CreateFaqRequest.kt index c3d35d2..481cab0 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/request/CreateFaqRequest.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/request/CreateFaqRequest.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/request/UpdateFaqRequest.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/request/UpdateFaqRequest.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/request/UpdateFaqRequest.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/request/UpdateFaqRequest.kt index 5b352e7..e9398dd 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/request/UpdateFaqRequest.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/request/UpdateFaqRequest.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqDetailsResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqDetailsResponse.kt similarity index 78% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqDetailsResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqDetailsResponse.kt index d367923..361fc7c 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqDetailsResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqDetailsResponse.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import java.time.LocalDateTime /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqDto.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqDto.kt similarity index 81% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqDto.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqDto.kt index 19363e4..622967a 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqDto.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqDto.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import java.time.LocalDateTime import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqListResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqListResponse.kt similarity index 79% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqListResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqListResponse.kt index 48512de..fd7d5ef 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqListResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqListResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response /** * FAQ 목록 응답을 위한 데이터 클래스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqTitleAndTypeResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqTitleAndTypeResponse.kt similarity index 76% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqTitleAndTypeResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqTitleAndTypeResponse.kt index 37537d7..bb70bf5 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqTitleAndTypeResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqTitleAndTypeResponse.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqTitleResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqTitleResponse.kt similarity index 85% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqTitleResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqTitleResponse.kt index 5b9289c..269c25d 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/faq/dto/response/FaqTitleResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/in/web/dto/response/FaqTitleResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response +package hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/faq/FaqJpaEntity.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/entity/FaqJpaEntity.kt similarity index 89% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/faq/FaqJpaEntity.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/entity/FaqJpaEntity.kt index c3d8457..219d7d4 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/faq/FaqJpaEntity.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/entity/FaqJpaEntity.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.entity.faq +package hs.kr.entrydsm.feed.domain.faq.adapter.out.entity import hs.kr.entrydsm.feed.global.entity.BaseEntity -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import jakarta.persistence.Column import jakarta.persistence.Entity import jakarta.persistence.EnumType diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/faq/FaqMapper.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/mapper/FaqMapper.kt similarity index 80% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/faq/FaqMapper.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/mapper/FaqMapper.kt index cbfb69b..57656cd 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/faq/FaqMapper.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/mapper/FaqMapper.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.mapper.faq +package hs.kr.entrydsm.feed.domain.faq.adapter.out.mapper -import hs.kr.entrydsm.feed.adapter.out.entity.faq.FaqJpaEntity -import hs.kr.entrydsm.feed.model.faq.Faq +import hs.kr.entrydsm.feed.domain.faq.adapter.out.entity.FaqJpaEntity +import hs.kr.entrydsm.feed.domain.faq.model.Faq import org.mapstruct.Mapper /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/faq/FaqPersistenceAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/persistence/FaqPersistenceAdapter.kt similarity index 81% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/faq/FaqPersistenceAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/persistence/FaqPersistenceAdapter.kt index 9dbf9ca..501a13f 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/faq/FaqPersistenceAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/persistence/FaqPersistenceAdapter.kt @@ -1,12 +1,10 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.faq +package hs.kr.entrydsm.feed.domain.faq.adapter.out.persistence -import hs.kr.entrydsm.feed.adapter.out.mapper.faq.FaqMapper -import hs.kr.entrydsm.feed.adapter.out.persistence.faq.repository.FaqRepository -import hs.kr.entrydsm.feed.application.faq.port.out.DeleteFaqPort -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort -import hs.kr.entrydsm.feed.application.faq.port.out.SaveFaqPort -import hs.kr.entrydsm.feed.model.faq.Faq -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.adapter.out.mapper.FaqMapper +import hs.kr.entrydsm.feed.domain.faq.adapter.out.persistence.repository.FaqRepository +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FaqPort +import hs.kr.entrydsm.feed.domain.faq.model.Faq +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Component import java.util.UUID @@ -21,7 +19,7 @@ import java.util.UUID class FaqPersistenceAdapter( private val faqRepository: FaqRepository, private val faqMapper: FaqMapper, -) : SaveFaqPort, DeleteFaqPort, FindFaqPort { +) : FaqPort { /** * FAQ를 저장하거나 업데이트합니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/faq/repository/FaqRepository.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/persistence/repository/FaqRepository.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/faq/repository/FaqRepository.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/persistence/repository/FaqRepository.kt index bc8d3d8..dabf9bb 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/faq/repository/FaqRepository.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/adapter/out/persistence/repository/FaqRepository.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.faq.repository +package hs.kr.entrydsm.feed.domain.faq.adapter.out.persistence.repository -import hs.kr.entrydsm.feed.adapter.out.entity.faq.FaqJpaEntity -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.adapter.out.entity.FaqJpaEntity +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import org.springframework.data.jpa.repository.JpaRepository import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/CreateFaqUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/CreateFaqUseCase.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/CreateFaqUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/CreateFaqUseCase.kt index cc173bb..fc36b1d 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/CreateFaqUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/CreateFaqUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request.CreateFaqRequest +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request.CreateFaqRequest /** * FAQ 생성을 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/DeleteFaqUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/DeleteFaqUseCase.kt similarity index 85% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/DeleteFaqUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/DeleteFaqUseCase.kt index 7e5ae7b..d7b7119 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/DeleteFaqUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/DeleteFaqUseCase.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqDetailsUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqDetailsUseCase.kt similarity index 75% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqDetailsUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqDetailsUseCase.kt index f5b702a..cc39b05 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqDetailsUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqDetailsUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqDetailsResponse +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqDetailsResponse import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqListByTypeUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqListByTypeUseCase.kt similarity index 69% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqListByTypeUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqListByTypeUseCase.kt index f92c9bb..3586109 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqListByTypeUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqListByTypeUseCase.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqListResponse -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqListResponse +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType /** * 특정 유형의 FAQ 목록 조회를 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqListUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqListUseCase.kt similarity index 69% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqListUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqListUseCase.kt index fb89eab..fc5ec84 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryFaqListUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryFaqListUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqListResponse +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqListResponse /** * FAQ 목록 조회를 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryTopFaqUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryTopFaqUseCase.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryTopFaqUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryTopFaqUseCase.kt index 1553574..5d75581 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/QueryTopFaqUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/QueryTopFaqUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqTitleResponse +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqTitleResponse /** * 상위 FAQ 조회를 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/UpdateFaqUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/UpdateFaqUseCase.kt similarity index 76% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/UpdateFaqUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/UpdateFaqUseCase.kt index 2953f43..2c8d919 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/in/UpdateFaqUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/in/UpdateFaqUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.`in` +package hs.kr.entrydsm.feed.domain.faq.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request.UpdateFaqRequest +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request.UpdateFaqRequest import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/DeleteFaqPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/DeleteFaqPort.kt similarity index 73% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/DeleteFaqPort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/DeleteFaqPort.kt index b743fc5..3646846 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/DeleteFaqPort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/DeleteFaqPort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.out +package hs.kr.entrydsm.feed.domain.faq.application.port.out -import hs.kr.entrydsm.feed.model.faq.Faq +import hs.kr.entrydsm.feed.domain.faq.model.Faq /** * FAQ 삭제를 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FaqPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FaqPort.kt new file mode 100644 index 0000000..f6f238c --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FaqPort.kt @@ -0,0 +1,10 @@ +package hs.kr.entrydsm.feed.domain.faq.application.port.out + +/** + * FAQ 관련 모든 포트 인터페이스를 통합한 포트입니다. + * FAQ 데이터의 CRUD 작업을 위한 모든 인터페이스를 상속받습니다. + */ +interface FaqPort : + DeleteFaqPort, + FindFaqPort, + SaveFaqPort diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/FindFaqPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FindFaqPort.kt similarity index 86% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/FindFaqPort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FindFaqPort.kt index 1924607..e5e0a11 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/FindFaqPort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/FindFaqPort.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.application.faq.port.out +package hs.kr.entrydsm.feed.domain.faq.application.port.out -import hs.kr.entrydsm.feed.model.faq.Faq -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.Faq +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/SaveFaqPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/SaveFaqPort.kt similarity index 78% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/SaveFaqPort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/SaveFaqPort.kt index 7a9583e..885c836 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/port/out/SaveFaqPort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/port/out/SaveFaqPort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.faq.port.out +package hs.kr.entrydsm.feed.domain.faq.application.port.out -import hs.kr.entrydsm.feed.model.faq.Faq +import hs.kr.entrydsm.feed.domain.faq.model.Faq /** * FAQ 저장을 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/CreateFaqService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/CreateFaqService.kt similarity index 75% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/CreateFaqService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/CreateFaqService.kt index 992d906..2cf45bd 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/CreateFaqService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/CreateFaqService.kt @@ -1,10 +1,10 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request.CreateFaqRequest -import hs.kr.entrydsm.feed.application.faq.port.`in`.CreateFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.SaveFaqPort +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request.CreateFaqRequest +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.CreateFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.SaveFaqPort import hs.kr.entrydsm.feed.global.utils.user.UserUtils -import hs.kr.entrydsm.feed.model.faq.Faq +import hs.kr.entrydsm.feed.domain.faq.model.Faq import org.springframework.stereotype.Service /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/DeleteFaqService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/DeleteFaqService.kt similarity index 59% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/DeleteFaqService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/DeleteFaqService.kt index 5b28745..b6bc0ee 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/DeleteFaqService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/DeleteFaqService.kt @@ -1,9 +1,9 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.application.faq.exception.FaqNotFoundException -import hs.kr.entrydsm.feed.application.faq.port.`in`.DeleteFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.DeleteFaqPort -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.DeleteFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.DeleteFaqPort +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.exception.FaqNotFoundException import org.springframework.stereotype.Service import java.util.UUID @@ -22,7 +22,7 @@ class DeleteFaqService( * 지정된 ID의 FAQ를 삭제합니다. * * @param faqId 삭제할 FAQ의 고유 식별자 - * @throws hs.kr.entrydsm.feed.application.faq.exception.FaqNotFoundException 지정된 ID의 FAQ를 찾을 수 없는 경우 + * @throws hs.kr.entrydsm.feed.domain.faq.exception.FaqNotFoundException ID의 FAQ를 찾을 수 없는 경우 */ override fun execute(faqId: UUID) { val faq = findFaqPort.findByIdOrNull(faqId) ?: throw FaqNotFoundException diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqDetailsService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqDetailsService.kt similarity index 62% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqDetailsService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqDetailsService.kt index 8d0b89c..15256b6 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqDetailsService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqDetailsService.kt @@ -1,9 +1,9 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqDetailsResponse -import hs.kr.entrydsm.feed.application.faq.exception.FaqNotFoundException -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryFaqDetailsUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqDetailsResponse +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryFaqDetailsUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.exception.FaqNotFoundException import org.springframework.stereotype.Service import java.util.UUID @@ -21,7 +21,7 @@ class QueryFaqDetailsService( * * @param faqId 조회할 FAQ의 고유 식별자 * @return FAQ 상세 정보 응답 - * @throws hs.kr.entrydsm.feed.application.faq.exception.FaqNotFoundException 지정된 ID의 FAQ를 찾을 수 없는 경우 + * @throws hs.kr.entrydsm.feed.domain.faq.exception.FaqNotFoundException 지정된 ID의 FAQ를 찾을 수 없는 경우 */ override fun execute(faqId: UUID): FaqDetailsResponse { val faq = findFaqPort.findByIdOrNull(faqId) ?: throw FaqNotFoundException diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqListByTypeService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqListByTypeService.kt similarity index 67% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqListByTypeService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqListByTypeService.kt index 9aa1697..fa8038d 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqListByTypeService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqListByTypeService.kt @@ -1,10 +1,10 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqDto -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqListResponse -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryFaqListByTypeUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqDto +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqListResponse +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryFaqListByTypeUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import org.springframework.stereotype.Service /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqListService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqListService.kt similarity index 68% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqListService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqListService.kt index 9602d1c..f105740 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryFaqListService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryFaqListService.kt @@ -1,9 +1,9 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqDto -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqListResponse -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryFaqListUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqDto +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqListResponse +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryFaqListUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FindFaqPort import org.springframework.stereotype.Service /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryTopFaqService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryTopFaqService.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryTopFaqService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryTopFaqService.kt index 995244b..c92623b 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/QueryTopFaqService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/QueryTopFaqService.kt @@ -1,8 +1,8 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.response.FaqTitleResponse -import hs.kr.entrydsm.feed.application.faq.port.`in`.QueryTopFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.response.FaqTitleResponse +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.QueryTopFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FindFaqPort import org.springframework.stereotype.Service /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/UpdateFaqService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/UpdateFaqService.kt similarity index 72% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/UpdateFaqService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/UpdateFaqService.kt index 09385bf..5d5e4ab 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/service/UpdateFaqService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/application/service/UpdateFaqService.kt @@ -1,9 +1,9 @@ -package hs.kr.entrydsm.feed.application.faq.service +package hs.kr.entrydsm.feed.domain.faq.application.service -import hs.kr.entrydsm.feed.adapter.`in`.faq.dto.request.UpdateFaqRequest -import hs.kr.entrydsm.feed.application.faq.exception.FaqNotFoundException -import hs.kr.entrydsm.feed.application.faq.port.`in`.UpdateFaqUseCase -import hs.kr.entrydsm.feed.application.faq.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.adapter.`in`.web.dto.request.UpdateFaqRequest +import hs.kr.entrydsm.feed.domain.faq.application.port.`in`.UpdateFaqUseCase +import hs.kr.entrydsm.feed.domain.faq.application.port.out.FindFaqPort +import hs.kr.entrydsm.feed.domain.faq.exception.FaqNotFoundException import hs.kr.entrydsm.feed.global.utils.user.UserUtils import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional @@ -26,7 +26,7 @@ class UpdateFaqService( * * @param faqId 업데이트할 FAQ의 고유 식별자 * @param updateFaqRequest FAQ 업데이트 요청 데이터 - * @throws hs.kr.entrydsm.feed.application.faq.exception.FaqNotFoundException 지정된 ID의 FAQ를 찾을 수 없는 경우 + * @throws hs.kr.entrydsm.feed.domain.faq.exception.FaqNotFoundException 지정된 ID의 FAQ를 찾을 수 없는 경우 * @throws hs.kr.entrydsm.feed.global.exception.UnauthorizedException 현재 사용자에게 권한이 없는 경우 */ override fun execute( diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/exception/FaqNotFoundException.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/exception/FaqNotFoundException.kt similarity index 87% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/exception/FaqNotFoundException.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/exception/FaqNotFoundException.kt index 1e2aaec..386e1fe 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/faq/exception/FaqNotFoundException.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/exception/FaqNotFoundException.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.faq.exception +package hs.kr.entrydsm.feed.domain.faq.exception import hs.kr.entrydsm.feed.global.error.exception.CasperException import hs.kr.entrydsm.feed.global.error.exception.ErrorCode diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/faq/Faq.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/model/Faq.kt similarity index 92% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/faq/Faq.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/model/Faq.kt index 52e8997..c1995ce 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/faq/Faq.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/model/Faq.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.model.faq +package hs.kr.entrydsm.feed.domain.faq.model -import hs.kr.entrydsm.feed.model.faq.type.FaqType +import hs.kr.entrydsm.feed.domain.faq.model.type.FaqType import java.time.LocalDateTime import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/faq/type/FaqType.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/model/type/FaqType.kt similarity index 65% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/faq/type/FaqType.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/model/type/FaqType.kt index 64869a1..0e803fa 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/faq/type/FaqType.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/faq/model/type/FaqType.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.model.faq.type +package hs.kr.entrydsm.feed.domain.faq.model.type enum class FaqType { ADMISSION, diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/infrastructure/kafka/consumer/DeleteFaqTableConsumer.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/infrastructure/kafka/consumer/DeleteFaqTableConsumer.kt index ed8b911..55c7ace 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/infrastructure/kafka/consumer/DeleteFaqTableConsumer.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/infrastructure/kafka/consumer/DeleteFaqTableConsumer.kt @@ -1,6 +1,6 @@ package hs.kr.entrydsm.feed.infrastructure.kafka.consumer -import hs.kr.entrydsm.feed.adapter.out.persistence.faq.repository.FaqRepository +import hs.kr.entrydsm.feed.domain.faq.adapter.out.persistence.repository.FaqRepository import hs.kr.entrydsm.feed.infrastructure.kafka.configuration.KafkaTopics import org.springframework.kafka.annotation.KafkaListener import org.springframework.stereotype.Service From e6e3dcdce8ec68e048739b0354908fcef8eb9798 Mon Sep 17 00:00:00 2001 From: coehgns Date: Mon, 18 Aug 2025 14:28:49 +0900 Subject: [PATCH 4/6] =?UTF-8?q?refactor=20(=20#27=20)=20:=20reserve=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reserve/adapter/in/web}/ReserveWebAdapter.kt | 6 +++--- .../hs/kr/entrydsm/feed/domain/reserve/adapter/out/.gitkeep | 0 .../reserve/application}/port/in/GetReserveUseCase.kt | 2 +- .../feed/domain/reserve/application/port/out/.gitkeep | 0 .../reserve/application}/service/GetReserveService.kt | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/reserve => domain/reserve/adapter/in/web}/ReserveWebAdapter.kt (77%) create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/adapter/out/.gitkeep rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/reserve => domain/reserve/application}/port/in/GetReserveUseCase.kt (82%) create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/port/out/.gitkeep rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/reserve => domain/reserve/application}/service/GetReserveService.kt (83%) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/reserve/ReserveWebAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/adapter/in/web/ReserveWebAdapter.kt similarity index 77% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/reserve/ReserveWebAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/adapter/in/web/ReserveWebAdapter.kt index 2ffc6d9..0ddce2a 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/reserve/ReserveWebAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/adapter/in/web/ReserveWebAdapter.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.reserve +package hs.kr.entrydsm.feed.domain.reserve.adapter.`in`.web -import hs.kr.entrydsm.feed.application.reserve.port.`in`.GetReserveUseCase +import hs.kr.entrydsm.feed.domain.reserve.application.port.`in`.GetReserveUseCase import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController * 이 클래스는 예약 링크 조회와 관련된 HTTP 엔드포인트를 제공하며, * 클라이언트의 요청을 적절한 서비스 메서드로 라우팅합니다. * - * @property reserveService 예약 링크 비즈니스 로직을 처리하는 서비스 + * @property getReserveUseCase 예약 링크 비즈니스 로직을 처리하는 서비스 */ @RestController @RequestMapping("/reserve") diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/adapter/out/.gitkeep b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/adapter/out/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/port/in/GetReserveUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/port/in/GetReserveUseCase.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/port/in/GetReserveUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/port/in/GetReserveUseCase.kt index b5a3715..bc8fd47 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/port/in/GetReserveUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/port/in/GetReserveUseCase.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.reserve.port.`in` +package hs.kr.entrydsm.feed.domain.reserve.application.port.`in` /** * 예약 관련 비즈니스 로직을 정의한 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/port/out/.gitkeep b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/port/out/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/service/GetReserveService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/service/GetReserveService.kt similarity index 83% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/service/GetReserveService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/service/GetReserveService.kt index 7d327b1..e4c1984 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/service/GetReserveService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/reserve/application/service/GetReserveService.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.reserve.service +package hs.kr.entrydsm.feed.domain.reserve.application.service -import hs.kr.entrydsm.feed.application.reserve.port.`in`.GetReserveUseCase +import hs.kr.entrydsm.feed.domain.reserve.application.port.`in`.GetReserveUseCase import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Service From c98aee70014e47633ef7e578587e2eb5d1ee5a7b Mon Sep 17 00:00:00 2001 From: coehgns Date: Mon, 18 Aug 2025 14:29:30 +0900 Subject: [PATCH 5/6] =?UTF-8?q?refactor=20(=20#27=20)=20:=20notice=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/in/web}/NoticeWebAdapter.kt | 38 +++++++++++-------- .../web}/dto/request/CreateNoticeRequest.kt | 4 +- .../web}/dto/request/UpdateNoticeRequest.kt | 4 +- .../in/web}/dto/response/NoticeResponse.kt | 4 +- .../response/QueryDetailsNoticeResponse.kt | 4 +- .../dto/response/QueryListNoticeResponse.kt | 2 +- .../dto/response/QueryNoticeTitleResponse.kt | 2 +- .../dto/response/UploadNoticeImageResponse.kt | 2 +- .../adapter/out/entity}/NoticeJpaEntity.kt | 8 ++-- .../adapter/out/mapper}/NoticeMapper.kt | 6 +-- .../persistence}/NoticePersistenceAdapter.kt | 16 ++++---- .../repository/NoticeRepository.kt | 6 +-- .../port/in/CreateNoticeUseCase.kt | 4 +- .../port/in/DeleteNoticeUseCase.kt | 2 +- .../port/in/QueryDetailsNoticeUseCase.kt | 4 +- .../port/in/QueryNoticeListByTypeUseCase.kt | 6 +-- .../port/in/QueryNoticeTitleUseCase.kt | 4 +- .../port/in/UpdateNoticeUseCase.kt | 4 +- .../port/in/UploadNoticeImageUseCase.kt | 4 +- .../application}/port/out/DeleteNoticePort.kt | 4 +- .../application}/port/out/FindNoticePort.kt | 6 +-- .../notice/application/port/out/NoticePort.kt | 10 +++++ .../application}/port/out/SaveNoticePort.kt | 4 +- .../service/CreateNoticeService.kt | 16 ++++---- .../service/DeleteNoticeService.kt | 12 +++--- .../service/QueryDetailsNoticeService.kt | 14 +++---- .../service/QueryNoticeListByTypeService.kt | 14 +++---- .../service/QueryNoticeTitleService.kt | 8 ++-- .../service/UpdateNoticeService.kt | 22 +++++------ .../service/UploadNoticeImageService.kt | 6 +-- .../exception/NoticeNotFoundException.kt | 2 +- .../notice => domain/notice/model}/Notice.kt | 6 +-- .../notice/model}/type/NoticeType.kt | 2 +- 33 files changed, 132 insertions(+), 118 deletions(-) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/NoticeWebAdapter.kt (67%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/request/CreateNoticeRequest.kt (92%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/request/UpdateNoticeRequest.kt (92%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/response/NoticeResponse.kt (79%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/response/QueryDetailsNoticeResponse.kt (89%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/response/QueryListNoticeResponse.kt (82%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/response/QueryNoticeTitleResponse.kt (86%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/notice => domain/notice/adapter/in/web}/dto/response/UploadNoticeImageResponse.kt (82%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/entity/notice => domain/notice/adapter/out/entity}/NoticeJpaEntity.kt (87%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/mapper/notice => domain/notice/adapter/out/mapper}/NoticeMapper.kt (80%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/notice => domain/notice/adapter/out/persistence}/NoticePersistenceAdapter.kt (79%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/notice => domain/notice/adapter/out/persistence}/repository/NoticeRepository.kt (75%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/CreateNoticeUseCase.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/DeleteNoticeUseCase.kt (86%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/QueryDetailsNoticeUseCase.kt (76%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/QueryNoticeListByTypeUseCase.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/QueryNoticeTitleUseCase.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/UpdateNoticeUseCase.kt (80%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/in/UploadNoticeImageUseCase.kt (77%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/out/DeleteNoticePort.kt (74%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/out/FindNoticePort.kt (83%) create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/NoticePort.kt rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/port/out/SaveNoticePort.kt (77%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/CreateNoticeService.kt (72%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/DeleteNoticeService.kt (61%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/QueryDetailsNoticeService.kt (77%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/QueryNoticeListByTypeService.kt (75%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/QueryNoticeTitleService.kt (72%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/UpdateNoticeService.kt (73%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/notice => domain/notice/application}/service/UploadNoticeImageService.kt (80%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application => domain}/notice/exception/NoticeNotFoundException.kt (87%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{model/notice => domain/notice/model}/Notice.kt (91%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{model/notice => domain/notice/model}/type/NoticeType.kt (84%) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/NoticeWebAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/NoticeWebAdapter.kt similarity index 67% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/NoticeWebAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/NoticeWebAdapter.kt index 19a128e..ded7ade 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/NoticeWebAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/NoticeWebAdapter.kt @@ -1,19 +1,19 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request.CreateNoticeRequest -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request.UpdateNoticeRequest -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryDetailsNoticeResponse -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryListNoticeResponse -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryNoticeTitleResponse -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.UploadNoticeImageResponse -import hs.kr.entrydsm.feed.application.notice.port.`in`.CreateNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.`in`.DeleteNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.`in`.QueryDetailsNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.`in`.QueryNoticeListByTypeUseCase -import hs.kr.entrydsm.feed.application.notice.port.`in`.QueryNoticeTitleUseCase -import hs.kr.entrydsm.feed.application.notice.port.`in`.UpdateNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.`in`.UploadNoticeImageUseCase -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request.CreateNoticeRequest +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request.UpdateNoticeRequest +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryDetailsNoticeResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryListNoticeResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryNoticeTitleResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.UploadNoticeImageResponse +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.CreateNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.DeleteNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.QueryDetailsNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.QueryNoticeListByTypeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.QueryNoticeTitleUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.UpdateNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.UploadNoticeImageUseCase +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import jakarta.validation.Valid import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity @@ -27,7 +27,13 @@ import java.util.UUID * 이 클래스는 공지사항과 관련된 모든 HTTP 엔드포인트를 제공하며, * 클라이언트의 요청을 적절한 서비스 메서드로 라우팅합니다. * - * @property noticeService 공지사항 비즈니스 로직을 처리하는 서비스 + * @property createNoticeUseCase 공지사항 생성 유스케이스 + * @property updateNoticeUseCase 공지사항 수정 유스케이스 + * @property deleteNoticeUseCase 공지사항 삭제 유스케이스 + * @property queryDetailsNoticeUseCase 공지사항 상세 정보 조회 유스케이스 + * @property queryNoticeTitleUseCase 공지사항 제목 목록 조회 유스케이스 + * @property uploadNoticeImageUseCase 공지사항 이미지 업로드 유스케이스 + * @property queryListNoticeListByTypeUseCase 공지사항 유형별 목록 조회 유스케이스 */ @RestController @RequestMapping("/notice") diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/request/CreateNoticeRequest.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/request/CreateNoticeRequest.kt similarity index 92% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/request/CreateNoticeRequest.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/request/CreateNoticeRequest.kt index 1dae02b..d2a852d 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/request/CreateNoticeRequest.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/request/CreateNoticeRequest.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.NotNull import jakarta.validation.constraints.Size diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/request/UpdateNoticeRequest.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/request/UpdateNoticeRequest.kt similarity index 92% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/request/UpdateNoticeRequest.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/request/UpdateNoticeRequest.kt index 7cc8a18..dd10756 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/request/UpdateNoticeRequest.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/request/UpdateNoticeRequest.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.NotNull import jakarta.validation.constraints.Size diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/NoticeResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/NoticeResponse.kt similarity index 79% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/NoticeResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/NoticeResponse.kt index a152a78..938a4b6 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/NoticeResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/NoticeResponse.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import java.time.LocalDateTime import java.util.* diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryDetailsNoticeResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryDetailsNoticeResponse.kt similarity index 89% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryDetailsNoticeResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryDetailsNoticeResponse.kt index dead3d3..33ed40b 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryDetailsNoticeResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryDetailsNoticeResponse.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import java.time.LocalDateTime /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryListNoticeResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryListNoticeResponse.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryListNoticeResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryListNoticeResponse.kt index 91ac602..c7b249e 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryListNoticeResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryListNoticeResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response /** * 공지사항 목록 조회 응답을 위한 데이터 클래스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryNoticeTitleResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryNoticeTitleResponse.kt similarity index 86% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryNoticeTitleResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryNoticeTitleResponse.kt index 69a1f86..ff733ad 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/QueryNoticeTitleResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/QueryNoticeTitleResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response import java.time.LocalDateTime import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/UploadNoticeImageResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/UploadNoticeImageResponse.kt similarity index 82% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/UploadNoticeImageResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/UploadNoticeImageResponse.kt index d5fb836..d8a9efc 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/notice/dto/response/UploadNoticeImageResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/in/web/dto/response/UploadNoticeImageResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response +package hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response /** * 공지사항 이미지 업로드 응답을 위한 데이터 클래스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/notice/NoticeJpaEntity.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/entity/NoticeJpaEntity.kt similarity index 87% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/notice/NoticeJpaEntity.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/entity/NoticeJpaEntity.kt index 0454100..2bb8a2e 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/notice/NoticeJpaEntity.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/entity/NoticeJpaEntity.kt @@ -1,8 +1,8 @@ -package hs.kr.entrydsm.feed.adapter.out.entity.notice +package hs.kr.entrydsm.feed.domain.notice.adapter.out.entity -import hs.kr.entrydsm.feed.adapter.out.entity.attachFile.AttachFileJpaEntity +import hs.kr.entrydsm.feed.domain.attachFile.adapter.out.entity.AttachFileJpaEntity import hs.kr.entrydsm.feed.global.entity.BaseEntity -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import jakarta.persistence.Column import jakarta.persistence.Entity import jakarta.persistence.EnumType @@ -10,7 +10,7 @@ import jakarta.persistence.Enumerated import jakarta.persistence.FetchType import jakarta.persistence.JoinColumn import jakarta.persistence.OneToMany -import java.util.* +import java.util.UUID /** * 공지사항 정보를 데이터베이스에 저장하기 위한 JPA 엔티티 클래스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/notice/NoticeMapper.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/mapper/NoticeMapper.kt similarity index 80% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/notice/NoticeMapper.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/mapper/NoticeMapper.kt index 44a4bd2..49bd0ac 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/notice/NoticeMapper.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/mapper/NoticeMapper.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.mapper.notice +package hs.kr.entrydsm.feed.domain.notice.adapter.out.mapper -import hs.kr.entrydsm.feed.adapter.out.entity.notice.NoticeJpaEntity -import hs.kr.entrydsm.feed.model.notice.Notice +import hs.kr.entrydsm.feed.domain.notice.adapter.out.entity.NoticeJpaEntity +import hs.kr.entrydsm.feed.domain.notice.model.Notice import org.mapstruct.Mapper /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/notice/NoticePersistenceAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/persistence/NoticePersistenceAdapter.kt similarity index 79% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/notice/NoticePersistenceAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/persistence/NoticePersistenceAdapter.kt index 5d87fa1..9276da3 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/notice/NoticePersistenceAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/persistence/NoticePersistenceAdapter.kt @@ -1,12 +1,10 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.notice +package hs.kr.entrydsm.feed.domain.notice.adapter.out.persistence -import hs.kr.entrydsm.feed.adapter.out.mapper.notice.NoticeMapper -import hs.kr.entrydsm.feed.adapter.out.persistence.notice.repository.NoticeRepository -import hs.kr.entrydsm.feed.application.notice.port.out.DeleteNoticePort -import hs.kr.entrydsm.feed.application.notice.port.out.FindNoticePort -import hs.kr.entrydsm.feed.application.notice.port.out.SaveNoticePort -import hs.kr.entrydsm.feed.model.notice.Notice -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.adapter.out.mapper.NoticeMapper +import hs.kr.entrydsm.feed.domain.notice.adapter.out.persistence.repository.NoticeRepository +import hs.kr.entrydsm.feed.domain.notice.application.port.out.NoticePort +import hs.kr.entrydsm.feed.domain.notice.model.Notice +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Component import java.util.UUID @@ -21,7 +19,7 @@ import java.util.UUID class NoticePersistenceAdapter( private val noticeRepository: NoticeRepository, private val noticeMapper: NoticeMapper, -) : SaveNoticePort, FindNoticePort, DeleteNoticePort { +) : NoticePort { /** * 공지사항을 저장하거나 업데이트합니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/notice/repository/NoticeRepository.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/persistence/repository/NoticeRepository.kt similarity index 75% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/notice/repository/NoticeRepository.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/persistence/repository/NoticeRepository.kt index 3d7d81c..954523e 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/notice/repository/NoticeRepository.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/adapter/out/persistence/repository/NoticeRepository.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.notice.repository +package hs.kr.entrydsm.feed.domain.notice.adapter.out.persistence.repository -import hs.kr.entrydsm.feed.adapter.out.entity.notice.NoticeJpaEntity -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.adapter.out.entity.NoticeJpaEntity +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import org.springframework.data.jpa.repository.JpaRepository import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/CreateNoticeUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/CreateNoticeUseCase.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/CreateNoticeUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/CreateNoticeUseCase.kt index 896478c..4865b4b 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/CreateNoticeUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/CreateNoticeUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request.CreateNoticeRequest +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request.CreateNoticeRequest /** * 공지사항 생성을 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/DeleteNoticeUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/DeleteNoticeUseCase.kt similarity index 86% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/DeleteNoticeUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/DeleteNoticeUseCase.kt index cb0fb78..d9881e0 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/DeleteNoticeUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/DeleteNoticeUseCase.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryDetailsNoticeUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryDetailsNoticeUseCase.kt similarity index 76% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryDetailsNoticeUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryDetailsNoticeUseCase.kt index 610d870..dbbbad3 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryDetailsNoticeUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryDetailsNoticeUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryDetailsNoticeResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryDetailsNoticeResponse import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryNoticeListByTypeUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryNoticeListByTypeUseCase.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryNoticeListByTypeUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryNoticeListByTypeUseCase.kt index dd1c98b..54ec37c 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryNoticeListByTypeUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryNoticeListByTypeUseCase.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryListNoticeResponse -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryListNoticeResponse +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType /** * 유형별 공지사항 목록 조회를 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryNoticeTitleUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryNoticeTitleUseCase.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryNoticeTitleUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryNoticeTitleUseCase.kt index fbd6a46..5c04980 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/QueryNoticeTitleUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/QueryNoticeTitleUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryNoticeTitleResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryNoticeTitleResponse /** * 공지사항 제목 조회를 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/UpdateNoticeUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/UpdateNoticeUseCase.kt similarity index 80% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/UpdateNoticeUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/UpdateNoticeUseCase.kt index cee04a8..fedb3fb 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/UpdateNoticeUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/UpdateNoticeUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request.UpdateNoticeRequest +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request.UpdateNoticeRequest import org.springframework.http.ResponseEntity import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/UploadNoticeImageUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/UploadNoticeImageUseCase.kt similarity index 77% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/UploadNoticeImageUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/UploadNoticeImageUseCase.kt index 9f204dc..8c6ab7d 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/in/UploadNoticeImageUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/in/UploadNoticeImageUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.`in` +package hs.kr.entrydsm.feed.domain.notice.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.UploadNoticeImageResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.UploadNoticeImageResponse import org.springframework.web.multipart.MultipartFile /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/DeleteNoticePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/DeleteNoticePort.kt similarity index 74% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/DeleteNoticePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/DeleteNoticePort.kt index e0bce98..a347f03 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/DeleteNoticePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/DeleteNoticePort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.out +package hs.kr.entrydsm.feed.domain.notice.application.port.out -import hs.kr.entrydsm.feed.model.notice.Notice +import hs.kr.entrydsm.feed.domain.notice.model.Notice /** * 공지사항 삭제를 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/FindNoticePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/FindNoticePort.kt similarity index 83% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/FindNoticePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/FindNoticePort.kt index 28fecd7..31cf381 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/FindNoticePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/FindNoticePort.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.application.notice.port.out +package hs.kr.entrydsm.feed.domain.notice.application.port.out -import hs.kr.entrydsm.feed.model.notice.Notice -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.model.Notice +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/NoticePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/NoticePort.kt new file mode 100644 index 0000000..b7c58ac --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/NoticePort.kt @@ -0,0 +1,10 @@ +package hs.kr.entrydsm.feed.domain.notice.application.port.out + +/** + * 공지사항 관련 모든 포트 인터페이스를 통합한 포트입니다. + * 공지사항 데이터의 CRUD 작업을 위한 모든 인터페이스를 상속받습니다. + */ +interface NoticePort : + DeleteNoticePort, + FindNoticePort, + SaveNoticePort diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/SaveNoticePort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/SaveNoticePort.kt similarity index 77% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/SaveNoticePort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/SaveNoticePort.kt index 3a54122..a918ca8 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/port/out/SaveNoticePort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/port/out/SaveNoticePort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.notice.port.out +package hs.kr.entrydsm.feed.domain.notice.application.port.out -import hs.kr.entrydsm.feed.model.notice.Notice +import hs.kr.entrydsm.feed.domain.notice.model.Notice /** * 공지사항 저장을 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/CreateNoticeService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/CreateNoticeService.kt similarity index 72% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/CreateNoticeService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/CreateNoticeService.kt index f3f7f69..3332e23 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/CreateNoticeService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/CreateNoticeService.kt @@ -1,12 +1,12 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request.CreateNoticeRequest -import hs.kr.entrydsm.feed.application.attachFile.port.out.FindAttachFilePort -import hs.kr.entrydsm.feed.application.notice.exception.AttachFileNotFoundException -import hs.kr.entrydsm.feed.application.notice.port.`in`.CreateNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.out.SaveNoticePort +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request.CreateNoticeRequest +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.FindAttachFilePort +import hs.kr.entrydsm.feed.domain.notice.exception.AttachFileNotFoundException +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.CreateNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.out.SaveNoticePort import hs.kr.entrydsm.feed.global.utils.admin.AdminUtils -import hs.kr.entrydsm.feed.model.notice.Notice +import hs.kr.entrydsm.feed.domain.notice.model.Notice import org.springframework.stereotype.Service /** @@ -26,7 +26,7 @@ class CreateNoticeService( * 새로운 공지사항을 생성합니다. * * @param request 공지사항 생성 요청 데이터 - * @throws hs.kr.entrydsm.feed.application.notice.exception.AttachFileNotFoundException 첨부 파일을 찾을 수 없는 경우 + * @throws AttachFileNotFoundException 첨부 파일을 찾을 수 없는 경우 * @throws hs.kr.entrydsm.feed.global.exception.UnauthorizedException 관리자 인증에 실패한 경우 */ override fun execute(request: CreateNoticeRequest) { diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/DeleteNoticeService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/DeleteNoticeService.kt similarity index 61% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/DeleteNoticeService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/DeleteNoticeService.kt index 9401424..308831e 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/DeleteNoticeService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/DeleteNoticeService.kt @@ -1,9 +1,9 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.application.notice.exception.NoticeNotFoundException -import hs.kr.entrydsm.feed.application.notice.port.`in`.DeleteNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.out.DeleteNoticePort -import hs.kr.entrydsm.feed.application.notice.port.out.FindNoticePort +import hs.kr.entrydsm.feed.domain.notice.exception.NoticeNotFoundException +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.DeleteNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.out.DeleteNoticePort +import hs.kr.entrydsm.feed.domain.notice.application.port.out.FindNoticePort import org.springframework.stereotype.Service import java.util.UUID @@ -22,7 +22,7 @@ class DeleteNoticeService( * 지정된 ID의 공지사항을 삭제합니다. * * @param noticeId 삭제할 공지사항의 고유 식별자 - * @throws hs.kr.entrydsm.feed.application.notice.exception.NoticeNotFoundException 지정된 ID의 공지사항을 찾을 수 없는 경우 + * @throws NoticeNotFoundException 지정된 ID의 공지사항을 찾을 수 없는 경우 */ override fun execute(noticeId: UUID) { val notice = findNoticePort.findByIdOrNull(noticeId) ?: throw NoticeNotFoundException diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryDetailsNoticeService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryDetailsNoticeService.kt similarity index 77% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryDetailsNoticeService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryDetailsNoticeService.kt index 6475d81..affb25e 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryDetailsNoticeService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryDetailsNoticeService.kt @@ -1,10 +1,10 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.AttachFileElement -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryDetailsNoticeResponse -import hs.kr.entrydsm.feed.application.notice.exception.NoticeNotFoundException -import hs.kr.entrydsm.feed.application.notice.port.`in`.QueryDetailsNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.out.FindNoticePort +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.AttachFileElement +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryDetailsNoticeResponse +import hs.kr.entrydsm.feed.domain.notice.exception.NoticeNotFoundException +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.QueryDetailsNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.out.FindNoticePort import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil import org.springframework.stereotype.Service @@ -26,7 +26,7 @@ class QueryDetailsNoticeService( * * @param noticeId 조회할 공지사항의 고유 식별자 * @return 공지사항 상세 정보 응답 - * @throws hs.kr.entrydsm.feed.application.notice.exception.NoticeNotFoundException 지정된 ID의 공지사항을 찾을 수 없는 경우 + * @throws NoticeNotFoundException 지정된 ID의 공지사항을 찾을 수 없는 경우 */ override fun execute(noticeId: UUID): QueryDetailsNoticeResponse { val notice = findNoticePort.findByIdOrNull(noticeId) ?: throw NoticeNotFoundException diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryNoticeListByTypeService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryNoticeListByTypeService.kt similarity index 75% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryNoticeListByTypeService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryNoticeListByTypeService.kt index 39dc2bf..a1914ce 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryNoticeListByTypeService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryNoticeListByTypeService.kt @@ -1,11 +1,11 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.NoticeResponse -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryListNoticeResponse -import hs.kr.entrydsm.feed.application.notice.port.`in`.QueryNoticeListByTypeUseCase -import hs.kr.entrydsm.feed.application.notice.port.out.FindNoticePort -import hs.kr.entrydsm.feed.model.notice.Notice -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.NoticeResponse +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryListNoticeResponse +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.QueryNoticeListByTypeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.out.FindNoticePort +import hs.kr.entrydsm.feed.domain.notice.model.Notice +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import org.springframework.stereotype.Service /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryNoticeTitleService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryNoticeTitleService.kt similarity index 72% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryNoticeTitleService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryNoticeTitleService.kt index 20445e5..7afcedf 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/QueryNoticeTitleService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/QueryNoticeTitleService.kt @@ -1,8 +1,8 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.QueryNoticeTitleResponse -import hs.kr.entrydsm.feed.application.notice.port.`in`.QueryNoticeTitleUseCase -import hs.kr.entrydsm.feed.application.notice.port.out.FindNoticePort +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.QueryNoticeTitleResponse +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.QueryNoticeTitleUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.out.FindNoticePort import org.springframework.stereotype.Service /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/UpdateNoticeService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/UpdateNoticeService.kt similarity index 73% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/UpdateNoticeService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/UpdateNoticeService.kt index 7a21bec..2c0a5b1 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/UpdateNoticeService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/UpdateNoticeService.kt @@ -1,15 +1,15 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.request.UpdateNoticeRequest -import hs.kr.entrydsm.feed.application.attachFile.port.out.FindAttachFilePort -import hs.kr.entrydsm.feed.application.notice.exception.AttachFileNotFoundException -import hs.kr.entrydsm.feed.application.notice.exception.NoticeNotFoundException -import hs.kr.entrydsm.feed.application.notice.port.`in`.UpdateNoticeUseCase -import hs.kr.entrydsm.feed.application.notice.port.out.FindNoticePort +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.request.UpdateNoticeRequest +import hs.kr.entrydsm.feed.domain.attachFile.application.port.out.FindAttachFilePort +import hs.kr.entrydsm.feed.domain.notice.exception.AttachFileNotFoundException +import hs.kr.entrydsm.feed.domain.notice.exception.NoticeNotFoundException import hs.kr.entrydsm.feed.global.utils.admin.AdminUtils import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil -import hs.kr.entrydsm.feed.model.attachFile.AttachFile +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.UpdateNoticeUseCase +import hs.kr.entrydsm.feed.domain.notice.application.port.out.FindNoticePort import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.stereotype.Service @@ -36,8 +36,8 @@ class UpdateNoticeService( * @param noticeId 수정할 공지사항의 고유 식별자 * @param request 공지사항 수정 요청 데이터 * @return 수정된 이미지 URL이 포함된 응답 (이미지가 없는 경우 NO_CONTENT) - * @throws hs.kr.entrydsm.feed.application.notice.exception.NoticeNotFoundException 지정된 ID의 공지사항을 찾을 수 없는 경우 - * @throws hs.kr.entrydsm.feed.application.notice.exception.AttachFileNotFoundException 첨부 파일을 찾을 수 없는 경우 + * @throws NoticeNotFoundException 지정된 ID의 공지사항을 찾을 수 없는 경우 + * @throws AttachFileNotFoundException 첨부 파일을 찾을 수 없는 경우 * @throws hs.kr.entrydsm.feed.global.exception.UnauthorizedException 관리자 인증에 실패한 경우 */ override fun execute( @@ -72,7 +72,7 @@ class UpdateNoticeService( * * @param fileNameList 조회할 파일명 목록 (null인 경우 빈 목록 반환) * @return 조회된 첨부 파일 목록 - * @throws hs.kr.entrydsm.feed.application.notice.exception.AttachFileNotFoundException 첨부 파일을 찾을 수 없는 경우 + * @throws AttachFileNotFoundException 첨부 파일을 찾을 수 없는 경우 */ private fun findAttachFiles(fileNameList: List?): List { return fileNameList?.flatMap { fileName -> diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/UploadNoticeImageService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/UploadNoticeImageService.kt similarity index 80% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/UploadNoticeImageService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/UploadNoticeImageService.kt index 1cc5d5b..04114c4 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/service/UploadNoticeImageService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/application/service/UploadNoticeImageService.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.application.notice.service +package hs.kr.entrydsm.feed.domain.notice.application.service -import hs.kr.entrydsm.feed.adapter.`in`.notice.dto.response.UploadNoticeImageResponse -import hs.kr.entrydsm.feed.application.notice.port.`in`.UploadNoticeImageUseCase +import hs.kr.entrydsm.feed.domain.notice.adapter.`in`.web.dto.response.UploadNoticeImageResponse +import hs.kr.entrydsm.feed.domain.notice.application.port.`in`.UploadNoticeImageUseCase import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil import jakarta.transaction.Transactional diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/exception/NoticeNotFoundException.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/exception/NoticeNotFoundException.kt similarity index 87% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/exception/NoticeNotFoundException.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/exception/NoticeNotFoundException.kt index 266b0aa..a471352 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/notice/exception/NoticeNotFoundException.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/exception/NoticeNotFoundException.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.notice.exception +package hs.kr.entrydsm.feed.domain.notice.exception import hs.kr.entrydsm.feed.global.error.exception.CasperException import hs.kr.entrydsm.feed.global.error.exception.ErrorCode diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/notice/Notice.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/model/Notice.kt similarity index 91% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/notice/Notice.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/model/Notice.kt index 12f4f7a..70301d9 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/notice/Notice.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/model/Notice.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.model.notice +package hs.kr.entrydsm.feed.domain.notice.model -import hs.kr.entrydsm.feed.model.attachFile.AttachFile -import hs.kr.entrydsm.feed.model.notice.type.NoticeType +import hs.kr.entrydsm.feed.domain.attachFile.model.AttachFile +import hs.kr.entrydsm.feed.domain.notice.model.type.NoticeType import java.time.LocalDateTime import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/notice/type/NoticeType.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/model/type/NoticeType.kt similarity index 84% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/notice/type/NoticeType.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/model/type/NoticeType.kt index 1795c36..d678344 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/notice/type/NoticeType.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/notice/model/type/NoticeType.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.model.notice.type +package hs.kr.entrydsm.feed.domain.notice.model.type /** * 공지사항의 유형을 나타내는 열거형 클래스입니다. From 288a00d854f6a6d13bbb27fde0fc2ae7157662c7 Mon Sep 17 00:00:00 2001 From: coehgns Date: Mon, 18 Aug 2025 14:29:43 +0900 Subject: [PATCH 6/6] =?UTF-8?q?refactor=20(=20#27=20)=20:=20screen=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adatper/in/web}/ScreenWebAdapter.kt | 18 ++++++----- .../web}/dto/response/QueryScreenResponse.kt | 2 +- .../in/web}/dto/response/ScreenResponse.kt | 2 +- .../adatper/out/entity}/ScreenJpaEntity.kt | 2 +- .../adatper/out/mapper}/ScreenMapper.kt | 6 ++-- .../persistence}/ScreenPersistenceAdapter.kt | 30 ++++++++++++++----- .../repository/ScreenRepository.kt | 4 +-- .../port/in/CreateScreenUseCase.kt | 4 +-- .../port/in/QueryScreenUseCase.kt | 4 +-- .../port/in/UpdateScreenUseCase.kt | 4 +-- .../application}/port/out/FindScreenPort.kt | 4 +-- .../application}/port/out/SaveScreenPort.kt | 4 +-- .../screen/application/port/out/ScreenPort.kt | 9 ++++++ .../service/CreateScreenService.kt | 12 ++++---- .../service/QueryScreenService.kt | 8 ++--- .../service/UpdateScreenService.kt | 12 ++++---- .../exception/ScreenNotFoundException.kt | 2 +- .../screen => domain/screen/model}/Screen.kt | 2 +- 18 files changed, 78 insertions(+), 51 deletions(-) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/screen => domain/screen/adatper/in/web}/ScreenWebAdapter.kt (75%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/screen => domain/screen/adatper/in/web}/dto/response/QueryScreenResponse.kt (89%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/in/screen => domain/screen/adatper/in/web}/dto/response/ScreenResponse.kt (79%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/entity/screen => domain/screen/adatper/out/entity}/ScreenJpaEntity.kt (91%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/mapper/screen => domain/screen/adatper/out/mapper}/ScreenMapper.kt (80%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/screen => domain/screen/adatper/out/persistence}/ScreenPersistenceAdapter.kt (52%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{adapter/out/persistence/screen => domain/screen/adatper/out/persistence}/repository/ScreenRepository.kt (69%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/port/in/CreateScreenUseCase.kt (69%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/port/in/QueryScreenUseCase.kt (69%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/port/in/UpdateScreenUseCase.kt (81%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/port/out/FindScreenPort.kt (83%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/port/out/SaveScreenPort.kt (76%) create mode 100644 casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/ScreenPort.kt rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/service/CreateScreenService.kt (71%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/service/QueryScreenService.kt (77%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application/screen => domain/screen/application}/service/UpdateScreenService.kt (74%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{application => domain}/screen/exception/ScreenNotFoundException.kt (87%) rename casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/{model/screen => domain/screen/model}/Screen.kt (95%) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/ScreenWebAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/ScreenWebAdapter.kt similarity index 75% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/ScreenWebAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/ScreenWebAdapter.kt index fd4af41..7027e65 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/ScreenWebAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/ScreenWebAdapter.kt @@ -1,10 +1,10 @@ -package hs.kr.entrydsm.feed.adapter.`in`.screen +package hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.QueryScreenResponse -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.ScreenResponse -import hs.kr.entrydsm.feed.application.screen.port.`in`.CreateScreenUseCase -import hs.kr.entrydsm.feed.application.screen.port.`in`.QueryScreenUseCase -import hs.kr.entrydsm.feed.application.screen.port.`in`.UpdateScreenUseCase +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.QueryScreenResponse +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.ScreenResponse +import hs.kr.entrydsm.feed.domain.screen.application.port.`in`.CreateScreenUseCase +import hs.kr.entrydsm.feed.domain.screen.application.port.`in`.QueryScreenUseCase +import hs.kr.entrydsm.feed.domain.screen.application.port.`in`.UpdateScreenUseCase import org.springframework.http.HttpStatus import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.PatchMapping @@ -21,9 +21,11 @@ import java.util.UUID * 화면 정보 관련 HTTP 요청을 처리하는 웹 어댑터 클래스입니다. * * 이 클래스는 화면 정보와 관련된 모든 HTTP 엔드포인트를 제공하며, - * 클라이언트의 요청을 적절한 서비스 메서드로 라우팅합니다. + * 클라이언트의 요청을 적절한 유스케이스로 라우팅합니다. * - * @property screenService 화면 정보 비즈니스 로직을 처리하는 서비스 + * @property createScreenUseCase 화면 생성 유스케이스 + * @property updateScreenUseCase 화면 수정 유스케이스 + * @property queryScreenUseCase 화면 조회 유스케이스 */ @RestController @RequestMapping("/screen") diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/dto/response/QueryScreenResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/dto/response/QueryScreenResponse.kt similarity index 89% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/dto/response/QueryScreenResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/dto/response/QueryScreenResponse.kt index c1714ba..10f0edf 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/dto/response/QueryScreenResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/dto/response/QueryScreenResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response +package hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response import java.time.LocalDateTime import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/dto/response/ScreenResponse.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/dto/response/ScreenResponse.kt similarity index 79% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/dto/response/ScreenResponse.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/dto/response/ScreenResponse.kt index 9675153..d5c94fb 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/screen/dto/response/ScreenResponse.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/in/web/dto/response/ScreenResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response +package hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response /** * 화면 정보 응답을 위한 데이터 클래스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/screen/ScreenJpaEntity.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/entity/ScreenJpaEntity.kt similarity index 91% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/screen/ScreenJpaEntity.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/entity/ScreenJpaEntity.kt index fdbb5e8..fbca683 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/entity/screen/ScreenJpaEntity.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/entity/ScreenJpaEntity.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.adapter.out.entity.screen +package hs.kr.entrydsm.feed.domain.screen.adatper.out.entity import hs.kr.entrydsm.feed.global.entity.BaseEntity import jakarta.persistence.Column diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/screen/ScreenMapper.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/mapper/ScreenMapper.kt similarity index 80% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/screen/ScreenMapper.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/mapper/ScreenMapper.kt index 037c49d..a5c59a4 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/mapper/screen/ScreenMapper.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/mapper/ScreenMapper.kt @@ -1,7 +1,7 @@ -package hs.kr.entrydsm.feed.adapter.out.mapper.screen +package hs.kr.entrydsm.feed.domain.screen.adatper.out.mapper -import hs.kr.entrydsm.feed.adapter.out.entity.screen.ScreenJpaEntity -import hs.kr.entrydsm.feed.model.screen.Screen +import hs.kr.entrydsm.feed.domain.screen.adatper.out.entity.ScreenJpaEntity +import hs.kr.entrydsm.feed.domain.screen.model.Screen import org.mapstruct.Mapper /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/screen/ScreenPersistenceAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/persistence/ScreenPersistenceAdapter.kt similarity index 52% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/screen/ScreenPersistenceAdapter.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/persistence/ScreenPersistenceAdapter.kt index b3755e1..e102eef 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/screen/ScreenPersistenceAdapter.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/persistence/ScreenPersistenceAdapter.kt @@ -1,10 +1,9 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.screen +package hs.kr.entrydsm.feed.domain.screen.adatper.out.persistence -import hs.kr.entrydsm.feed.adapter.out.mapper.screen.ScreenMapper -import hs.kr.entrydsm.feed.adapter.out.persistence.screen.repository.ScreenRepository -import hs.kr.entrydsm.feed.application.screen.port.out.FindScreenPort -import hs.kr.entrydsm.feed.application.screen.port.out.SaveScreenPort -import hs.kr.entrydsm.feed.model.screen.Screen +import hs.kr.entrydsm.feed.domain.screen.adatper.out.mapper.ScreenMapper +import hs.kr.entrydsm.feed.domain.screen.adatper.out.persistence.repository.ScreenRepository +import hs.kr.entrydsm.feed.domain.screen.application.port.out.ScreenPort +import hs.kr.entrydsm.feed.domain.screen.model.Screen import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Component import java.util.UUID @@ -19,15 +18,32 @@ import java.util.UUID class ScreenPersistenceAdapter( private val screenRepository: ScreenRepository, private val screenMapper: ScreenMapper, -) : SaveScreenPort, FindScreenPort { +) : ScreenPort { + + /** + * 화면 정보를 데이터베이스에 저장합니다. + * + * @param screen 저장할 화면 정보 도메인 객체 + */ override fun saveScreen(screen: Screen) { screenRepository.save(screenMapper.toEntity(screen)) } + /** + * 데이터베이스에 저장된 모든 화면 정보를 조회합니다. + * + * @return 모든 화면 정보 도메인 객체 리스트 + */ override fun findAll(): List { return screenRepository.findAll().map { screenMapper.toModel(it) } } + /** + * 고유 식별자(ID)로 화면 정보를 조회합니다. + * + * @param screenId 조회할 화면의 고유 식별자 + * @return 조회된 화면 정보 도메인 객체. 존재하지 않으면 null을 반환합니다. + */ override fun findByIdOrNull(screenId: UUID): Screen? = screenRepository.findByIdOrNull(screenId)?.let { screenMapper.toModel(it) diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/screen/repository/ScreenRepository.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/persistence/repository/ScreenRepository.kt similarity index 69% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/screen/repository/ScreenRepository.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/persistence/repository/ScreenRepository.kt index e6ebb8f..ffb8295 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/out/persistence/screen/repository/ScreenRepository.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/adatper/out/persistence/repository/ScreenRepository.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.adapter.out.persistence.screen.repository +package hs.kr.entrydsm.feed.domain.screen.adatper.out.persistence.repository -import hs.kr.entrydsm.feed.adapter.out.entity.screen.ScreenJpaEntity +import hs.kr.entrydsm.feed.domain.screen.adatper.out.entity.ScreenJpaEntity import org.springframework.data.jpa.repository.JpaRepository import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/CreateScreenUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/CreateScreenUseCase.kt similarity index 69% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/CreateScreenUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/CreateScreenUseCase.kt index e8ab8d2..1fef0e0 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/CreateScreenUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/CreateScreenUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.screen.port.`in` +package hs.kr.entrydsm.feed.domain.screen.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.ScreenResponse +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.ScreenResponse import org.springframework.web.multipart.MultipartFile /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/QueryScreenUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/QueryScreenUseCase.kt similarity index 69% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/QueryScreenUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/QueryScreenUseCase.kt index 1fc77cb..eb33b07 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/QueryScreenUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/QueryScreenUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.screen.port.`in` +package hs.kr.entrydsm.feed.domain.screen.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.QueryScreenResponse +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.QueryScreenResponse /** * 화면 목록 조회를 위한 유스케이스 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/UpdateScreenUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/UpdateScreenUseCase.kt similarity index 81% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/UpdateScreenUseCase.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/UpdateScreenUseCase.kt index 4c949a2..f9a1c7c 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/in/UpdateScreenUseCase.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/in/UpdateScreenUseCase.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.screen.port.`in` +package hs.kr.entrydsm.feed.domain.screen.application.port.`in` -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.ScreenResponse +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.ScreenResponse import org.springframework.web.multipart.MultipartFile import java.util.UUID diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/out/FindScreenPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/FindScreenPort.kt similarity index 83% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/out/FindScreenPort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/FindScreenPort.kt index 6664542..1d7f090 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/out/FindScreenPort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/FindScreenPort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.screen.port.out +package hs.kr.entrydsm.feed.domain.screen.application.port.out -import hs.kr.entrydsm.feed.model.screen.Screen +import hs.kr.entrydsm.feed.domain.screen.model.Screen import java.util.UUID /** diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/out/SaveScreenPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/SaveScreenPort.kt similarity index 76% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/out/SaveScreenPort.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/SaveScreenPort.kt index da38d55..a7f1234 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/port/out/SaveScreenPort.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/SaveScreenPort.kt @@ -1,6 +1,6 @@ -package hs.kr.entrydsm.feed.application.screen.port.out +package hs.kr.entrydsm.feed.domain.screen.application.port.out -import hs.kr.entrydsm.feed.model.screen.Screen +import hs.kr.entrydsm.feed.domain.screen.model.Screen /** * 화면 저장을 위한 포트 인터페이스입니다. diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/ScreenPort.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/ScreenPort.kt new file mode 100644 index 0000000..bea76db --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/port/out/ScreenPort.kt @@ -0,0 +1,9 @@ +package hs.kr.entrydsm.feed.domain.screen.application.port.out + +/** + * 화면 이미지 관련 모든 포트 인터페이스를 통합한 포트입니다. + * 화면 이미지 데이터의 CRUD 작업을 위한 모든 인터페이스를 상속받습니다. + */ +interface ScreenPort : + FindScreenPort, + SaveScreenPort diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/CreateScreenService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/CreateScreenService.kt similarity index 71% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/CreateScreenService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/CreateScreenService.kt index 3f887c1..d30a412 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/CreateScreenService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/CreateScreenService.kt @@ -1,12 +1,12 @@ -package hs.kr.entrydsm.feed.application.screen.service +package hs.kr.entrydsm.feed.domain.screen.application.service -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.ScreenResponse -import hs.kr.entrydsm.feed.application.screen.port.`in`.CreateScreenUseCase -import hs.kr.entrydsm.feed.application.screen.port.out.SaveScreenPort +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.ScreenResponse +import hs.kr.entrydsm.feed.domain.screen.application.port.`in`.CreateScreenUseCase +import hs.kr.entrydsm.feed.domain.screen.application.port.out.SaveScreenPort import hs.kr.entrydsm.feed.global.utils.admin.AdminUtils import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil -import hs.kr.entrydsm.feed.model.screen.Screen +import hs.kr.entrydsm.feed.domain.screen.model.Screen import org.springframework.stereotype.Service import org.springframework.web.multipart.MultipartFile @@ -14,7 +14,7 @@ import org.springframework.web.multipart.MultipartFile * 화면 이미지 생성을 처리하는 서비스 클래스입니다. * * @property saveScreenPort 화면 저장을 위한 포트 - * @property userUtils 사용자 인증 유틸리티 + * @property adminUtils 관리자 인증 유틸리티 * @property fileUtil 파일 업로드 유틸리티 */ @Service diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/QueryScreenService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/QueryScreenService.kt similarity index 77% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/QueryScreenService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/QueryScreenService.kt index 4b8a402..9570ecd 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/QueryScreenService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/QueryScreenService.kt @@ -1,8 +1,8 @@ -package hs.kr.entrydsm.feed.application.screen.service +package hs.kr.entrydsm.feed.domain.screen.application.service -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.QueryScreenResponse -import hs.kr.entrydsm.feed.application.screen.port.`in`.QueryScreenUseCase -import hs.kr.entrydsm.feed.application.screen.port.out.FindScreenPort +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.QueryScreenResponse +import hs.kr.entrydsm.feed.domain.screen.application.port.`in`.QueryScreenUseCase +import hs.kr.entrydsm.feed.domain.screen.application.port.out.FindScreenPort import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil import org.springframework.stereotype.Service diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/UpdateScreenService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/UpdateScreenService.kt similarity index 74% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/UpdateScreenService.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/UpdateScreenService.kt index 8840e4b..c92bead 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/service/UpdateScreenService.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/application/service/UpdateScreenService.kt @@ -1,9 +1,9 @@ -package hs.kr.entrydsm.feed.application.screen.service +package hs.kr.entrydsm.feed.domain.screen.application.service -import hs.kr.entrydsm.feed.adapter.`in`.screen.dto.response.ScreenResponse -import hs.kr.entrydsm.feed.application.screen.exception.ScreenNotFoundException -import hs.kr.entrydsm.feed.application.screen.port.`in`.UpdateScreenUseCase -import hs.kr.entrydsm.feed.application.screen.port.out.FindScreenPort +import hs.kr.entrydsm.feed.domain.screen.adatper.`in`.web.dto.response.ScreenResponse +import hs.kr.entrydsm.feed.domain.screen.exception.ScreenNotFoundException +import hs.kr.entrydsm.feed.domain.screen.application.port.`in`.UpdateScreenUseCase +import hs.kr.entrydsm.feed.domain.screen.application.port.out.FindScreenPort import hs.kr.entrydsm.feed.infrastructure.s3.PathList import hs.kr.entrydsm.feed.infrastructure.s3.util.FileUtil import jakarta.transaction.Transactional @@ -30,7 +30,7 @@ class UpdateScreenService( * @param screenId 업데이트할 화면의 고유 식별자 * @param file 새로운 이미지 파일 * @return 업데이트된 화면 이미지의 URL이 포함된 응답 - * @throws hs.kr.entrydsm.feed.application.screen.exception.ScreenNotFoundException 지정된 ID의 화면을 찾을 수 없는 경우 + * @throws ScreenNotFoundException 지정된 ID의 화면을 찾을 수 없는 경우 */ override fun execute( screenId: UUID, diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/exception/ScreenNotFoundException.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/exception/ScreenNotFoundException.kt similarity index 87% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/exception/ScreenNotFoundException.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/exception/ScreenNotFoundException.kt index 8d81767..93fd62b 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/screen/exception/ScreenNotFoundException.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/exception/ScreenNotFoundException.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.application.screen.exception +package hs.kr.entrydsm.feed.domain.screen.exception import hs.kr.entrydsm.feed.global.error.exception.CasperException import hs.kr.entrydsm.feed.global.error.exception.ErrorCode diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/screen/Screen.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/model/Screen.kt similarity index 95% rename from casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/screen/Screen.kt rename to casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/model/Screen.kt index 7b9dc28..3d320a8 100644 --- a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/model/screen/Screen.kt +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/domain/screen/model/Screen.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.feed.model.screen +package hs.kr.entrydsm.feed.domain.screen.model import java.time.LocalDateTime import java.util.UUID