From 6e43ff37a34ecb6ff5037c3926690e61b0cdc237 Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 01:02:51 +0900 Subject: [PATCH 1/8] =?UTF-8?q?feat=20[#109]=20=EA=B3=B5=EC=97=B0(?= =?UTF-8?q?=EC=BD=98=EC=84=9C=ED=8A=B8,=20=ED=8E=98=EC=8A=A4=ED=8B=B0?= =?UTF-8?q?=EB=B2=8C)=20=EC=A0=95=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EB=82=A0=EC=A7=9C=EA=B0=80=20=EC=A7=80=EB=82=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EC=95=98=EB=8A=94=EC=A7=80=20=EA=B2=80=EC=A6=9D=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PerformanceController.java | 2 +- .../performance/facade/PerformanceFacade.java | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/sopt/confeti/api/performance/controller/PerformanceController.java b/src/main/java/org/sopt/confeti/api/performance/controller/PerformanceController.java index abd4936..79bdf0d 100644 --- a/src/main/java/org/sopt/confeti/api/performance/controller/PerformanceController.java +++ b/src/main/java/org/sopt/confeti/api/performance/controller/PerformanceController.java @@ -35,7 +35,7 @@ public class PerformanceController { @GetMapping("/concerts/{concertId}") public ResponseEntity> getConcertInfo( @RequestHeader(name = "Authorization", required = false) Long userId, - @PathVariable("concertId") @Min(value = 0, message = "요청 형식이 올바르지 않습니다.") Long concertId + @PathVariable("concertId") @Min(value = 0, message = "요청 형식이 올바르지 않습니다.") long concertId ) { ConcertDetailDTO concertDetailDTO = performanceFacade.getConcertDetailInfo(concertId); return ApiResponseUtil.success(SuccessMessage.SUCCESS, ConcertDetailResponse.of(concertDetailDTO, s3FileHandler)); diff --git a/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java b/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java index 6f66399..1d4efd9 100644 --- a/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java +++ b/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java @@ -1,5 +1,6 @@ package org.sopt.confeti.api.performance.facade; +import java.time.LocalDate; import lombok.RequiredArgsConstructor; import org.sopt.confeti.annotation.Facade; import org.sopt.confeti.api.performance.facade.dto.request.CreateFestivalDTO; @@ -10,6 +11,8 @@ import org.sopt.confeti.domain.festival.Festival; import org.sopt.confeti.domain.festival.application.FestivalService; import org.sopt.confeti.domain.festivalfavorite.application.FestivalFavoriteService; +import org.sopt.confeti.global.exception.NotFoundException; +import org.sopt.confeti.global.message.ErrorMessage; import org.sopt.confeti.global.util.S3FileHandler; import org.springframework.transaction.annotation.Transactional; @@ -25,9 +28,18 @@ public class PerformanceFacade { @Transactional(readOnly = true) public ConcertDetailDTO getConcertDetailInfo(final long concertId) { Concert concert = concertService.getConcertDetailByConcertId(concertId); + validateConcertNotPassed(concert); + return ConcertDetailDTO.from(concert); } + @Transactional(readOnly = true) + protected void validateConcertNotPassed(final Concert concert) { + if (LocalDate.now().isAfter(concert.getConcertEndAt())) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } + } + @Transactional public void createFestival(final CreateFestivalDTO createFestivalDTO) { festivalService.create(createFestivalDTO); @@ -42,6 +54,15 @@ public FestivalDetailDTO getFestivalDetailInfo(final Long userId, final long fes } Festival festival = festivalService.getFestivalDetailByFestivalId(festivalId); + validateFestivalNotPassed(festival); + return FestivalDetailDTO.of(festival, isFavorite, s3FileHandler); } + + @Transactional(readOnly = true) + protected void validateFestivalNotPassed(final Festival festival) { + if (LocalDate.now().isAfter(festival.getFestivalEndAt())) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } + } } From 4a3b54da2cc791c8168a4bdfcde1fa72b4f47bda Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 01:05:32 +0900 Subject: [PATCH 2/8] =?UTF-8?q?refactor=20[#109]=20=EA=B3=B5=EC=97=B0=20?= =?UTF-8?q?=EC=A2=8B=EC=95=84=EC=9A=94=20=EC=97=AC=EB=B6=80=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/performance/facade/PerformanceFacade.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java b/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java index 1d4efd9..ff8ef5a 100644 --- a/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java +++ b/src/main/java/org/sopt/confeti/api/performance/facade/PerformanceFacade.java @@ -47,11 +47,7 @@ public void createFestival(final CreateFestivalDTO createFestivalDTO) { @Transactional(readOnly = true) public FestivalDetailDTO getFestivalDetailInfo(final Long userId, final long festivalId) { - boolean isFavorite = false; - - if (userId != null) { - isFavorite = festivalFavoriteService.isFavorite(userId, festivalId); - } + boolean isFavorite = getIsFavorite(userId, festivalId); Festival festival = festivalService.getFestivalDetailByFestivalId(festivalId); validateFestivalNotPassed(festival); @@ -59,6 +55,15 @@ public FestivalDetailDTO getFestivalDetailInfo(final Long userId, final long fes return FestivalDetailDTO.of(festival, isFavorite, s3FileHandler); } + @Transactional(readOnly = true) + protected boolean getIsFavorite(final Long userid, final long festivalId) { + if (userid != null) { + return festivalFavoriteService.isFavorite(userid, festivalId); + } + + return false; + } + @Transactional(readOnly = true) protected void validateFestivalNotPassed(final Festival festival) { if (LocalDate.now().isAfter(festival.getFestivalEndAt())) { From 1b21014a7d7289e74d1f97945c63b5aee8e41cad Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 01:26:07 +0900 Subject: [PATCH 3/8] =?UTF-8?q?refactor=20[#109]=20=EA=B3=B5=EC=97=B0,=20?= =?UTF-8?q?=EC=95=84=ED=8B=B0=EC=8A=A4=ED=8A=B8=20=EC=A2=8B=EC=95=84?= =?UTF-8?q?=EC=9A=94=20=EC=97=AC=EB=B6=80=20=EC=A1=B0=ED=9A=8C=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/user/facade/UserFavoriteFacade.java | 82 +++++++++++++++---- 1 file changed, 65 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java b/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java index ec8f891..2d8c42d 100644 --- a/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java +++ b/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java @@ -37,6 +37,8 @@ public class UserFavoriteFacade { public void addFestivalFavorite(long userId, long festivalId) { User user = userService.findById(userId); Festival festival = festivalService.findById(festivalId); + validateNotExistFestivalFavorite(userId, festivalId); + festivalFavoriteService.save(user, festival); } @@ -44,14 +46,28 @@ public void addFestivalFavorite(long userId, long festivalId) { public void removeFestivalFavorite(long userId, long festivalId) { User user = userService.findById(userId); Festival festival = festivalService.findById(festivalId); + validateExistFestivalFavorite(userId, festivalId); + festivalFavoriteService.delete(user, festival); } @Transactional(readOnly = true) - public UserFavoriteArtistDTO getArtistList(long userId) { - if (!userService.existsById(userId)) { + protected void validateExistFestivalFavorite(final long userId, final long festivalId) { + if (!festivalFavoriteService.isFavorite(userId, festivalId)) { throw new NotFoundException(ErrorMessage.NOT_FOUND); } + } + + @Transactional(readOnly = true) + protected void validateNotExistFestivalFavorite(final long userId, final long festivalId) { + if (festivalFavoriteService.isFavorite(userId, festivalId)) { + throw new ConflictException(ErrorMessage.CONFLICT); + } + } + + @Transactional(readOnly = true) + public UserFavoriteArtistDTO getArtistList(long userId) { + validateExistUser(userId); List artists = artistFavoriteService.getArtistList(userId); return UserFavoriteArtistDTO.from(artists); @@ -60,23 +76,31 @@ public UserFavoriteArtistDTO getArtistList(long userId) { @Transactional public void addArtistFavorite(final long userId, final String artistId) { User user = userService.findById(userId); - - if (artistFavoriteService.isFavorite(userId, artistId)) { - throw new ConflictException(ErrorMessage.CONFLICT); - } + validateNotExistArtistFavorite(userId, artistId); artistFavoriteService.addFavorite(user, artistId); } @Transactional public void removeArtistFavorite(final long userId, final String artistId) { - if ( - !userService.existsById(userId) || !artistFavoriteService.isFavorite(userId, artistId) - ) { + validateExistUser(userId); + validateExistArtistFavorite(userId, artistId); + + artistFavoriteService.removeFavorite(userId, artistId); + } + + @Transactional(readOnly = true) + protected void validateExistArtistFavorite(final long userId, final String artistId) { + if (!artistFavoriteService.isFavorite(userId, artistId)) { throw new NotFoundException(ErrorMessage.NOT_FOUND); } + } - artistFavoriteService.removeFavorite(userId, artistId); + @Transactional(readOnly = true) + protected void validateNotExistArtistFavorite(final long userId, final String artistId) { + if (artistFavoriteService.isFavorite(userId, artistId)) { + throw new ConflictException(ErrorMessage.CONFLICT); + } } @Transactional @@ -84,21 +108,45 @@ public void addConcertFavorite(final long userId, final long concertId) { User user = userService.findById(userId); Concert concert = concertService.findById(concertId); - if (concertFavoriteService.isFavorite(userId, concertId)) { - throw new ConflictException(ErrorMessage.CONFLICT); - } + validateExistConcertFavorite(userId, concertId); concertFavoriteService.addFavorite(user, concert); } @Transactional public void removeConcertFavorite(final long userId, final long concertId) { - if ( - !userService.existsById(userId) || !concertService.existsById(concertId) || !concertFavoriteService.isFavorite(userId, concertId) - ) { + validateExistUser(userId); + validateExistConcert(concertId); + validateExistConcertFavorite(userId, concertId); + + concertFavoriteService.removeFavorite(userId, concertId); + } + + @Transactional(readOnly = true) + protected void validateExistConcertFavorite(final long userId, final long concertId) { + if (!concertFavoriteService.isFavorite(userId, concertId)) { throw new NotFoundException(ErrorMessage.NOT_FOUND); } + } - concertFavoriteService.removeFavorite(userId, concertId); + @Transactional(readOnly = true) + protected void validateExistUser(final long userId) { + if (!userService.existsById(userId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } + } + + @Transactional(readOnly = true) + protected void validateExistConcert(final long concertId) { + if (!concertService.existsById(concertId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } + } + + @Transactional(readOnly = true) + protected void validateExistFestival(final long festivalId) { + if (!festivalService.existsById(festivalId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } } } From 16e7708bafa4c0321cda74413225c76f4ba36a51 Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 01:33:55 +0900 Subject: [PATCH 4/8] =?UTF-8?q?refactor=20[#109]=20=EA=B3=B5=EC=97=B0,=20?= =?UTF-8?q?=EC=95=84=ED=8B=B0=EC=8A=A4=ED=8A=B8,=20=EC=9C=A0=EC=A0=80=20?= =?UTF-8?q?=EC=A1=B4=EC=9E=AC=20=EC=97=AC=EB=B6=80=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/user/facade/UserFavoriteFacade.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java b/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java index 2d8c42d..d0c05ec 100644 --- a/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java +++ b/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java @@ -1,5 +1,6 @@ package org.sopt.confeti.api.user.facade; +import java.time.LocalDate; import lombok.RequiredArgsConstructor; import org.sopt.confeti.annotation.Facade; import org.sopt.confeti.api.user.facade.dto.response.UserFavoriteArtistDTO; @@ -46,11 +47,20 @@ public void addFestivalFavorite(long userId, long festivalId) { public void removeFestivalFavorite(long userId, long festivalId) { User user = userService.findById(userId); Festival festival = festivalService.findById(festivalId); + validateExistUser(userId); + validateExistFestival(festivalId); validateExistFestivalFavorite(userId, festivalId); festivalFavoriteService.delete(user, festival); } + @Transactional(readOnly = true) + protected void validateExistFestival(final long festivalId) { + if (!festivalService.existsById(festivalId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } + } + @Transactional(readOnly = true) protected void validateExistFestivalFavorite(final long userId, final long festivalId) { if (!festivalFavoriteService.isFavorite(userId, festivalId)) { @@ -142,11 +152,4 @@ protected void validateExistConcert(final long concertId) { throw new NotFoundException(ErrorMessage.NOT_FOUND); } } - - @Transactional(readOnly = true) - protected void validateExistFestival(final long festivalId) { - if (!festivalService.existsById(festivalId)) { - throw new NotFoundException(ErrorMessage.NOT_FOUND); - } - } } From 200401d47231726d1502066c9b0e970d2494f59d Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 01:37:05 +0900 Subject: [PATCH 5/8] =?UTF-8?q?style=20[#109]=20=EC=A3=BC=EC=84=9D=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/confeti/api/user/facade/UserFavoriteFacade.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java b/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java index d0c05ec..cf1090e 100644 --- a/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java +++ b/src/main/java/org/sopt/confeti/api/user/facade/UserFavoriteFacade.java @@ -45,10 +45,9 @@ public void addFestivalFavorite(long userId, long festivalId) { @Transactional public void removeFestivalFavorite(long userId, long festivalId) { + // TODO: 페스티벌 좋아요 삭제 시 엔티티 값을 사용하지 않으므로 아이디 값으로 삭제하도록 리펙토링 예정 User user = userService.findById(userId); Festival festival = festivalService.findById(festivalId); - validateExistUser(userId); - validateExistFestival(festivalId); validateExistFestivalFavorite(userId, festivalId); festivalFavoriteService.delete(user, festival); From 51f0d4ab158d5a69913efc8275137d97f84359eb Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 02:28:34 +0900 Subject: [PATCH 6/8] =?UTF-8?q?refactor=20[#109]=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=A1=B4=EC=9E=AC=20=EC=97=AC=EB=B6=80=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/user/facade/UserTimetableFacade.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/sopt/confeti/api/user/facade/UserTimetableFacade.java b/src/main/java/org/sopt/confeti/api/user/facade/UserTimetableFacade.java index 2b1e330..2172140 100644 --- a/src/main/java/org/sopt/confeti/api/user/facade/UserTimetableFacade.java +++ b/src/main/java/org/sopt/confeti/api/user/facade/UserTimetableFacade.java @@ -23,9 +23,7 @@ public class UserTimetableFacade { @Transactional(readOnly = true) public UserTimetableDTO getTimetablesListAndDate(long userId) { - if (!userService.existsById(userId)) { - throw new NotFoundException(ErrorMessage.NOT_FOUND); - } + validateExistUser(userId); List festivalList = timetableFestivalService.getFetivalList(userId); return UserTimetableDTO.from(festivalList); @@ -33,15 +31,32 @@ public UserTimetableDTO getTimetablesListAndDate(long userId) { @Transactional public void removeTimetableFestival(final long userId, final long festivalId) { - if ( - !userService.existsById(userId) || - !festivalService.existsById(festivalId) || - !timetableFestivalService.existsByUserIdAndFestivalId(userId, festivalId) - ) { + validateExistUser(userId); + validateExistFestival(festivalId); + validateExistTimetableFestival(userId, festivalId); + + timetableFestivalService.removeTimetableFestival(userId, festivalId); + } + + @Transactional(readOnly = true) + protected void validateExistUser(final long userId) { + if (!userService.existsById(userId)) { throw new NotFoundException(ErrorMessage.NOT_FOUND); } + } - timetableFestivalService.removeTimetableFestival(userId, festivalId); + @Transactional(readOnly = true) + protected void validateExistFestival(final long festivalId) { + if (!festivalService.existsById(festivalId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } + } + + @Transactional(readOnly = true) + protected void validateExistTimetableFestival(final long userId, final long festivalId) { + if (!timetableFestivalService.existsByUserIdAndFestivalId(userId, festivalId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND); + } } } From 793cfb28560234d9d11c4506ef523507e7537f2a Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 02:53:07 +0900 Subject: [PATCH 7/8] =?UTF-8?q?fix=20[#109]=20=EC=A7=80=EB=82=9C=20?= =?UTF-8?q?=ED=8E=98=EC=8A=A4=ED=8B=B0=EB=B2=8C=EC=9D=84=20=EC=A0=9C?= =?UTF-8?q?=EC=99=B8=ED=95=98=EA=B3=A0=20=ED=83=80=EC=9E=84=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=EC=97=90=20=EC=B6=94=EA=B0=80=EB=90=9C=20?= =?UTF-8?q?=ED=8E=98=EC=8A=A4=ED=8B=B0=EB=B2=8C=EC=9D=84=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/TimetableFestivalService.java | 2 +- .../infra/repository/TimetableFestivalRepository.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/sopt/confeti/domain/timetablefestival/application/TimetableFestivalService.java b/src/main/java/org/sopt/confeti/domain/timetablefestival/application/TimetableFestivalService.java index d048d96..db464ee 100644 --- a/src/main/java/org/sopt/confeti/domain/timetablefestival/application/TimetableFestivalService.java +++ b/src/main/java/org/sopt/confeti/domain/timetablefestival/application/TimetableFestivalService.java @@ -15,7 +15,7 @@ public class TimetableFestivalService { @Transactional(readOnly = true) public List getFetivalList(long userId){ - return timetableFestivalRepository.findByUserId(userId); + return timetableFestivalRepository.findByUserIdWhereEndAtLENow(userId); } @Transactional(readOnly = true) diff --git a/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java b/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java index 10dbc4c..f24761f 100644 --- a/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java +++ b/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java @@ -1,12 +1,16 @@ package org.sopt.confeti.domain.timetablefestival.infra.repository; +import java.time.LocalDate; import org.sopt.confeti.domain.timetablefestival.TimetableFestival; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public interface TimetableFestivalRepository extends JpaRepository { - List findByUserId(Long userId); + @Query("select tf from TimetableFestival tf join fetch tf.festival f where tf.user.id = :userId and f.festivalEndAt <= CURRENT_DATE") + List findByUserIdWhereEndAtLENow(@Param("userId") Long userId); boolean existsByUserIdAndFestivalId(final long userId, final long festivalId); From 287a7fb2a3557c487518dd0179e3a85b4524cdf6 Mon Sep 17 00:00:00 2001 From: chyun Date: Sun, 19 Jan 2025 03:06:35 +0900 Subject: [PATCH 8/8] =?UTF-8?q?style=20[#109]=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20import=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infra/repository/TimetableFestivalRepository.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java b/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java index f24761f..04d517e 100644 --- a/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java +++ b/src/main/java/org/sopt/confeti/domain/timetablefestival/infra/repository/TimetableFestivalRepository.java @@ -1,6 +1,5 @@ package org.sopt.confeti.domain.timetablefestival.infra.repository; -import java.time.LocalDate; import org.sopt.confeti.domain.timetablefestival.TimetableFestival; import org.springframework.data.jpa.repository.JpaRepository;