From ba9da3710ae001409ed75d27d666f474a7bb3d2e Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:12:27 +0900 Subject: [PATCH 01/13] =?UTF-8?q?:art:=20[STMT-200]=20ApiResponse=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=98=88=EC=A0=95=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EC=9E=AC=EB=B0=B0=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/common/model/ApiResponse.java | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/stumeet/server/common/model/ApiResponse.java b/src/main/java/com/stumeet/server/common/model/ApiResponse.java index 9fb3527f..ecea7f9e 100644 --- a/src/main/java/com/stumeet/server/common/model/ApiResponse.java +++ b/src/main/java/com/stumeet/server/common/model/ApiResponse.java @@ -4,6 +4,8 @@ import com.stumeet.server.common.exception.error.Error; import com.stumeet.server.common.response.ErrorCode; import com.stumeet.server.common.exception.error.ErrorField; +import com.stumeet.server.common.response.SuccessCode; + import java.util.List; import org.springframework.validation.BindingResult; @@ -13,17 +15,9 @@ public record ApiResponse( @JsonInclude(value = JsonInclude.Include.NON_NULL) T data ) { - public static ApiResponse success(int code, String message, T data) { - return new ApiResponse<>(code, message, data); - } - public static ApiResponse success(int code, String message) { - return new ApiResponse<>(code, message, null); - } - - // TODO: 삭제 예정 메서드 : 해당 메서드를 사용 부분 수정 요망 - public static ApiResponse fail(int code, String message) { - return new ApiResponse<>(code, message, null); + public static ApiResponse success(SuccessCode code, T data) { + return new ApiResponse<>(code.getHttpStatusCode(), code.getMessage(), data); } public static ApiResponse fail(ErrorCode errorCode) { @@ -41,4 +35,19 @@ public static ApiResponse> fail(ErrorCode errorCode, BindingResult b ErrorField.toErrors(bindingResult) ); } + + // TODO: 삭제 예정 메서드 : 해당 메서드를 사용 부분 수정 요망 + + public static ApiResponse success(int code, String message, T data) { + return new ApiResponse<>(code, message, data); + } + + public static ApiResponse success(int code, String message) { + return new ApiResponse<>(code, message, null); + } + + public static ApiResponse fail(int code, String message) { + return new ApiResponse<>(code, message, null); + } + } From 0d4855fb43da0966594d8cd299b3d269609cdd08 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:14:07 +0900 Subject: [PATCH 02/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20?= =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stumeet/server/study/domain/Study.java | 59 +++++++++++++++++++ .../server/study/domain/StudyField.java | 16 +++++ .../server/study/domain/StudyHeadCount.java | 17 ++++++ .../server/study/domain/StudyPeriod.java | 20 +++++++ .../server/study/domain/StudyTopics.java | 35 +++++++++++ 5 files changed, 147 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/domain/Study.java create mode 100644 src/main/java/com/stumeet/server/study/domain/StudyField.java create mode 100644 src/main/java/com/stumeet/server/study/domain/StudyHeadCount.java create mode 100644 src/main/java/com/stumeet/server/study/domain/StudyPeriod.java create mode 100644 src/main/java/com/stumeet/server/study/domain/StudyTopics.java diff --git a/src/main/java/com/stumeet/server/study/domain/Study.java b/src/main/java/com/stumeet/server/study/domain/Study.java new file mode 100644 index 00000000..670ae198 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/domain/Study.java @@ -0,0 +1,59 @@ +package com.stumeet.server.study.domain; + +import java.time.LocalDateTime; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder +@Getter +public class Study { + + private Long id; + + private String name; + + private StudyField field; + + private StudyTopics studyTopics; + + private String region; + + private String intro; + + private String rule; + + private StudyPeriod period; + + private StudyHeadCount headCount; + + private String mainImage; + + private Boolean isFinished; + + private Boolean isDeleted; + + public String getFieldName() { + return field.getName(); + } + + public String getAssembledTopics() { + return studyTopics.assemble(); + } + + public int getHeadCountNumber() { + return headCount.getNumber(); + } + + public LocalDateTime getStartDate() { + return period.getStartDate(); + } + + public LocalDateTime getEndDate() { + return period.getEndDate(); + } +} + diff --git a/src/main/java/com/stumeet/server/study/domain/StudyField.java b/src/main/java/com/stumeet/server/study/domain/StudyField.java new file mode 100644 index 00000000..7cb01c6d --- /dev/null +++ b/src/main/java/com/stumeet/server/study/domain/StudyField.java @@ -0,0 +1,16 @@ +package com.stumeet.server.study.domain; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder +@Getter +public class StudyField { + + private Long id; + + private String name; +} diff --git a/src/main/java/com/stumeet/server/study/domain/StudyHeadCount.java b/src/main/java/com/stumeet/server/study/domain/StudyHeadCount.java new file mode 100644 index 00000000..b17d4e07 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/domain/StudyHeadCount.java @@ -0,0 +1,17 @@ +package com.stumeet.server.study.domain; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Getter +public class StudyHeadCount { + + private int number; + + public static StudyHeadCount from(int number) { + return new StudyHeadCount(number); + } +} + diff --git a/src/main/java/com/stumeet/server/study/domain/StudyPeriod.java b/src/main/java/com/stumeet/server/study/domain/StudyPeriod.java new file mode 100644 index 00000000..82e87774 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/domain/StudyPeriod.java @@ -0,0 +1,20 @@ +package com.stumeet.server.study.domain; + +import java.time.LocalDateTime; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Getter +public class StudyPeriod { + + private LocalDateTime startDate; + + private LocalDateTime endDate; + + public static StudyPeriod of(LocalDateTime startDate, LocalDateTime endDate) { + return new StudyPeriod(startDate, endDate); + } +} diff --git a/src/main/java/com/stumeet/server/study/domain/StudyTopics.java b/src/main/java/com/stumeet/server/study/domain/StudyTopics.java new file mode 100644 index 00000000..34b3369d --- /dev/null +++ b/src/main/java/com/stumeet/server/study/domain/StudyTopics.java @@ -0,0 +1,35 @@ +package com.stumeet.server.study.domain; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import lombok.Getter; + +@Getter +public class StudyTopics { + + private static final String TOPIC_DELIMITER = ";"; + + private final List topics; + + private StudyTopics(List topics) { + this.topics = topics; + } + + public static StudyTopics from(String rawTopics) { + List topics = splitTopicsIntoList(rawTopics); + return new StudyTopics(topics); + } + + private static List splitTopicsIntoList(String rawTopics) { + if (rawTopics != null) { + return Arrays.stream(rawTopics.split(TOPIC_DELIMITER)).toList(); + } + return Collections.emptyList(); + } + + protected String assemble() { + return String.join(";", topics); + } +} From 7f8fc78925437a4feefd3e00c2932b2d7db717f1 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:14:42 +0900 Subject: [PATCH 03/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20Jpa=20E?= =?UTF-8?q?ntity=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/StudyFieldJpaEntity.java | 33 ++++++ .../persistance/entity/StudyJpaEntity.java | 100 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java new file mode 100644 index 00000000..5049b5b2 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java @@ -0,0 +1,33 @@ +package com.stumeet.server.study.adapter.out.persistance.entity; + +import org.hibernate.annotations.Comment; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "study_domain") +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +public class StudyFieldJpaEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Comment("스터디 분야 아이디") + private Long id; + + @Column(name = "name", length = 20) + @Comment("분야명") + private String name; +} diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java new file mode 100644 index 00000000..f37d4065 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java @@ -0,0 +1,100 @@ +package com.stumeet.server.study.adapter.out.persistance.entity; + +import java.time.LocalDateTime; + +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Comment; + +import com.stumeet.server.common.model.BaseTimeEntity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "study") +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +public class StudyJpaEntity extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Comment("스터디 그룹 아이디") + private Long id; + + @ManyToOne + @JoinColumn(name = "domain_id", nullable = false) + @Comment("분야") + private StudyFieldJpaEntity field; + + @Column(name = "name", length = 20, nullable = false) + @Comment("스터디명") + private String name; + + @Column(name = "topics") + @Comment("주제") + private String topics; + + @Column(name = "intro", length = 100, nullable = false) + @Comment("소개") + private String intro; + + @Column(name = "region", length = 50, nullable = false) + @Comment("지역") + private String region; + + @Column(name = "rule", length = 100) + @Comment("규칙") + private String rule; + + @Column(name = "main_image", length = 500) + @Comment("메인 이미지") + private String mainImage; + + @Column(name = "head_count", length = 100, nullable = false) + @ColumnDefault("1") + @Comment("현재 인원") + private int headCount; + + @Column(name = "start_date", nullable = false) + @Comment("시작일") + private LocalDateTime startDate; + + @Column(name = "end_date", nullable = false) + @Comment("종료일") + private LocalDateTime endDate; + + @Column(name = "is_finished", nullable = false) + @ColumnDefault("false") + @Comment("완료 여부") + private boolean isFinished; + + @Column(name = "is_deleted", nullable = false) + @ColumnDefault("false") + @Comment("삭제 여부") + private boolean isDeleted; + + @Column(name = "deleted_at") + @Comment("삭제된 시간") + private LocalDateTime deletedAt; + + public Boolean getIsFinished() { + return this.isFinished; + } + + public Boolean getIsDeleted() { + return this.isDeleted; + } +} From 9f480b02191742e8ffd129e71326e54eaa4b55d3 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:16:46 +0900 Subject: [PATCH 04/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20Persist?= =?UTF-8?q?ance=20Mapper=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/StudyFieldPersistenceMapper.java | 24 +++++++++ .../mapper/StudyPersistenceMapper.java | 53 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyFieldPersistenceMapper.java create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyFieldPersistenceMapper.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyFieldPersistenceMapper.java new file mode 100644 index 00000000..ae4ce012 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyFieldPersistenceMapper.java @@ -0,0 +1,24 @@ +package com.stumeet.server.study.adapter.out.persistance.mapper; + +import org.springframework.stereotype.Component; + +import com.stumeet.server.study.adapter.out.persistance.entity.StudyFieldJpaEntity; +import com.stumeet.server.study.domain.StudyField; + +@Component +public class StudyFieldPersistenceMapper { + + public StudyFieldJpaEntity toEntity(StudyField domain) { + return StudyFieldJpaEntity.builder() + .id(domain.getId()) + .name(domain.getName()) + .build(); + } + + public StudyField toDomain(StudyFieldJpaEntity entity) { + return StudyField.builder() + .id(entity.getId()) + .name(entity.getName()) + .build(); + } +} diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java new file mode 100644 index 00000000..ba52595d --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java @@ -0,0 +1,53 @@ +package com.stumeet.server.study.adapter.out.persistance.mapper; + +import org.springframework.stereotype.Component; + +import com.stumeet.server.study.adapter.out.persistance.entity.StudyJpaEntity; +import com.stumeet.server.study.domain.Study; +import com.stumeet.server.study.domain.StudyHeadCount; +import com.stumeet.server.study.domain.StudyPeriod; +import com.stumeet.server.study.domain.StudyTopics; + +import lombok.RequiredArgsConstructor; + +@Component +@RequiredArgsConstructor +public class StudyPersistenceMapper { + + private final StudyFieldPersistenceMapper studyFieldPersistenceMapper; + + public StudyJpaEntity toEntity(Study domain) { + return StudyJpaEntity.builder() + .id(domain.getId()) + .name(domain.getName()) + .field(studyFieldPersistenceMapper.toEntity(domain.getField())) + .topics(domain.getAssembledTopics()) + .region(domain.getRegion()) + .intro(domain.getIntro()) + .rule(domain.getRule()) + .startDate(domain.getStartDate()) + .endDate(domain.getEndDate()) + .headCount(domain.getHeadCountNumber()) + .mainImage(domain.getMainImage()) + .isFinished(domain.getIsFinished()) + .isDeleted(domain.getIsDeleted()) + .build(); + } + + public Study toDomain(StudyJpaEntity entity) { + return Study.builder() + .id(entity.getId()) + .name(entity.getName()) + .field(studyFieldPersistenceMapper.toDomain(entity.getField())) + .studyTopics(StudyTopics.from(entity.getTopics())) + .region(entity.getRegion()) + .intro(entity.getIntro()) + .rule(entity.getRule()) + .period(StudyPeriod.of(entity.getStartDate(), entity.getEndDate())) + .headCount(StudyHeadCount.from(entity.getHeadCount())) + .mainImage(entity.getMainImage()) + .isFinished(entity.getIsFinished()) + .isDeleted(entity.getIsDeleted()) + .build(); + } +} From d62b27dfc8812c2001d5a1e83e60c1687eba3075 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:18:07 +0900 Subject: [PATCH 05/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20Reposit?= =?UTF-8?q?ory=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/common/response/ErrorCode.java | 5 +++++ .../out/persistance/JpaStudyRepository.java | 8 +++++++ .../out/persistance/StudyRepository.java | 9 ++++++++ .../out/persistance/StudyRepositoryImpl.java | 22 +++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/JpaStudyRepository.java create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepository.java create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepositoryImpl.java diff --git a/src/main/java/com/stumeet/server/common/response/ErrorCode.java b/src/main/java/com/stumeet/server/common/response/ErrorCode.java index 6226136a..f481cd4e 100644 --- a/src/main/java/com/stumeet/server/common/response/ErrorCode.java +++ b/src/main/java/com/stumeet/server/common/response/ErrorCode.java @@ -30,6 +30,11 @@ public enum ErrorCode { */ ACCESS_DENIED_EXCEPTION(HttpStatus.FORBIDDEN, "유효하지 않은 요청입니다."), + /* + 404 - NOT FOUND + */ + STUDY_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 스터디 입니다."), + /* 500 - INTERNAL SERVER ERROR */ diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/JpaStudyRepository.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/JpaStudyRepository.java new file mode 100644 index 00000000..02207a99 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/JpaStudyRepository.java @@ -0,0 +1,8 @@ +package com.stumeet.server.study.adapter.out.persistance; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.stumeet.server.study.adapter.out.persistance.entity.StudyJpaEntity; + +public interface JpaStudyRepository extends JpaRepository { +} diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepository.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepository.java new file mode 100644 index 00000000..b139fbb7 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepository.java @@ -0,0 +1,9 @@ +package com.stumeet.server.study.adapter.out.persistance; + +import com.stumeet.server.study.adapter.out.persistance.entity.StudyJpaEntity; + +public interface StudyRepository { + + StudyJpaEntity findById(Long id); + +} diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepositoryImpl.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepositoryImpl.java new file mode 100644 index 00000000..4ea34c28 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyRepositoryImpl.java @@ -0,0 +1,22 @@ +package com.stumeet.server.study.adapter.out.persistance; + +import org.springframework.stereotype.Repository; + +import com.stumeet.server.common.exception.model.BusinessException; +import com.stumeet.server.common.response.ErrorCode; +import com.stumeet.server.study.adapter.out.persistance.entity.StudyJpaEntity; + +import lombok.RequiredArgsConstructor; + +@Repository +@RequiredArgsConstructor +public class StudyRepositoryImpl implements StudyRepository { + + private final JpaStudyRepository jpaStudyRepository; + + @Override + public StudyJpaEntity findById(Long id) { + return jpaStudyRepository.findById(id) + .orElseThrow(() -> new BusinessException(ErrorCode.STUDY_NOT_FOUND)); + } +} From 2de99e42dd89aa55612f407a49e452c0e0c8aa1c Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:18:34 +0900 Subject: [PATCH 06/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20Persist?= =?UTF-8?q?ence=20Adapter=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistance/StudyPersistenceAdapter.java | 23 +++++++++++++++++++ .../application/port/out/StudyQueryPort.java | 8 +++++++ 2 files changed, 31 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyPersistenceAdapter.java create mode 100644 src/main/java/com/stumeet/server/study/application/port/out/StudyQueryPort.java diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyPersistenceAdapter.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyPersistenceAdapter.java new file mode 100644 index 00000000..f404ea27 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/StudyPersistenceAdapter.java @@ -0,0 +1,23 @@ +package com.stumeet.server.study.adapter.out.persistance; + +import com.stumeet.server.common.annotation.PersistenceAdapter; +import com.stumeet.server.study.adapter.out.persistance.entity.StudyJpaEntity; +import com.stumeet.server.study.adapter.out.persistance.mapper.StudyPersistenceMapper; +import com.stumeet.server.study.application.port.out.StudyQueryPort; +import com.stumeet.server.study.domain.Study; + +import lombok.RequiredArgsConstructor; + +@PersistenceAdapter +@RequiredArgsConstructor +public class StudyPersistenceAdapter implements StudyQueryPort { + + private final StudyRepository studyRepository; + private final StudyPersistenceMapper studyPersistenceMapper; + + @Override + public Study getById(Long id) { + StudyJpaEntity entity = studyRepository.findById(id); + return studyPersistenceMapper.toDomain(entity); + } +} diff --git a/src/main/java/com/stumeet/server/study/application/port/out/StudyQueryPort.java b/src/main/java/com/stumeet/server/study/application/port/out/StudyQueryPort.java new file mode 100644 index 00000000..98b4d6b9 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/application/port/out/StudyQueryPort.java @@ -0,0 +1,8 @@ +package com.stumeet.server.study.application.port.out; + +import com.stumeet.server.study.domain.Study; + +public interface StudyQueryPort { + + Study getById(Long id); +} From 6c343faec95309570afe803a60ede5e1c1a0fcfc Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:19:35 +0900 Subject: [PATCH 07/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20Query?= =?UTF-8?q?=20Service=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../port/in/StudyQueryUseCase.java | 8 ++++++++ .../service/StudyQueryService.java | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java create mode 100644 src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java diff --git a/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java b/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java new file mode 100644 index 00000000..4aa850aa --- /dev/null +++ b/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java @@ -0,0 +1,8 @@ +package com.stumeet.server.study.application.port.in; + +import com.stumeet.server.study.domain.Study; + +public interface StudyQueryUseCase { + + Study getById(Long id); +} diff --git a/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java b/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java new file mode 100644 index 00000000..da348ec3 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java @@ -0,0 +1,20 @@ +package com.stumeet.server.study.application.service; + +import com.stumeet.server.common.annotation.UseCase; +import com.stumeet.server.study.application.port.in.StudyQueryUseCase; +import com.stumeet.server.study.application.port.out.StudyQueryPort; +import com.stumeet.server.study.domain.Study; + +import lombok.RequiredArgsConstructor; + +@UseCase +@RequiredArgsConstructor +public class StudyQueryService implements StudyQueryUseCase { + + private final StudyQueryPort studyQueryPort; + + @Override + public Study getById(Long id) { + return studyQueryPort.getById(id); + } +} From bf5b2e007fc5f373435a3d61149e1a3dafb688b2 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Fri, 8 Mar 2024 00:19:57 +0900 Subject: [PATCH 08/13] =?UTF-8?q?:sparkles:=20[STMT-200]=20Study=20id?= =?UTF-8?q?=EB=A1=9C=20=EA=B0=80=EC=A0=B8=EC=98=A4=EA=B8=B0=20API=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/common/response/SuccessCode.java | 1 + .../study/adapter/in/web/StudyQueryApi.java | 35 +++++++++++++++++++ .../in/web/response/StudyDetailResponse.java | 24 +++++++++++++ .../port/out/mapper/StudyUseCaseMapper.java | 28 +++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java create mode 100644 src/main/java/com/stumeet/server/study/adapter/in/web/response/StudyDetailResponse.java create mode 100644 src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java diff --git a/src/main/java/com/stumeet/server/common/response/SuccessCode.java b/src/main/java/com/stumeet/server/common/response/SuccessCode.java index c728779b..a418d466 100644 --- a/src/main/java/com/stumeet/server/common/response/SuccessCode.java +++ b/src/main/java/com/stumeet/server/common/response/SuccessCode.java @@ -9,6 +9,7 @@ @AllArgsConstructor(access = AccessLevel.PRIVATE) public enum SuccessCode { + GET_SUCCESS(HttpStatus.OK, "조회에 성공했습니다."), SIGN_UP_SUCCESS(HttpStatus.CREATED, "회원가입에 성공했습니다.") ; diff --git a/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java b/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java new file mode 100644 index 00000000..d11407a1 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java @@ -0,0 +1,35 @@ +package com.stumeet.server.study.adapter.in.web; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.stumeet.server.common.annotation.WebAdapter; +import com.stumeet.server.common.model.ApiResponse; +import com.stumeet.server.common.response.SuccessCode; +import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; +import com.stumeet.server.study.application.port.in.StudyQueryUseCase; +import com.stumeet.server.study.application.port.out.mapper.StudyUseCaseMapper; + +import lombok.RequiredArgsConstructor; + +@WebAdapter +@RequestMapping("/api/v1/studies") +@RequiredArgsConstructor +public class StudyQueryApi { + + private final StudyQueryUseCase studyQueryUseCase; + + private final StudyUseCaseMapper studyUseCaseMapper; + + @GetMapping("/{id}") + public ResponseEntity> getStudy( + @PathVariable(name = "id") Long id + ) { + StudyDetailResponse response = + studyUseCaseMapper.toStudyDetailResponse(studyQueryUseCase.getById(id)); + + return ResponseEntity.ok(ApiResponse.success(SuccessCode.GET_SUCCESS, response)); + } +} diff --git a/src/main/java/com/stumeet/server/study/adapter/in/web/response/StudyDetailResponse.java b/src/main/java/com/stumeet/server/study/adapter/in/web/response/StudyDetailResponse.java new file mode 100644 index 00000000..5b1e480b --- /dev/null +++ b/src/main/java/com/stumeet/server/study/adapter/in/web/response/StudyDetailResponse.java @@ -0,0 +1,24 @@ +package com.stumeet.server.study.adapter.in.web.response; + +import java.time.LocalDateTime; +import java.util.List; + +import lombok.Builder; + +@Builder +public record StudyDetailResponse( + Long id, + String field, + String name, + List topics, + String intro, + String region, + String rule, + String mainImage, + int headCount, + LocalDateTime startDate, + LocalDateTime endDate, + boolean isFinished, + boolean isDeleted +) { +} diff --git a/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java b/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java new file mode 100644 index 00000000..6fdbf698 --- /dev/null +++ b/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java @@ -0,0 +1,28 @@ +package com.stumeet.server.study.application.port.out.mapper; + +import org.springframework.stereotype.Component; + +import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; +import com.stumeet.server.study.domain.Study; + +@Component +public class StudyUseCaseMapper { + + public StudyDetailResponse toStudyDetailResponse(Study study) { + return StudyDetailResponse.builder() + .id(study.getId()) + .name(study.getName()) + .field(study.getFieldName()) + .topics(study.getStudyTopics().getTopics()) + .region(study.getRegion()) + .intro(study.getIntro()) + .rule(study.getRule()) + .startDate(study.getStartDate()) + .endDate(study.getEndDate()) + .headCount(study.getHeadCountNumber()) + .mainImage(study.getMainImage()) + .isFinished(study.getIsFinished()) + .isDeleted(study.getIsDeleted()) + .build(); + } +} From 5621e7f596edde486142cb1766a81a0d68e766d8 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Sat, 9 Mar 2024 16:22:10 +0900 Subject: [PATCH 09/13] =?UTF-8?q?:construction:=20[STMT-200]=20=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=EB=B0=98=EC=98=81:=20Service=EC=97=90=EC=84=9C=20Mapp?= =?UTF-8?q?ing=EB=90=9C=20Response=20=EC=A0=84=EB=8B=AC=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/study/adapter/in/web/StudyQueryApi.java | 7 +------ .../study/application/port/in/StudyQueryUseCase.java | 4 ++-- .../study/application/service/StudyQueryService.java | 8 ++++++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java b/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java index d11407a1..cd239f72 100644 --- a/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java +++ b/src/main/java/com/stumeet/server/study/adapter/in/web/StudyQueryApi.java @@ -10,7 +10,6 @@ import com.stumeet.server.common.response.SuccessCode; import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; import com.stumeet.server.study.application.port.in.StudyQueryUseCase; -import com.stumeet.server.study.application.port.out.mapper.StudyUseCaseMapper; import lombok.RequiredArgsConstructor; @@ -21,15 +20,11 @@ public class StudyQueryApi { private final StudyQueryUseCase studyQueryUseCase; - private final StudyUseCaseMapper studyUseCaseMapper; - @GetMapping("/{id}") public ResponseEntity> getStudy( @PathVariable(name = "id") Long id ) { - StudyDetailResponse response = - studyUseCaseMapper.toStudyDetailResponse(studyQueryUseCase.getById(id)); - + StudyDetailResponse response = studyQueryUseCase.getStudyDetailById(id); return ResponseEntity.ok(ApiResponse.success(SuccessCode.GET_SUCCESS, response)); } } diff --git a/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java b/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java index 4aa850aa..b2972b0f 100644 --- a/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java +++ b/src/main/java/com/stumeet/server/study/application/port/in/StudyQueryUseCase.java @@ -1,8 +1,8 @@ package com.stumeet.server.study.application.port.in; -import com.stumeet.server.study.domain.Study; +import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; public interface StudyQueryUseCase { - Study getById(Long id); + StudyDetailResponse getStudyDetailById(Long id); } diff --git a/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java b/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java index da348ec3..d39da283 100644 --- a/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java +++ b/src/main/java/com/stumeet/server/study/application/service/StudyQueryService.java @@ -1,8 +1,10 @@ package com.stumeet.server.study.application.service; import com.stumeet.server.common.annotation.UseCase; +import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; import com.stumeet.server.study.application.port.in.StudyQueryUseCase; import com.stumeet.server.study.application.port.out.StudyQueryPort; +import com.stumeet.server.study.application.port.out.mapper.StudyUseCaseMapper; import com.stumeet.server.study.domain.Study; import lombok.RequiredArgsConstructor; @@ -12,9 +14,11 @@ public class StudyQueryService implements StudyQueryUseCase { private final StudyQueryPort studyQueryPort; + private final StudyUseCaseMapper studyUseCaseMapper; @Override - public Study getById(Long id) { - return studyQueryPort.getById(id); + public StudyDetailResponse getStudyDetailById(Long id) { + Study study = studyQueryPort.getById(id); + return studyUseCaseMapper.toStudyDetailResponse(study); } } From 70ad3d7bee9f66a17a9359bb9d7a203c4c1b0bff Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Sat, 9 Mar 2024 16:47:23 +0900 Subject: [PATCH 10/13] =?UTF-8?q?:construction:=20[STMT-200]=20=EC=8A=A4?= =?UTF-8?q?=ED=84=B0=EB=94=94=20=EB=B6=84=EC=95=BC(domain=20->=20field)=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=ED=9B=84=20=EB=88=84=EB=9D=BD=EB=90=9C=20?= =?UTF-8?q?=EB=B6=80=EB=B6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/out/persistance/entity/StudyFieldJpaEntity.java | 2 +- .../study/adapter/out/persistance/entity/StudyJpaEntity.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java index 5049b5b2..39ef9154 100644 --- a/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyFieldJpaEntity.java @@ -15,7 +15,7 @@ import lombok.NoArgsConstructor; @Entity -@Table(name = "study_domain") +@Table(name = "study_field") @Getter @Builder @NoArgsConstructor(access = AccessLevel.PROTECTED) diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java index f37d4065..36e901d4 100644 --- a/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/entity/StudyJpaEntity.java @@ -35,9 +35,9 @@ public class StudyJpaEntity extends BaseTimeEntity { private Long id; @ManyToOne - @JoinColumn(name = "domain_id", nullable = false) + @JoinColumn(name = "study_field_id", nullable = false) @Comment("분야") - private StudyFieldJpaEntity field; + private StudyFieldJpaEntity studyField; @Column(name = "name", length = 20, nullable = false) @Comment("스터디명") From e59d73d856fe819ee383f0cdca0aed0b50752427 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Sat, 9 Mar 2024 17:47:28 +0900 Subject: [PATCH 11/13] =?UTF-8?q?:wrench:=20[STMT-200]=20=EC=8A=A4?= =?UTF-8?q?=ED=84=B0=EB=94=94,=20=EC=8A=A4=ED=84=B0=EB=94=94=20=EB=B6=84?= =?UTF-8?q?=EC=95=BC=20DDL=EA=B3=BC=20dummy=20data=20INSERT=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.3__add_study_table.sql | 33 +++++++++++++++++++ .../V1.4_insert_dummy_study_data.sql | 7 ++++ 2 files changed, 40 insertions(+) create mode 100644 src/main/resources/db/migration/V1.3__add_study_table.sql create mode 100644 src/main/resources/db/migration/V1.4_insert_dummy_study_data.sql diff --git a/src/main/resources/db/migration/V1.3__add_study_table.sql b/src/main/resources/db/migration/V1.3__add_study_table.sql new file mode 100644 index 00000000..1a8a7b20 --- /dev/null +++ b/src/main/resources/db/migration/V1.3__add_study_table.sql @@ -0,0 +1,33 @@ + CREATE TABLE `study_field` + ( + `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '스터디 분야 ID', + `name` VARCHAR(50) NOT NULL COMMENT '분야명' + ) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_unicode_ci; + + CREATE TABLE `study` + ( + `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '스터디 ID', + `study_field_id` BIGINT NULL COMMENT '스터디 분야 ID', + `name` VARCHAR(255) NOT NULL COMMENT '스터디명', + `region` VARCHAR(50) NOT NULL COMMENT '활동 지역', + `topic` VARCHAR(100) NULL COMMENT '주제', + `intro` VARCHAR(100) NOT NULL COMMENT '소개', + `rule` VARCHAR(100) NULL COMMENT '규칙', + `image` VARCHAR(500) NOT NULL COMMENT '스터디 이미지의 URL', + `headcount` TINYINT(50) NOT NULL DEFAULT 1 COMMENT '인원 수', + `start_date` DATETIME NOT NULL COMMENT '시작일', + `end_date` DATETIME NOT NULL COMMENT '종료일', + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시간', + `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시간', + `is_finished` TINYINT(1) NOT NULL DEFAULT FALSE COMMENT '스터디 완료 여부', + `is_deleted` TINYINT(1) NOT NULL DEFAULT FALSE COMMENT '스터디 삭제 여부', + `deleted_at` DATETIME NULL COMMENT '스터디 삭제 일자', + + CONSTRAINT fk_study_field FOREIGN KEY (study_field_id) + REFERENCES study_field (id) + ON DELETE SET NULL ON UPDATE CASCADE + ) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_unicode_ci; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.4_insert_dummy_study_data.sql b/src/main/resources/db/migration/V1.4_insert_dummy_study_data.sql new file mode 100644 index 00000000..baef8555 --- /dev/null +++ b/src/main/resources/db/migration/V1.4_insert_dummy_study_data.sql @@ -0,0 +1,7 @@ +insert into study_field value (1, 'IT'); + +INSERT INTO study (study_field_id, name, region, topic, intro, rule, image, start_date, end_date) +VALUES (1, '[임시] 프로그래밍 스터디', '서울', 'java;springboot;프로그래밍;', + '프로그래밍 스터디 입니다.', '- 매주 목요일 8시\n- 장소: 안암역\n- 제시간에 제출하기!', + 'https://stumeet.s3.ap-northeast-2.amazonaws.com/study/1/mainImage/2023062711172178420.png', + '2024-04-01', '2024-05-01'); \ No newline at end of file From c8c0724ad376c909b40dd8eb8f7b86ab74c7dfe4 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Sat, 9 Mar 2024 17:54:17 +0900 Subject: [PATCH 12/13] =?UTF-8?q?:bug:=20[STMT-200]=20=EC=8A=A4=ED=84=B0?= =?UTF-8?q?=EB=94=94=20=EB=B6=84=EC=95=BC=20=EB=B3=80=EC=88=98=EB=AA=85=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=9C=BC=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20?= =?UTF-8?q?=EC=BB=B4=ED=8C=8C=EC=9D=BC=20=EC=97=90=EB=9F=AC=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../out/persistance/mapper/StudyPersistenceMapper.java | 4 ++-- .../application/port/out/mapper/StudyUseCaseMapper.java | 2 +- src/main/java/com/stumeet/server/study/domain/Study.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java b/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java index ba52595d..3cb456e2 100644 --- a/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java +++ b/src/main/java/com/stumeet/server/study/adapter/out/persistance/mapper/StudyPersistenceMapper.java @@ -20,7 +20,7 @@ public StudyJpaEntity toEntity(Study domain) { return StudyJpaEntity.builder() .id(domain.getId()) .name(domain.getName()) - .field(studyFieldPersistenceMapper.toEntity(domain.getField())) + .studyField(studyFieldPersistenceMapper.toEntity(domain.getStudyField())) .topics(domain.getAssembledTopics()) .region(domain.getRegion()) .intro(domain.getIntro()) @@ -38,7 +38,7 @@ public Study toDomain(StudyJpaEntity entity) { return Study.builder() .id(entity.getId()) .name(entity.getName()) - .field(studyFieldPersistenceMapper.toDomain(entity.getField())) + .studyField(studyFieldPersistenceMapper.toDomain(entity.getStudyField())) .studyTopics(StudyTopics.from(entity.getTopics())) .region(entity.getRegion()) .intro(entity.getIntro()) diff --git a/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java b/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java index 6fdbf698..d8d55e09 100644 --- a/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java +++ b/src/main/java/com/stumeet/server/study/application/port/out/mapper/StudyUseCaseMapper.java @@ -12,7 +12,7 @@ public StudyDetailResponse toStudyDetailResponse(Study study) { return StudyDetailResponse.builder() .id(study.getId()) .name(study.getName()) - .field(study.getFieldName()) + .field(study.getStudyFieldName()) .topics(study.getStudyTopics().getTopics()) .region(study.getRegion()) .intro(study.getIntro()) diff --git a/src/main/java/com/stumeet/server/study/domain/Study.java b/src/main/java/com/stumeet/server/study/domain/Study.java index 670ae198..a3f59542 100644 --- a/src/main/java/com/stumeet/server/study/domain/Study.java +++ b/src/main/java/com/stumeet/server/study/domain/Study.java @@ -16,7 +16,7 @@ public class Study { private String name; - private StudyField field; + private StudyField studyField; private StudyTopics studyTopics; @@ -36,8 +36,8 @@ public class Study { private Boolean isDeleted; - public String getFieldName() { - return field.getName(); + public String getStudyFieldName() { + return studyField.getName(); } public String getAssembledTopics() { From 2c1e10aa76201661436f3c372f61dc8e55b0b058 Mon Sep 17 00:00:00 2001 From: Lee ChanMi Date: Mon, 11 Mar 2024 21:00:39 +0900 Subject: [PATCH 13/13] =?UTF-8?q?:wrench:=20[STMT-200]=20=EC=B6=A9?= =?UTF-8?q?=EB=8F=8C=EC=9D=84=20=ED=94=BC=ED=95=98=EA=B8=B0=20=EC=9C=84?= =?UTF-8?q?=ED=95=B4=20flyway=20=EB=B2=84=EC=A0=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{V1.3__add_study_table.sql => V1.4__add_study_table.sql} | 0 ...sert_dummy_study_data.sql => V1.5_insert_dummy_study_data.sql} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/resources/db/migration/{V1.3__add_study_table.sql => V1.4__add_study_table.sql} (100%) rename src/main/resources/db/migration/{V1.4_insert_dummy_study_data.sql => V1.5_insert_dummy_study_data.sql} (100%) diff --git a/src/main/resources/db/migration/V1.3__add_study_table.sql b/src/main/resources/db/migration/V1.4__add_study_table.sql similarity index 100% rename from src/main/resources/db/migration/V1.3__add_study_table.sql rename to src/main/resources/db/migration/V1.4__add_study_table.sql diff --git a/src/main/resources/db/migration/V1.4_insert_dummy_study_data.sql b/src/main/resources/db/migration/V1.5_insert_dummy_study_data.sql similarity index 100% rename from src/main/resources/db/migration/V1.4_insert_dummy_study_data.sql rename to src/main/resources/db/migration/V1.5_insert_dummy_study_data.sql