From e3ac67c35f9704416a6b03c7d3956888ca9ce0a0 Mon Sep 17 00:00:00 2001 From: kjh Date: Fri, 4 Oct 2024 02:16:35 +0900 Subject: [PATCH] =?UTF-8?q?fix/refactor=20:=20[#5]=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC,=20=ED=86=B5=ED=95=A9=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/LectureService.java | 11 ++--- .../service/RegistrationService.java | 14 ++----- .../application/service/UserService.java | 14 +++---- .../InstructorEntity.java | 19 +-------- .../persistence => domain}/LectureEntity.java | 16 +------- .../LectureItemEntity.java | 25 +---------- .../RegistrationEntity.java | 29 ++----------- .../persistence => domain}/UserEntity.java | 14 +------ .../lecture/domain/model/Instructor.java | 22 ---------- .../hhplus/lecture/domain/model/Lecture.java | 25 ----------- .../lecture/domain/model/LectureItem.java | 41 ------------------- .../lecture/domain/model/Registration.java | 29 ------------- .../hhplus/lecture/domain/model/User.java | 19 --------- .../repository/InstructorRepository.java | 2 +- .../repository/LectureItemRepository.java | 2 +- .../repository/LectureRepository.java | 2 +- .../repository/RegistrationRepository.java | 2 +- .../repository/UsersRepository.java | 2 +- .../controller/LectureController.java | 4 +- .../interfaces/dto/lecture/LectureDto.java | 4 +- .../RegistrationRequestDto.java | 25 ----------- .../RegistrationStatusResponseDto.java | 37 ----------------- .../interfaces/dto/user/UserResponseDto.java | 2 +- .../service/LectureServiceTest.java | 9 ++-- .../service/RegistrationServiceTest.java | 4 +- .../application/service/UserServiceTest.java | 2 +- .../RegistrationServiceIntegrationTest.java | 2 +- 27 files changed, 39 insertions(+), 338 deletions(-) rename src/main/java/hhplus/lecture/{infrastructure/persistence => domain}/InstructorEntity.java (56%) rename src/main/java/hhplus/lecture/{infrastructure/persistence => domain}/LectureEntity.java (67%) rename src/main/java/hhplus/lecture/{infrastructure/persistence => domain}/LectureItemEntity.java (64%) rename src/main/java/hhplus/lecture/{infrastructure/persistence => domain}/RegistrationEntity.java (60%) rename src/main/java/hhplus/lecture/{infrastructure/persistence => domain}/UserEntity.java (63%) delete mode 100644 src/main/java/hhplus/lecture/domain/model/Instructor.java delete mode 100644 src/main/java/hhplus/lecture/domain/model/Lecture.java delete mode 100644 src/main/java/hhplus/lecture/domain/model/LectureItem.java delete mode 100644 src/main/java/hhplus/lecture/domain/model/Registration.java delete mode 100644 src/main/java/hhplus/lecture/domain/model/User.java delete mode 100644 src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationRequestDto.java delete mode 100644 src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationStatusResponseDto.java diff --git a/src/main/java/hhplus/lecture/application/service/LectureService.java b/src/main/java/hhplus/lecture/application/service/LectureService.java index 6849b28..d52371a 100644 --- a/src/main/java/hhplus/lecture/application/service/LectureService.java +++ b/src/main/java/hhplus/lecture/application/service/LectureService.java @@ -1,13 +1,13 @@ package hhplus.lecture.application.service; -import hhplus.lecture.domain.model.Lecture; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; +import hhplus.lecture.domain.LectureItemEntity; import hhplus.lecture.infrastructure.repository.InstructorRepository; import hhplus.lecture.infrastructure.repository.LectureItemRepository; import hhplus.lecture.infrastructure.repository.LectureRepository; -import hhplus.lecture.infrastructure.persistence.LectureEntity; +import hhplus.lecture.domain.LectureEntity; import hhplus.lecture.interfaces.dto.lecture.LectureDto; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.List; @@ -15,6 +15,7 @@ import java.util.stream.Collectors; @Service +@Transactional public class LectureService { private final LectureRepository lectureRepository; @@ -22,13 +23,13 @@ public class LectureService { private final InstructorRepository instructorRepository; // 특강 정보 조회 - public Lecture getLecture(String lectureCode) { + public LectureEntity getLecture(String lectureCode) { LectureEntity entity = lectureRepository.findByLectureCode(lectureCode); if(entity == null) { throw new NoSuchElementException("특강을 찾을 수 없습니다."); } - return entity.toDomain(); + return entity; } // 모든 특강 조회 diff --git a/src/main/java/hhplus/lecture/application/service/RegistrationService.java b/src/main/java/hhplus/lecture/application/service/RegistrationService.java index d8f55c4..c96db6b 100644 --- a/src/main/java/hhplus/lecture/application/service/RegistrationService.java +++ b/src/main/java/hhplus/lecture/application/service/RegistrationService.java @@ -1,9 +1,8 @@ package hhplus.lecture.application.service; -import hhplus.lecture.domain.model.Lecture; import hhplus.lecture.domain.model.RegistrationStatus; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; -import hhplus.lecture.infrastructure.persistence.RegistrationEntity; +import hhplus.lecture.domain.LectureItemEntity; +import hhplus.lecture.domain.RegistrationEntity; import hhplus.lecture.infrastructure.repository.LectureItemRepository; import hhplus.lecture.infrastructure.repository.RegistrationRepository; import org.springframework.stereotype.Service; @@ -16,15 +15,9 @@ @Transactional public class RegistrationService { - private final LectureService lectureService; private final LectureItemRepository lectureItemRepository; private final RegistrationRepository registrationRepository; - // 특강 정보 조회 - public Lecture lectureDetail(String lectureCode){ - return lectureService.getLecture(lectureCode); - } - // 특강 신청 성공 여부 public boolean registerLecture(String userCode, String lectureItemCode) { // 기존 신청 내역 확인 @@ -65,8 +58,7 @@ private void saveRegistration(String userCode, String lectureCde) { } // 생성자 - public RegistrationService(LectureService lectureService, LectureItemRepository lectureItemRepository, RegistrationRepository registrationRepository) { - this.lectureService = lectureService; + public RegistrationService(LectureItemRepository lectureItemRepository, RegistrationRepository registrationRepository) { this.lectureItemRepository = lectureItemRepository; this.registrationRepository = registrationRepository; } diff --git a/src/main/java/hhplus/lecture/application/service/UserService.java b/src/main/java/hhplus/lecture/application/service/UserService.java index 6e7ad2c..a729438 100644 --- a/src/main/java/hhplus/lecture/application/service/UserService.java +++ b/src/main/java/hhplus/lecture/application/service/UserService.java @@ -1,9 +1,9 @@ package hhplus.lecture.application.service; -import hhplus.lecture.infrastructure.persistence.LectureEntity; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; -import hhplus.lecture.infrastructure.persistence.RegistrationEntity; -import hhplus.lecture.infrastructure.persistence.UserEntity; +import hhplus.lecture.domain.LectureEntity; +import hhplus.lecture.domain.LectureItemEntity; +import hhplus.lecture.domain.RegistrationEntity; +import hhplus.lecture.domain.UserEntity; import hhplus.lecture.infrastructure.repository.*; import hhplus.lecture.interfaces.dto.lecture.LectureDto; import hhplus.lecture.interfaces.dto.user.UserResponseDto; @@ -20,7 +20,6 @@ public class UserService { private final RegistrationRepository registrationRepository; private final LectureRepository lectureRepository; private final LectureItemRepository lectureItemRepository; - private final LectureService lectureService; private final InstructorRepository instructorRepository; // 사용자 조회 (사용자 상세정보 + 강의 신청 내역) @@ -35,9 +34,7 @@ public UserResponseDto getUserAndRegisteredLectures(String userCode) { // 강의 내역 List registeredLectures = registrations.stream() .map(registration -> { - // lectureItemCode를 통해 LectureItemEntity를 가져옵니다. LectureItemEntity lectureItem = lectureItemRepository.findByLectureItemCode(registration.getLectureItemCode()); - // LectureEntity를 통해 LectureDto 생성 LectureEntity lectureEntity = lectureRepository.findByLectureCode(lectureItem.getLectureItemCode()); String instructorName = instructorRepository.findByInstructorCode(lectureEntity.getInstructorCode()).getInstructorName(); return LectureDto.fromEntity(lectureEntity, lectureItem, instructorName); @@ -46,10 +43,9 @@ public UserResponseDto getUserAndRegisteredLectures(String userCode) { } // 생성자 - public UserService(UsersRepository usersRepository, RegistrationRepository registrationRepository, LectureService lectureService, InstructorRepository instructorRepository, LectureRepository lectureRepository, LectureItemRepository lectureItemRepository) { + public UserService(UsersRepository usersRepository, RegistrationRepository registrationRepository, InstructorRepository instructorRepository, LectureRepository lectureRepository, LectureItemRepository lectureItemRepository) { this.usersRepository = usersRepository; this.registrationRepository = registrationRepository; - this.lectureService = lectureService; this.instructorRepository = instructorRepository; this.lectureRepository = lectureRepository; this.lectureItemRepository = lectureItemRepository; diff --git a/src/main/java/hhplus/lecture/infrastructure/persistence/InstructorEntity.java b/src/main/java/hhplus/lecture/domain/InstructorEntity.java similarity index 56% rename from src/main/java/hhplus/lecture/infrastructure/persistence/InstructorEntity.java rename to src/main/java/hhplus/lecture/domain/InstructorEntity.java index d8adb92..219a85d 100644 --- a/src/main/java/hhplus/lecture/infrastructure/persistence/InstructorEntity.java +++ b/src/main/java/hhplus/lecture/domain/InstructorEntity.java @@ -1,6 +1,5 @@ -package hhplus.lecture.infrastructure.persistence; +package hhplus.lecture.domain; -import hhplus.lecture.domain.model.Instructor; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Getter; @@ -26,20 +25,4 @@ public InstructorEntity(String instructorCode, String instructorName) { this.instructorCode = instructorCode; this.instructorName = instructorName; } - - // 도메인 모델로 변환 - public Instructor toDomain() { - return new Instructor( - instructorCode, - instructorName - ); - } - - // 도메인 모델에서 엔티티로 변환하는 정적 메서드 - public static InstructorEntity fromDomain(Instructor instructor) { - return new InstructorEntity( - instructor.getInstructorCode(), - instructor.getInstructorName() - ); - } } diff --git a/src/main/java/hhplus/lecture/infrastructure/persistence/LectureEntity.java b/src/main/java/hhplus/lecture/domain/LectureEntity.java similarity index 67% rename from src/main/java/hhplus/lecture/infrastructure/persistence/LectureEntity.java rename to src/main/java/hhplus/lecture/domain/LectureEntity.java index e33e6e5..eadd172 100644 --- a/src/main/java/hhplus/lecture/infrastructure/persistence/LectureEntity.java +++ b/src/main/java/hhplus/lecture/domain/LectureEntity.java @@ -1,6 +1,5 @@ -package hhplus.lecture.infrastructure.persistence; +package hhplus.lecture.domain; -import hhplus.lecture.domain.model.Lecture; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Getter; @@ -33,17 +32,4 @@ public LectureEntity(String lectureCode, String lectureName, String instructorCo this.lectureName = lectureName; this.instructorCode = instructorCode; } - - public Lecture toDomain() { - return new Lecture(lectureCode, lectureName, instructorCode); - } - - public static LectureEntity fromDomain(Lecture lecture) { - return new LectureEntity( - lecture.getLectureCode(), - lecture.getLectureName(), - lecture.getInstructorCode() - ); - } } - diff --git a/src/main/java/hhplus/lecture/infrastructure/persistence/LectureItemEntity.java b/src/main/java/hhplus/lecture/domain/LectureItemEntity.java similarity index 64% rename from src/main/java/hhplus/lecture/infrastructure/persistence/LectureItemEntity.java rename to src/main/java/hhplus/lecture/domain/LectureItemEntity.java index aa60e37..81fad46 100644 --- a/src/main/java/hhplus/lecture/infrastructure/persistence/LectureItemEntity.java +++ b/src/main/java/hhplus/lecture/domain/LectureItemEntity.java @@ -1,6 +1,5 @@ -package hhplus.lecture.infrastructure.persistence; +package hhplus.lecture.domain; -import hhplus.lecture.domain.model.LectureItem; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Getter; @@ -44,28 +43,6 @@ public LectureItemEntity(String lectureItemCode, String lectureCode, LocalDate l this.currentCapacity = currentCapacity; } - // 도메인 모델로 변환 - public LectureItem toDomain() { - return new LectureItem( - lectureItemCode, - lectureCode, - lectureDate, - maxCapacity, - currentCapacity - ); - } - - // 도메인 모델에서 엔티티로 변환하는 정적 메서드 - public static LectureItemEntity fromDomain(LectureItem lectureItem) { - return new LectureItemEntity( - lectureItem.getLectureItemCode(), - lectureItem.getLectureCode(), - lectureItem.getLectureDate(), - lectureItem.getMaxCapacity(), - lectureItem.getCurrentCapacity() - ); - } - // 신청 인원 증가 (정원 확인) public boolean addRegistration() { if (currentCapacity < maxCapacity) { diff --git a/src/main/java/hhplus/lecture/infrastructure/persistence/RegistrationEntity.java b/src/main/java/hhplus/lecture/domain/RegistrationEntity.java similarity index 60% rename from src/main/java/hhplus/lecture/infrastructure/persistence/RegistrationEntity.java rename to src/main/java/hhplus/lecture/domain/RegistrationEntity.java index 471743a..0243680 100644 --- a/src/main/java/hhplus/lecture/infrastructure/persistence/RegistrationEntity.java +++ b/src/main/java/hhplus/lecture/domain/RegistrationEntity.java @@ -1,6 +1,5 @@ -package hhplus.lecture.infrastructure.persistence; +package hhplus.lecture.domain; -import hhplus.lecture.domain.model.Registration; import hhplus.lecture.domain.model.RegistrationStatus; import jakarta.persistence.*; import lombok.AccessLevel; @@ -30,7 +29,7 @@ public class RegistrationEntity { @Enumerated(EnumType.STRING) @Column(nullable = false) - private RegistrationStatus status; // 신청 상태 (WAIT, APPROVAL, REFUSAL) + private RegistrationStatus status; // 신청 상태 (APPROVAL, REFUSAL) @Column(nullable = false) private LocalDateTime registrationDate; // 신청 날짜 @@ -41,26 +40,4 @@ public RegistrationEntity(String userCode, String lectureItemCode, RegistrationS this.status = status; this.registrationDate = registrationDate; } - - public Registration toDomain() { - return new Registration( - userCode, - lectureItemCode, - status, - registrationDate - ); - } - - public static RegistrationEntity fromDomain(Registration registration) { - return new RegistrationEntity( - registration.getUserCode(), - registration.getLectureItemCode(), - registration.getStatus(), - registration.getRegistrationDate() - ); - } - - public void updateStatus(RegistrationStatus status) { - this.status = status; - } -} \ No newline at end of file +} diff --git a/src/main/java/hhplus/lecture/infrastructure/persistence/UserEntity.java b/src/main/java/hhplus/lecture/domain/UserEntity.java similarity index 63% rename from src/main/java/hhplus/lecture/infrastructure/persistence/UserEntity.java rename to src/main/java/hhplus/lecture/domain/UserEntity.java index fd1eb0e..d0b0a4f 100644 --- a/src/main/java/hhplus/lecture/infrastructure/persistence/UserEntity.java +++ b/src/main/java/hhplus/lecture/domain/UserEntity.java @@ -1,6 +1,5 @@ -package hhplus.lecture.infrastructure.persistence; +package hhplus.lecture.domain; -import hhplus.lecture.domain.model.User; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Getter; @@ -26,15 +25,4 @@ public UserEntity(String userCode, String userName) { this.userCode = userCode; this.userName = userName; } - - public User toDomain() { - return new User(userCode, userName); - } - - public static UserEntity fromDomain(User user) { - return new UserEntity( - user.getUserCode(), - user.getUserName() - ); - } } diff --git a/src/main/java/hhplus/lecture/domain/model/Instructor.java b/src/main/java/hhplus/lecture/domain/model/Instructor.java deleted file mode 100644 index ac011cd..0000000 --- a/src/main/java/hhplus/lecture/domain/model/Instructor.java +++ /dev/null @@ -1,22 +0,0 @@ -package hhplus.lecture.domain.model; - -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -/** - * 강사 정보 - */ -@Getter -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class Instructor { - - private Long instructorId; // 고유 식별자 - private String instructorCode; // 강사 코드 - private String instructorName; // 강사 이름 - - public Instructor(String instructorCode, String instructorName) { - this.instructorCode = instructorCode; - this.instructorName = instructorName; - } -} diff --git a/src/main/java/hhplus/lecture/domain/model/Lecture.java b/src/main/java/hhplus/lecture/domain/model/Lecture.java deleted file mode 100644 index 61766de..0000000 --- a/src/main/java/hhplus/lecture/domain/model/Lecture.java +++ /dev/null @@ -1,25 +0,0 @@ -package hhplus.lecture.domain.model; - -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -/** - * 강의 정보(기본 정보) - * 강의 코드, 강의명, 강사 코드 - */ -@Getter -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class Lecture { - - private Long lectureId; // 고유 식별자 - private String lectureCode; // 강의 코드 (고유) - private String lectureName; // 강의명 - private String instructorCode; // 강사 코드 - - public Lecture(String lectureCode, String lectureName, String instructorCode) { - this.lectureCode = lectureCode; - this.lectureName = lectureName; - this.instructorCode = instructorCode; - } -} diff --git a/src/main/java/hhplus/lecture/domain/model/LectureItem.java b/src/main/java/hhplus/lecture/domain/model/LectureItem.java deleted file mode 100644 index 61bef6f..0000000 --- a/src/main/java/hhplus/lecture/domain/model/LectureItem.java +++ /dev/null @@ -1,41 +0,0 @@ -package hhplus.lecture.domain.model; - -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -import java.time.LocalDate; - -/** - * 강의 일정과 관련된 정보 - */ -@Getter -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class LectureItem { - - private Long lectureItemId; // 고유 식별자 - private String lectureItemCode; // 일정 고유 코드 - private String lectureCode; - private LocalDate lectureDate; // 강의 일정 날짜 - private int maxCapacity = 30; // 정원 - private int currentCapacity = 0; // 현재 신청자 수 - - // 특강 신청 가능 여부 확인 (정원 확인) - public LectureItem(String lectureItemCode, String lectureCode, LocalDate lectureDate, int maxCapacity, int currentCapacity) { - this.lectureItemCode = lectureItemCode; - this.lectureCode = lectureCode; - this.lectureDate = lectureDate; - this.maxCapacity = maxCapacity; - this.currentCapacity = currentCapacity; - } - - // 신청 인원 증가 (정원 확인) - public boolean addRegistration() { - if (currentCapacity < maxCapacity) { - currentCapacity++; - return true; - } else { - return false; // 정원이 다 찬 경우 신청 실패 - } - } -} \ No newline at end of file diff --git a/src/main/java/hhplus/lecture/domain/model/Registration.java b/src/main/java/hhplus/lecture/domain/model/Registration.java deleted file mode 100644 index 173ce62..0000000 --- a/src/main/java/hhplus/lecture/domain/model/Registration.java +++ /dev/null @@ -1,29 +0,0 @@ -package hhplus.lecture.domain.model; - -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * 강의 신청에 필요한 정보 - */ -@Getter -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class Registration { - - private Long registrationId; // 고유 식별자 - private String userCode; // 사용자 고유 코드 - private String lectureItemCode; // 강의 일정 고유 코드 - private RegistrationStatus status; // 신청 상태 - private LocalDateTime registrationDate; // 신청 날짜 - - // 신청 내역 생성 - public Registration(String userCode, String lectureItemCode, RegistrationStatus status, LocalDateTime registrationDate) { - this.userCode = userCode; - this.lectureItemCode = lectureItemCode; - this.status = status; - this.registrationDate = registrationDate; - } -} diff --git a/src/main/java/hhplus/lecture/domain/model/User.java b/src/main/java/hhplus/lecture/domain/model/User.java deleted file mode 100644 index 180a659..0000000 --- a/src/main/java/hhplus/lecture/domain/model/User.java +++ /dev/null @@ -1,19 +0,0 @@ -package hhplus.lecture.domain.model; - -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class User { - - private Long userId; // 고유 식별자 - private String userCode; // 사용자 고유 코드 (학번 등) - private String userName; // 사용자 이름 - - public User(String userCode, String userName) { - this.userCode = userCode; - this.userName = userName; - } -} diff --git a/src/main/java/hhplus/lecture/infrastructure/repository/InstructorRepository.java b/src/main/java/hhplus/lecture/infrastructure/repository/InstructorRepository.java index 0853778..58223fd 100644 --- a/src/main/java/hhplus/lecture/infrastructure/repository/InstructorRepository.java +++ b/src/main/java/hhplus/lecture/infrastructure/repository/InstructorRepository.java @@ -1,6 +1,6 @@ package hhplus.lecture.infrastructure.repository; -import hhplus.lecture.infrastructure.persistence.InstructorEntity; +import hhplus.lecture.domain.InstructorEntity; import org.springframework.data.jpa.repository.JpaRepository; public interface InstructorRepository extends JpaRepository { diff --git a/src/main/java/hhplus/lecture/infrastructure/repository/LectureItemRepository.java b/src/main/java/hhplus/lecture/infrastructure/repository/LectureItemRepository.java index dd3fea2..944495b 100644 --- a/src/main/java/hhplus/lecture/infrastructure/repository/LectureItemRepository.java +++ b/src/main/java/hhplus/lecture/infrastructure/repository/LectureItemRepository.java @@ -1,6 +1,6 @@ package hhplus.lecture.infrastructure.repository; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; +import hhplus.lecture.domain.LectureItemEntity; import jakarta.persistence.LockModeType; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Lock; diff --git a/src/main/java/hhplus/lecture/infrastructure/repository/LectureRepository.java b/src/main/java/hhplus/lecture/infrastructure/repository/LectureRepository.java index ec914eb..75d2d17 100644 --- a/src/main/java/hhplus/lecture/infrastructure/repository/LectureRepository.java +++ b/src/main/java/hhplus/lecture/infrastructure/repository/LectureRepository.java @@ -1,6 +1,6 @@ package hhplus.lecture.infrastructure.repository; -import hhplus.lecture.infrastructure.persistence.LectureEntity; +import hhplus.lecture.domain.LectureEntity; import org.springframework.data.jpa.repository.JpaRepository; public interface LectureRepository extends JpaRepository { diff --git a/src/main/java/hhplus/lecture/infrastructure/repository/RegistrationRepository.java b/src/main/java/hhplus/lecture/infrastructure/repository/RegistrationRepository.java index 66e736e..797ed25 100644 --- a/src/main/java/hhplus/lecture/infrastructure/repository/RegistrationRepository.java +++ b/src/main/java/hhplus/lecture/infrastructure/repository/RegistrationRepository.java @@ -1,6 +1,6 @@ package hhplus.lecture.infrastructure.repository; -import hhplus.lecture.infrastructure.persistence.RegistrationEntity; +import hhplus.lecture.domain.RegistrationEntity; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/hhplus/lecture/infrastructure/repository/UsersRepository.java b/src/main/java/hhplus/lecture/infrastructure/repository/UsersRepository.java index 0f9062c..61c11eb 100644 --- a/src/main/java/hhplus/lecture/infrastructure/repository/UsersRepository.java +++ b/src/main/java/hhplus/lecture/infrastructure/repository/UsersRepository.java @@ -1,6 +1,6 @@ package hhplus.lecture.infrastructure.repository; -import hhplus.lecture.infrastructure.persistence.UserEntity; +import hhplus.lecture.domain.UserEntity; import org.springframework.data.repository.CrudRepository; public interface UsersRepository extends CrudRepository { diff --git a/src/main/java/hhplus/lecture/interfaces/controller/LectureController.java b/src/main/java/hhplus/lecture/interfaces/controller/LectureController.java index 998f1ea..76fc6bb 100644 --- a/src/main/java/hhplus/lecture/interfaces/controller/LectureController.java +++ b/src/main/java/hhplus/lecture/interfaces/controller/LectureController.java @@ -16,8 +16,8 @@ public class LectureController { // 특강 목록 구현 @GetMapping public ResponseEntity> getLectures() { - List lectureDtos = lectureService.getAllLectures(); - return ResponseEntity.ok(lectureDtos); + List lectureDto = lectureService.getAllLectures(); + return ResponseEntity.ok(lectureDto); } // 신청 가능한 특강 목록 diff --git a/src/main/java/hhplus/lecture/interfaces/dto/lecture/LectureDto.java b/src/main/java/hhplus/lecture/interfaces/dto/lecture/LectureDto.java index a104021..1263cb3 100644 --- a/src/main/java/hhplus/lecture/interfaces/dto/lecture/LectureDto.java +++ b/src/main/java/hhplus/lecture/interfaces/dto/lecture/LectureDto.java @@ -1,7 +1,7 @@ package hhplus.lecture.interfaces.dto.lecture; -import hhplus.lecture.infrastructure.persistence.LectureEntity; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; +import hhplus.lecture.domain.LectureEntity; +import hhplus.lecture.domain.LectureItemEntity; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationRequestDto.java b/src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationRequestDto.java deleted file mode 100644 index 746753f..0000000 --- a/src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationRequestDto.java +++ /dev/null @@ -1,25 +0,0 @@ -package hhplus.lecture.interfaces.dto.registratration; - -import hhplus.lecture.domain.model.RegistrationStatus; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * 사용자가 특강 신청할 때 사용할 DTO - */ -@Getter -@Setter -@NoArgsConstructor -public class RegistrationRequestDto { - - private String userCode; // 신청자의 사용자 고유 코드 - private String lectureItemCode; // 신청하려는 강의 일정 고유 코드 - private RegistrationStatus status = RegistrationStatus.REFUSAL; // 신청 상태 (기본값으로 REFUSAL 설정) - - public RegistrationRequestDto(String userCode, String lectureItemCode, RegistrationStatus status) { - this.userCode = userCode; - this.lectureItemCode = lectureItemCode; - this.status = status; - } -} diff --git a/src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationStatusResponseDto.java b/src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationStatusResponseDto.java deleted file mode 100644 index dea9296..0000000 --- a/src/main/java/hhplus/lecture/interfaces/dto/registratration/RegistrationStatusResponseDto.java +++ /dev/null @@ -1,37 +0,0 @@ -package hhplus.lecture.interfaces.dto.registratration; - -import hhplus.lecture.domain.model.Registration; -import hhplus.lecture.domain.model.RegistrationStatus; -import lombok.Getter; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * 특강 신청 상태 응답 - */ -@Getter -@NoArgsConstructor -public class RegistrationStatusResponseDto { - - private String userCode; // 사용자 고유 코드 - private String lectureItemCode; // 강의 일정 고유 코드 - private RegistrationStatus status; // 신청 상태 - private LocalDateTime registrationDate; // 신청 날짜 - - public RegistrationStatusResponseDto(String userCode, String lectureItemCode, RegistrationStatus status, LocalDateTime registrationDate) { - this.userCode = userCode; - this.lectureItemCode = lectureItemCode; - this.status = status; - this.registrationDate = registrationDate; - } - - public static RegistrationStatusResponseDto fromDomain(Registration registration) { - return new RegistrationStatusResponseDto( - registration.getUserCode(), - registration.getLectureItemCode(), - registration.getStatus(), - registration.getRegistrationDate() - ); - } -} diff --git a/src/main/java/hhplus/lecture/interfaces/dto/user/UserResponseDto.java b/src/main/java/hhplus/lecture/interfaces/dto/user/UserResponseDto.java index 8b4fa03..a98c134 100644 --- a/src/main/java/hhplus/lecture/interfaces/dto/user/UserResponseDto.java +++ b/src/main/java/hhplus/lecture/interfaces/dto/user/UserResponseDto.java @@ -1,6 +1,6 @@ package hhplus.lecture.interfaces.dto.user; -import hhplus.lecture.infrastructure.persistence.UserEntity; +import hhplus.lecture.domain.UserEntity; import hhplus.lecture.interfaces.dto.lecture.LectureDto; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/test/java/hhplus/lecture/application/service/LectureServiceTest.java b/src/test/java/hhplus/lecture/application/service/LectureServiceTest.java index 51ba940..368ba27 100644 --- a/src/test/java/hhplus/lecture/application/service/LectureServiceTest.java +++ b/src/test/java/hhplus/lecture/application/service/LectureServiceTest.java @@ -1,12 +1,11 @@ package hhplus.lecture.application.service; -import hhplus.lecture.domain.model.Lecture; -import hhplus.lecture.infrastructure.persistence.InstructorEntity; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; +import hhplus.lecture.domain.InstructorEntity; +import hhplus.lecture.domain.LectureItemEntity; import hhplus.lecture.infrastructure.repository.InstructorRepository; import hhplus.lecture.infrastructure.repository.LectureItemRepository; import hhplus.lecture.infrastructure.repository.LectureRepository; -import hhplus.lecture.infrastructure.persistence.LectureEntity; +import hhplus.lecture.domain.LectureEntity; import hhplus.lecture.interfaces.dto.lecture.LectureDto; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -62,7 +61,7 @@ class LectureServiceTest { when(lectureRepository.findByLectureCode(lectureCode)).thenReturn(lectureEntity); // when : 특강 조회 - Lecture result = lectureService.getLecture(lectureCode); + LectureEntity result = lectureService.getLecture(lectureCode); // then : 조회된 특강 정보가 원하는 특강 정보와 일치하는지 확인 assertThat(result).isNotNull(); diff --git a/src/test/java/hhplus/lecture/application/service/RegistrationServiceTest.java b/src/test/java/hhplus/lecture/application/service/RegistrationServiceTest.java index 6afbe85..232c927 100644 --- a/src/test/java/hhplus/lecture/application/service/RegistrationServiceTest.java +++ b/src/test/java/hhplus/lecture/application/service/RegistrationServiceTest.java @@ -1,8 +1,8 @@ package hhplus.lecture.application.service; import hhplus.lecture.domain.model.RegistrationStatus; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; -import hhplus.lecture.infrastructure.persistence.RegistrationEntity; +import hhplus.lecture.domain.LectureItemEntity; +import hhplus.lecture.domain.RegistrationEntity; import hhplus.lecture.infrastructure.repository.LectureItemRepository; import hhplus.lecture.infrastructure.repository.RegistrationRepository; import org.junit.jupiter.api.Test; diff --git a/src/test/java/hhplus/lecture/application/service/UserServiceTest.java b/src/test/java/hhplus/lecture/application/service/UserServiceTest.java index f0b0cc7..ab2f42f 100644 --- a/src/test/java/hhplus/lecture/application/service/UserServiceTest.java +++ b/src/test/java/hhplus/lecture/application/service/UserServiceTest.java @@ -1,7 +1,7 @@ package hhplus.lecture.application.service; +import hhplus.lecture.domain.*; import hhplus.lecture.domain.model.RegistrationStatus; -import hhplus.lecture.infrastructure.persistence.*; import hhplus.lecture.infrastructure.repository.*; import hhplus.lecture.interfaces.dto.user.UserResponseDto; import org.junit.jupiter.api.Test; diff --git a/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java b/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java index 6a0dfe9..02e33cb 100644 --- a/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java +++ b/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java @@ -1,7 +1,7 @@ package hhplus.lecture.application.service.test; import hhplus.lecture.application.service.RegistrationService; -import hhplus.lecture.infrastructure.persistence.LectureItemEntity; +import hhplus.lecture.domain.LectureItemEntity; import hhplus.lecture.infrastructure.repository.LectureItemRepository; import jakarta.transaction.Transactional; import org.junit.jupiter.api.Test;