diff --git a/src/main/java/ssu/eatssu/domain/partnership/dto/PartnershipResponse.java b/src/main/java/ssu/eatssu/domain/partnership/dto/PartnershipResponse.java index 98ca1fc8..edcffa83 100644 --- a/src/main/java/ssu/eatssu/domain/partnership/dto/PartnershipResponse.java +++ b/src/main/java/ssu/eatssu/domain/partnership/dto/PartnershipResponse.java @@ -18,6 +18,8 @@ public class PartnershipResponse { private Double longitude; private Double latitude; private RestaurantType restaurantType; + private String naverMapUrl; + private String kakaoMapUrl; private List partnershipInfos; public static PartnershipResponse fromEntity(PartnershipRestaurant restaurant, Long userId, Language language) { @@ -36,6 +38,8 @@ public static PartnershipResponse fromEntity(PartnershipRestaurant restaurant, L .longitude(restaurant.getLongitude()) .latitude(restaurant.getLatitude()) .restaurantType(restaurant.getRestaurantType()) + .naverMapUrl(restaurant.getNaverMapUrl()) + .kakaoMapUrl(restaurant.getKakaoMapUrl()) .partnershipInfos(infos) .build(); } diff --git a/src/main/java/ssu/eatssu/domain/partnership/entity/PartnershipRestaurant.java b/src/main/java/ssu/eatssu/domain/partnership/entity/PartnershipRestaurant.java index 20e08134..d2d6ad59 100644 --- a/src/main/java/ssu/eatssu/domain/partnership/entity/PartnershipRestaurant.java +++ b/src/main/java/ssu/eatssu/domain/partnership/entity/PartnershipRestaurant.java @@ -44,6 +44,10 @@ public class PartnershipRestaurant implements Localizable { private String storeNameJa; @Column(name = "store_name_vi") private String storeNameVi; + @Column(name = "naver_map_url", length = 2048) + private String naverMapUrl; + @Column(name = "kakao_map_url", length = 2048) + private String kakaoMapUrl; @OneToMany(mappedBy = "partnershipRestaurant") @BatchSize(size = 20) diff --git a/src/main/resources/db/migration/V19__add_map_urls_to_partnership_restaurant.sql b/src/main/resources/db/migration/V19__add_map_urls_to_partnership_restaurant.sql new file mode 100644 index 00000000..349c91dd --- /dev/null +++ b/src/main/resources/db/migration/V19__add_map_urls_to_partnership_restaurant.sql @@ -0,0 +1,3 @@ +ALTER TABLE partnership_restaurant + ADD COLUMN naver_map_url VARCHAR(2048) NULL, + ADD COLUMN kakao_map_url VARCHAR(2048) NULL; diff --git a/src/test/java/ssu/eatssu/domain/partnership/dto/PartnershipResponseTest.java b/src/test/java/ssu/eatssu/domain/partnership/dto/PartnershipResponseTest.java new file mode 100644 index 00000000..5543dfc2 --- /dev/null +++ b/src/test/java/ssu/eatssu/domain/partnership/dto/PartnershipResponseTest.java @@ -0,0 +1,53 @@ +package ssu.eatssu.domain.partnership.dto; + +import org.junit.jupiter.api.Test; +import org.springframework.test.util.ReflectionTestUtils; +import ssu.eatssu.domain.partnership.entity.PartnershipRestaurant; +import ssu.eatssu.domain.partnership.entity.RestaurantType; +import ssu.eatssu.domain.user.entity.Language; + +import static org.assertj.core.api.Assertions.assertThat; + +class PartnershipResponseTest { + + @Test + void shouldMapMapUrlsFromRestaurant() { + // given + PartnershipRestaurant restaurant = createRestaurant("https://map.naver.com/p/example", + "https://map.kakao.com/link/map/example"); + + // when + PartnershipResponse response = PartnershipResponse.fromEntity(restaurant, 1L, Language.KO); + + // then + assertThat(response.getNaverMapUrl()).isEqualTo("https://map.naver.com/p/example"); + assertThat(response.getKakaoMapUrl()).isEqualTo("https://map.kakao.com/link/map/example"); + } + + @Test + void shouldReturnNullWhenMapUrlsAreNotRegistered() { + // given + PartnershipRestaurant restaurant = createRestaurant(null, null); + + // when + PartnershipResponse response = PartnershipResponse.fromEntity(restaurant, 1L, Language.KO); + + // then + assertThat(response.getNaverMapUrl()).isNull(); + assertThat(response.getKakaoMapUrl()).isNull(); + } + + private PartnershipRestaurant createRestaurant(String naverMapUrl, String kakaoMapUrl) { + PartnershipRestaurant restaurant = new TestPartnershipRestaurant(); + ReflectionTestUtils.setField(restaurant, "restaurantType", RestaurantType.RESTAURANT); + ReflectionTestUtils.setField(restaurant, "longitude", 126.9576); + ReflectionTestUtils.setField(restaurant, "latitude", 37.4963); + ReflectionTestUtils.setField(restaurant, "storeNameKo", "테스트 가게"); + ReflectionTestUtils.setField(restaurant, "naverMapUrl", naverMapUrl); + ReflectionTestUtils.setField(restaurant, "kakaoMapUrl", kakaoMapUrl); + return restaurant; + } + + private static class TestPartnershipRestaurant extends PartnershipRestaurant { + } +}