Skip to content

Commit 2567bc6

Browse files
committed
feat: Store 테이블에 District 도입
1 parent dbb1f99 commit 2567bc6

File tree

9 files changed

+47
-31
lines changed

9 files changed

+47
-31
lines changed

src/main/java/eatda/domain/store/Store.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ public class Store extends AuditingEntity {
4747
@Column(name = "lot_number_address", nullable = false)
4848
private String lotNumberAddress;
4949

50+
@Enumerated(EnumType.STRING)
51+
@Column(name = "district", nullable = false, length = 31)
52+
private District district;
53+
5054
@Embedded
5155
private Coordinates coordinates;
5256

@@ -58,6 +62,7 @@ private Store(String kakaoId,
5862
String placeUrl,
5963
String roadAddress,
6064
String lotNumberAddress,
65+
District district,
6166
Double latitude,
6267
Double longitude) {
6368
this.kakaoId = kakaoId;
@@ -66,16 +71,13 @@ private Store(String kakaoId,
6671
this.name = name;
6772
this.placeUrl = placeUrl;
6873
this.roadAddress = roadAddress;
74+
this.district = district;
6975
this.lotNumberAddress = lotNumberAddress;
7076
this.coordinates = new Coordinates(latitude, longitude);
7177
}
7278

7379
public String getAddressDistrict() {
74-
String[] addressParts = lotNumberAddress.split(" ");
75-
if (addressParts.length < 2) {
76-
return "";
77-
}
78-
return addressParts[1];
80+
return district.getName();
7981
}
8082

8183
public String getAddressNeighborhood() {

src/main/java/eatda/domain/store/StoreSearchResult.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public Store toStore() {
2222
.placeUrl(placeUrl)
2323
.roadAddress(roadAddress)
2424
.lotNumberAddress(lotNumberAddress)
25+
.district(district)
2526
.latitude(latitude)
2627
.longitude(longitude)
2728
.build();

src/main/resources/db/migration/V1__init.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ CREATE TABLE `store`
2020
`place_url` VARCHAR(255) NOT NULL,
2121
`road_address` VARCHAR(255) NOT NULL,
2222
`lot_number_address` VARCHAR(255) NOT NULL,
23+
`district` VARCHAR(31) NOT NULL,
2324
`latitude` DOUBLE NOT NULL,
2425
`longitude` DOUBLE NOT NULL,
2526
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

src/main/resources/db/seed/dev/V2__dev_init_data.sql

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@ VALUES (1, 123456789, '[email protected]', '이승로', '01012345678', true),
77
(6, 324569987, '[email protected]', '박희수', '01043609998', false),
88
(7, 323487985, '[email protected]', '하아얀', '01065083298', false);
99

10-
INSERT INTO store (id, kakao_id, category, phone_number, name, place_url, road_address, lot_number_address, latitude,
11-
longitude)
10+
INSERT INTO store (id, kakao_id, category, phone_number, name, place_url, road_address, lot_number_address, district,
11+
latitude, longitude)
1212
VALUES (1, '99999999999', 'KOREAN', '01012345678', '맛있는 한식집', 'https://place.map.kakao.com/17163273',
13-
'서울시 강남구 역삼동 123-45', '서울시 강남구 역삼동 123-45', 37.503708148482524, 127.05300772497776),
13+
'서울시 강남구 역삼동 123-45', '서울시 강남구 역삼동 123-45', 'GANGNAM', 37.503708148482524, 127.05300772497776),
1414
(2, '99999999998', 'WESTERN', '01087654321', '아름다운 양식집', 'https://place.map.kakao.com/17163273',
15-
'서울시 강남구 역삼동 67-89', '서울시 강남구 역삼동 67-89', 37.4979, 127.0276),
15+
'서울시 강남구 역삼동 67-89', '서울시 강남구 역삼동 67-89', 'GANGNAM', 37.4979, 127.0276),
1616
(3, '99999999997', 'CHINESE', '01045678912', '정통 중식당', 'https://place.map.kakao.com/17163273',
17-
'서울시 강남구 역삼동 101-112', '서울시 강남구 역삼동 101-112', 37.56259825108099, 126.97715943361476),
17+
'서울시 강남구 역삼동 101-112', '서울시 강남구 역삼동 101-112', 'GANGNAM', 37.56259825108099, 126.97715943361476),
1818
(4, '99999999996', 'WESTERN', '01078912345', '고급 양식 레스토랑', 'https://place.map.kakao.com/17163273', '',
19-
'서울시 강남구 역삼동 131-415', 37.4979, 127.0276),
19+
'서울시 강남구 역삼동 131-415', 'GANGNAM', 37.4979, 127.0276),
2020
(5, '99999999995', 'OTHER', '01034574568', '달콤한 디저트 카페', 'https://place.map.kakao.com/17163273',
21-
'서울시 강남구 역삼동 161-718', '서울시 강남구 역삼동 161-718', 37.49491300989233, 127.03150463098274),
21+
'서울시 강남구 역삼동 161-718', '서울시 강남구 역삼동 161-718', 'GANGNAM', 37.49491300989233, 127.03150463098274),
2222
(6, '99999999994', 'OTHER', '01043609998', '아늑한 커피숍', 'https://place.map.kakao.com/17163273',
23-
'서울시 강남구 역삼동 192-021', '서울시 강남구 역삼동 192-021', 37.5298343127044, 126.919484339847),
23+
'서울시 강남구 역삼동 192-021', '서울시 강남구 역삼동 192-021', 'GANGNAM', 37.5298343127044, 126.919484339847),
2424
(7, '99999999993', 'OTHER', '01065083298', '빠른 패스트푸드점', 'https://place.map.kakao.com/17163273', '',
25-
'서울시 강남구 역삼동 222-324', 37.5036675804016, 127.05305858911);
25+
'서울시 강남구 역삼동 222-324', 'GANGNAM', 37.5036675804016, 127.05305858911);
2626

2727
INSERT INTO cheer (id, member_id, store_id, description, image_key, is_admin)
2828
VALUES (1, 1, 1, '정말 맛있어요! 강추합니다!', 'cheer/dummy/1.jpg', true),

src/main/resources/db/seed/local/V2__local_init_data.sql

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@ VALUES (1, 123456789, '[email protected]', '이승로', '01012345678', true),
77
(6, 324569987, '[email protected]', '박희수', '01043609998', false),
88
(7, 323487985, '[email protected]', '하아얀', '01065083298', false);
99

10-
INSERT INTO store (id, kakao_id, category, phone_number, name, place_url, road_address, lot_number_address, latitude,
11-
longitude)
10+
INSERT INTO store (id, kakao_id, category, phone_number, name, place_url, road_address, lot_number_address, district,
11+
latitude, longitude)
1212
VALUES (1, '99999999999', 'KOREAN', '01012345678', '맛있는 한식집', 'https://place.map.kakao.com/17163273',
13-
'서울시 강남구 역삼동 123-45', '서울시 강남구 역삼동 123-45', 37.503708148482524, 127.05300772497776),
13+
'서울시 강남구 역삼동 123-45', '서울시 강남구 역삼동 123-45', 'GANGNAM', 37.503708148482524, 127.05300772497776),
1414
(2, '99999999998', 'WESTERN', '01087654321', '아름다운 양식집', 'https://place.map.kakao.com/17163273',
15-
'서울시 강남구 역삼동 67-89', '서울시 강남구 역삼동 67-89', 37.4979, 127.0276),
15+
'서울시 강남구 역삼동 67-89', '서울시 강남구 역삼동 67-89', 'GANGNAM', 37.4979, 127.0276),
1616
(3, '99999999997', 'CHINESE', '01045678912', '정통 중식당', 'https://place.map.kakao.com/17163273',
17-
'서울시 강남구 역삼동 101-112', '서울시 강남구 역삼동 101-112', 37.56259825108099, 126.97715943361476),
17+
'서울시 강남구 역삼동 101-112', '서울시 강남구 역삼동 101-112', 'GANGNAM', 37.56259825108099, 126.97715943361476),
1818
(4, '99999999996', 'WESTERN', '01078912345', '고급 양식 레스토랑', 'https://place.map.kakao.com/17163273', '',
19-
'서울시 강남구 역삼동 131-415', 37.4979, 127.0276),
19+
'서울시 강남구 역삼동 131-415', 'GANGNAM', 37.4979, 127.0276),
2020
(5, '99999999995', 'OTHER', '01034574568', '달콤한 디저트 카페', 'https://place.map.kakao.com/17163273',
21-
'서울시 강남구 역삼동 161-718', '서울시 강남구 역삼동 161-718', 37.49491300989233, 127.03150463098274),
21+
'서울시 강남구 역삼동 161-718', '서울시 강남구 역삼동 161-718', 'GANGNAM', 37.49491300989233, 127.03150463098274),
2222
(6, '99999999994', 'OTHER', '01043609998', '아늑한 커피숍', 'https://place.map.kakao.com/17163273',
23-
'서울시 강남구 역삼동 192-021', '서울시 강남구 역삼동 192-021', 37.5298343127044, 126.919484339847),
23+
'서울시 강남구 역삼동 192-021', '서울시 강남구 역삼동 192-021', 'GANGNAM', 37.5298343127044, 126.919484339847),
2424
(7, '99999999993', 'OTHER', '01065083298', '빠른 패스트푸드점', 'https://place.map.kakao.com/17163273', '',
25-
'서울시 강남구 역삼동 222-324', 37.5036675804016, 127.05305858911);
25+
'서울시 강남구 역삼동 222-324', 'GANGNAM', 37.5036675804016, 127.05305858911);
2626

2727
INSERT INTO cheer (id, member_id, store_id, description, image_key, is_admin)
2828
VALUES (1, 1, 1, '정말 맛있어요! 강추합니다!', 'cheer/dummy/1.jpg', true),

src/test/java/eatda/controller/cheer/CheerControllerTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import eatda.controller.BaseControllerTest;
77
import eatda.domain.cheer.Cheer;
88
import eatda.domain.member.Member;
9+
import eatda.domain.store.District;
910
import eatda.domain.store.Store;
1011
import eatda.util.ImageUtils;
1112
import eatda.util.MappingUtils;
@@ -63,8 +64,8 @@ class GetCheers {
6364
@Test
6465
void 요청한_응원_중_최신_응원_N개를_조회한다() {
6566
Member member = memberGenerator.generateRegisteredMember("nickname", "[email protected]", "123", "01011111111");
66-
Store store1 = storeGenerator.generate("111", "서울시 노원구 월계3동 123-45");
67-
Store store2 = storeGenerator.generate("222", "서울시 성북구 석관동 123-45");
67+
Store store1 = storeGenerator.generate("111", "서울시 노원구 월계3동 123-45", District.NOWON);
68+
Store store2 = storeGenerator.generate("222", "서울시 성북구 석관동 123-45", District.SEONGBUK);
6869
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
6970
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1, startAt);
7071
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1, startAt.plusHours(1));

src/test/java/eatda/domain/cheer/CheerTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import eatda.domain.ImageKey;
88
import eatda.domain.member.Member;
9+
import eatda.domain.store.District;
910
import eatda.domain.store.Store;
1011
import eatda.domain.store.StoreCategory;
1112
import eatda.exception.BusinessErrorCode;
@@ -26,6 +27,7 @@ class CheerTest {
2627
.placeUrl("https://place.kakao.com/1234567890")
2728
.roadAddress("서울시 성북구 대학로 1길 1")
2829
.lotNumberAddress("서울시 성북구 동선동 1-1")
30+
.district(District.SEONGBUK)
2931
.latitude(37.5665)
3032
.longitude(126.978)
3133
.build();

src/test/java/eatda/domain/store/StoreTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,17 @@ class StoreTest {
1515
.placeUrl("https://place.kakao.com/123456789")
1616
.roadAddress("")
1717
.lotNumberAddress("서울특별시 강남구 역삼동 123-45")
18+
.district(District.GANGNAM)
1819
.latitude(37.5665)
1920
.longitude(126.978);
2021

2122
@Nested
2223
class GetAddressDistrict {
2324

2425
@Test
25-
void 주소_구_정보를_지번_주소에서_반환한다() {
26+
void 주소_구_정보를_ENUM을_통해_반환한다() {
2627
Store store = DEFAULT_BUILDER
27-
.lotNumberAddress("서울특별시 성북구 석관동 123-45")
28+
.district(District.SEONGBUK)
2829
.build();
2930

3031
String actual = store.getAddressDistrict();

src/test/java/eatda/fixture/StoreGenerator.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package eatda.fixture;
22

3+
import eatda.domain.store.District;
34
import eatda.domain.store.Store;
45
import eatda.domain.store.StoreCategory;
56
import eatda.repository.store.StoreRepository;
@@ -15,6 +16,7 @@ public class StoreGenerator {
1516
private static final String DEFAULT_NAME = "가게 이름";
1617
private static final String DEFAULT_PLACE_URL = "https://place.kakao.com/123456789";
1718
private static final String DEFAULT_ROAD_ADDRESS = "";
19+
private static final District DEFAULT_DISTRICT = District.GANGNAM;
1820

1921
private static final double DEFAULT_LATITUDE = 37.5665; // Default latitude for Seoul
2022
private static final double DEFAULT_LONGITUDE = 126.978; // Default longitude for Seoul
@@ -26,23 +28,28 @@ public StoreGenerator(StoreRepository storeRepository) {
2628
}
2729

2830
public Store generate(String kakaoId, String lotNumberAddress) {
29-
Store store = create(kakaoId, lotNumberAddress, DEFAULT_CATEGORY);
31+
Store store = create(kakaoId, lotNumberAddress, DEFAULT_DISTRICT, DEFAULT_CATEGORY);
32+
return storeRepository.save(store);
33+
}
34+
35+
public Store generate(String kakaoId, String lotNumberAddress, District district) {
36+
Store store = create(kakaoId, lotNumberAddress, district, DEFAULT_CATEGORY);
3037
return storeRepository.save(store);
3138
}
3239

3340
public Store generate(String kakaoId, String lotNumberAddress, LocalDateTime createdAt) {
34-
Store store = create(kakaoId, lotNumberAddress, DEFAULT_CATEGORY);
41+
Store store = create(kakaoId, lotNumberAddress, DEFAULT_DISTRICT, DEFAULT_CATEGORY);
3542
DomainUtils.setCreatedAt(store, createdAt);
3643
return storeRepository.save(store);
3744
}
3845

3946
public Store generate(String kakaoId, String lotNumberAddress, StoreCategory category, LocalDateTime createdAt) {
40-
Store store = create(kakaoId, lotNumberAddress, category);
47+
Store store = create(kakaoId, lotNumberAddress, DEFAULT_DISTRICT, category);
4148
DomainUtils.setCreatedAt(store, createdAt);
4249
return storeRepository.save(store);
4350
}
4451

45-
private Store create(String kakaoId, String lotNumberAddress, StoreCategory category) {
52+
private Store create(String kakaoId, String lotNumberAddress, District district, StoreCategory category) {
4653
return Store.builder()
4754
.kakaoId(kakaoId)
4855
.category(category)
@@ -51,6 +58,7 @@ private Store create(String kakaoId, String lotNumberAddress, StoreCategory cate
5158
.placeUrl(DEFAULT_PLACE_URL)
5259
.roadAddress(DEFAULT_ROAD_ADDRESS)
5360
.lotNumberAddress(lotNumberAddress)
61+
.district(district)
5462
.latitude(DEFAULT_LATITUDE)
5563
.longitude(DEFAULT_LONGITUDE)
5664
.build();

0 commit comments

Comments
 (0)