Skip to content

Commit de9ab62

Browse files
committed
fix: initData에서 공연 티켓예매 기간 수정
1 parent 9e5a553 commit de9ab62

1 file changed

Lines changed: 139 additions & 138 deletions

File tree

Lines changed: 139 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,156 +1,157 @@
11
package com.back.web7_9_codecrete_be.global.initData;
22

3+
import java.time.LocalDate;
4+
import java.time.LocalDateTime;
5+
6+
import org.springframework.context.annotation.Profile;
7+
import org.springframework.security.crypto.password.PasswordEncoder;
8+
import org.springframework.stereotype.Component;
9+
310
import com.back.web7_9_codecrete_be.domain.concerts.entity.Concert;
411
import com.back.web7_9_codecrete_be.domain.concerts.entity.ConcertPlace;
512
import com.back.web7_9_codecrete_be.domain.concerts.repository.ConcertPlaceRepository;
613
import com.back.web7_9_codecrete_be.domain.concerts.repository.ConcertRepository;
714
import com.back.web7_9_codecrete_be.domain.users.entity.SocialType;
815
import com.back.web7_9_codecrete_be.domain.users.entity.User;
916
import com.back.web7_9_codecrete_be.domain.users.repository.UserRepository;
17+
1018
import jakarta.annotation.PostConstruct;
1119
import lombok.RequiredArgsConstructor;
12-
import org.springframework.context.annotation.Profile;
13-
import org.springframework.security.crypto.password.PasswordEncoder;
14-
import org.springframework.stereotype.Component;
15-
16-
import java.time.LocalDate;
17-
import java.time.LocalDateTime;
1820

1921
@Profile("dev")
2022
@Component
2123
@RequiredArgsConstructor
2224
public class BaseInitData {
2325

24-
private final UserRepository userRepository;
25-
private final PasswordEncoder passwordEncoder;
26-
27-
private final ConcertRepository concertRepository;
28-
private final ConcertPlaceRepository concertPlaceRepository;
29-
30-
@PostConstruct
31-
public void init() {
32-
createTestUser();
33-
createAdminUser();
34-
createConcertsForChatTest();
35-
}
36-
37-
private void createTestUser() {
38-
if (userRepository.existsByEmail("test@test.com")) {
39-
return;
40-
}
41-
42-
User testUser = User.builder()
43-
.email("test@test.com")
44-
.nickname("테스트유저")
45-
.password(passwordEncoder.encode("test1234!"))
46-
.birth(LocalDate.of(1999, 1, 1))
47-
.profileImage("https://example.com/profile.jpg")
48-
.socialType(SocialType.LOCAL)
49-
.socialId(null)
50-
.build();
51-
52-
userRepository.save(testUser);
53-
}
54-
55-
private void createAdminUser() {
56-
if (userRepository.existsByEmail("admin@test.com")) {
57-
return;
58-
}
59-
60-
User adminUser = User.builder()
61-
.email("admin@test.com")
62-
.nickname("어드민")
63-
.password(passwordEncoder.encode("admin1234!"))
64-
.birth(LocalDate.of(1990, 1, 1))
65-
.profileImage("https://example.com/profile.jpg")
66-
.socialType(SocialType.LOCAL)
67-
.socialId(null)
68-
.build();
69-
70-
// dev 전용 어드민 권한 부여
71-
adminUser.promoteToAdmin();
72-
73-
userRepository.save(adminUser);
74-
}
75-
76-
77-
/* =========================
78-
* Concert / ConcertPlace Init (Chat Test)
79-
* ========================= */
80-
private void createConcertsForChatTest() {
81-
if (concertRepository.count() > 0) {
82-
return;
83-
}
84-
85-
ConcertPlace place = concertPlaceRepository.findAll().stream()
86-
.findFirst()
87-
.orElseGet(() ->
88-
concertPlaceRepository.save(
89-
new ConcertPlace(
90-
"테스트 공연장",
91-
"서울특별시 중구 테스트로 123",
92-
37.5665,
93-
126.9780,
94-
5000,
95-
"API-CONCERT-PLACE-1"
96-
)
97-
)
98-
);
99-
100-
LocalDateTime now = LocalDateTime.now();
101-
102-
// 채팅 가능 (정책 기간 중)
103-
concertRepository.save(
104-
new Concert(
105-
place,
106-
"채팅 가능 공연",
107-
"채팅 테스트용 공연 (정책 기간 중)",
108-
LocalDate.now(),
109-
LocalDate.now().plusDays(2),
110-
LocalDateTime.of(2025, 12, 19, 0, 0),
111-
LocalDateTime.of(2025, 12, 21, 0, 0),
112-
150000,
113-
50000,
114-
"https://example.com/poster1.jpg",
115-
"서울특별시",
116-
"API-CONCERT-CHAT-1"
117-
)
118-
);
119-
120-
// 채팅 불가 (정책 시작 전)
121-
concertRepository.save(
122-
new Concert(
123-
place,
124-
"채팅 불가 공연 - 시작 전",
125-
"아직 채팅이 오픈되지 않은 공연",
126-
LocalDate.now().plusDays(5),
127-
LocalDate.now().plusDays(7),
128-
LocalDateTime.of(2025, 12, 25, 0, 0),
129-
LocalDateTime.of(2025, 12, 30, 0, 0),
130-
120000,
131-
40000,
132-
"https://example.com/poster2.jpg",
133-
"서울특별시",
134-
"API-CONCERT-CHAT-2"
135-
)
136-
);
137-
138-
// 채팅 불가 (정책 종료 후)
139-
concertRepository.save(
140-
new Concert(
141-
place,
142-
"채팅 종료된 공연",
143-
"채팅 가능 기간이 지난 공연",
144-
LocalDate.now().minusDays(10),
145-
LocalDate.now().minusDays(7),
146-
LocalDateTime.of(2025, 11, 1, 0, 0),
147-
LocalDateTime.of(2025, 11, 15, 0, 0),
148-
100000,
149-
30000,
150-
"https://example.com/poster3.jpg",
151-
"서울특별시",
152-
"API-CONCERT-CHAT-3"
153-
)
154-
);
155-
}
26+
private final UserRepository userRepository;
27+
private final PasswordEncoder passwordEncoder;
28+
29+
private final ConcertRepository concertRepository;
30+
private final ConcertPlaceRepository concertPlaceRepository;
31+
32+
@PostConstruct
33+
public void init() {
34+
createTestUser();
35+
createAdminUser();
36+
createConcertsForChatTest();
37+
}
38+
39+
private void createTestUser() {
40+
if (userRepository.existsByEmail("test@test.com")) {
41+
return;
42+
}
43+
44+
User testUser = User.builder()
45+
.email("test@test.com")
46+
.nickname("테스트유저")
47+
.password(passwordEncoder.encode("test1234!"))
48+
.birth(LocalDate.of(1999, 1, 1))
49+
.profileImage("https://example.com/profile.jpg")
50+
.socialType(SocialType.LOCAL)
51+
.socialId(null)
52+
.build();
53+
54+
userRepository.save(testUser);
55+
}
56+
57+
private void createAdminUser() {
58+
if (userRepository.existsByEmail("admin@test.com")) {
59+
return;
60+
}
61+
62+
User adminUser = User.builder()
63+
.email("admin@test.com")
64+
.nickname("어드민")
65+
.password(passwordEncoder.encode("admin1234!"))
66+
.birth(LocalDate.of(1990, 1, 1))
67+
.profileImage("https://example.com/profile.jpg")
68+
.socialType(SocialType.LOCAL)
69+
.socialId(null)
70+
.build();
71+
72+
// dev 전용 어드민 권한 부여
73+
adminUser.promoteToAdmin();
74+
75+
userRepository.save(adminUser);
76+
}
77+
78+
/* =========================
79+
* Concert / ConcertPlace Init (Chat Test)
80+
* ========================= */
81+
private void createConcertsForChatTest() {
82+
if (concertRepository.count() > 0) {
83+
return;
84+
}
85+
86+
ConcertPlace place = concertPlaceRepository.findAll().stream()
87+
.findFirst()
88+
.orElseGet(() ->
89+
concertPlaceRepository.save(
90+
new ConcertPlace(
91+
"테스트 공연장",
92+
"서울특별시 중구 테스트로 123",
93+
37.5665,
94+
126.9780,
95+
5000,
96+
"API-CONCERT-PLACE-1"
97+
)
98+
)
99+
);
100+
101+
LocalDateTime now = LocalDateTime.now();
102+
103+
// 채팅 가능 (정책 기간 중)
104+
concertRepository.save(
105+
new Concert(
106+
place,
107+
"채팅 가능 공연",
108+
"채팅 테스트용 공연 (정책 기간 중)",
109+
LocalDate.now().plusMonths(1),
110+
LocalDate.now().plusMonths(1).plusDays(2),
111+
LocalDateTime.now(),
112+
LocalDateTime.now().plusDays(7),
113+
150000,
114+
50000,
115+
"https://example.com/poster1.jpg",
116+
"서울특별시",
117+
"API-CONCERT-CHAT-1"
118+
)
119+
);
120+
121+
// 채팅 불가 (정책 시작 전)
122+
concertRepository.save(
123+
new Concert(
124+
place,
125+
"채팅 불가 공연 - 시작 전",
126+
"아직 채팅이 오픈되지 않은 공연",
127+
LocalDate.now().plusMonths(2),
128+
LocalDate.now().plusMonths(2).plusDays(2),
129+
LocalDateTime.now().plusMonths(1),
130+
LocalDateTime.now().plusMonths(1).plusDays(7),
131+
120000,
132+
40000,
133+
"https://example.com/poster2.jpg",
134+
"서울특별시",
135+
"API-CONCERT-CHAT-2"
136+
)
137+
);
138+
139+
// 채팅 불가 (정책 종료 후)
140+
concertRepository.save(
141+
new Concert(
142+
place,
143+
"채팅 종료된 공연",
144+
"채팅 가능 기간이 지난 공연",
145+
LocalDate.now().minusDays(10),
146+
LocalDate.now().minusDays(7),
147+
LocalDateTime.of(2025, 11, 1, 0, 0),
148+
LocalDateTime.of(2025, 11, 15, 0, 0),
149+
100000,
150+
30000,
151+
"https://example.com/poster3.jpg",
152+
"서울특별시",
153+
"API-CONCERT-CHAT-3"
154+
)
155+
);
156+
}
156157
}

0 commit comments

Comments
 (0)