Skip to content

Commit 5ecadd4

Browse files
committed
[Feat]: 잡담, 투표 게시글 및 댓글 더미데이터 추가
1 parent 532c99e commit 5ecadd4

File tree

1 file changed

+79
-1
lines changed

1 file changed

+79
-1
lines changed

back/src/main/java/com/back/global/initdata/InitData.java

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.back.global.initdata;
22

3+
import com.back.domain.comment.entity.Comment;
4+
import com.back.domain.comment.repository.CommentRepository;
35
import com.back.domain.node.dto.PivotListDto;
46
import com.back.domain.node.dto.base.BaseLineBulkCreateRequest;
57
import com.back.domain.node.dto.base.BaseLineBulkCreateResponse;
@@ -8,18 +10,27 @@
810
import com.back.domain.node.dto.decision.DecisionNodeNextRequest;
911
import com.back.domain.node.entity.NodeCategory;
1012
import com.back.domain.node.service.NodeService;
11-
import com.back.domain.user.entity.*;
13+
import com.back.domain.post.entity.Post;
14+
import com.back.domain.post.enums.PostCategory;
15+
import com.back.domain.post.repository.PostRepository;
16+
import com.back.domain.user.entity.Gender;
17+
import com.back.domain.user.entity.Mbti;
18+
import com.back.domain.user.entity.Role;
19+
import com.back.domain.user.entity.User;
1220
import com.back.domain.user.repository.UserRepository;
1321
import lombok.RequiredArgsConstructor;
1422
import org.springframework.boot.CommandLineRunner;
1523
import org.springframework.security.crypto.password.PasswordEncoder;
1624
import org.springframework.stereotype.Component;
1725

1826
import java.time.LocalDateTime;
27+
import java.util.ArrayList;
1928
import java.util.List;
29+
import java.util.UUID;
2030

2131
/**
2232
* [요약] 기동 시 admin·user1 생성 → user1에 베이스라인(총7: 헤더+피벗5+테일) 1개와 결정라인(총5 노드) 1개 시드 주입.
33+
* 게시글 30개(일반20 + 투표10)과 댓글 14개(마지막 2개 글에 각 7개) 생성.
2334
*/
2435
@Component
2536
@RequiredArgsConstructor
@@ -29,6 +40,9 @@ public class InitData implements CommandLineRunner {
2940
private final PasswordEncoder passwordEncoder;
3041
private final NodeService nodeService;
3142

43+
private final PostRepository postRepository;
44+
private final CommentRepository commentRepository;
45+
3246
// user1을 만들고 베이스라인(7)과 결정라인(5)을 시드로 주입한다
3347
@Override
3448
public void run(String... args) {
@@ -160,5 +174,69 @@ public void run(String... args) {
160174
"프로덕션 운영 지표와 알림 체계 정착"
161175
)
162176
);
177+
178+
if (postRepository.count() > 0) {
179+
return;
180+
}
181+
182+
// 잠담 게시글 20개 생성
183+
List<Post> posts = new ArrayList<>();
184+
for (int i = 1; i <= 20; i++) {
185+
Post post = Post.builder()
186+
.title("일반 게시글 " + i)
187+
.content("일반 게시글 내용 " + i)
188+
.category(PostCategory.CHAT)
189+
.user(user1)
190+
.hide(false)
191+
.likeCount(0)
192+
.build();
193+
posts.add(post);
194+
}
195+
196+
// 투표 게시글 10개 생성
197+
for (int i = 1; i <= 10; i++) {
198+
String voteContent = """
199+
{
200+
"pollUid": "%s",
201+
"options": [
202+
{"index": 1, "text": "첫 번째 옵션"},
203+
{"index": 2, "text": "두 번째 옵션"},
204+
{"index": 3, "text": "세 번째 옵션"}
205+
]
206+
}
207+
""".formatted(UUID.randomUUID().toString());
208+
209+
Post pollPost = Post.builder()
210+
.title("투표 게시글 " + i)
211+
.content("투표 게시글 내용 " + i)
212+
.category(PostCategory.POLL)
213+
.user(user1)
214+
.voteContent(voteContent)
215+
.hide(false)
216+
.likeCount(0)
217+
.build();
218+
posts.add(pollPost);
219+
}
220+
221+
postRepository.saveAll(posts);
222+
223+
// 마지막 2개의 게시글만 댓글 7개 작성
224+
List<Post> lastPosts = posts.subList(posts.size() - 2, posts.size());
225+
226+
List<Comment> comments = new ArrayList<>();
227+
228+
for (Post post : lastPosts) {
229+
for (int i = 1; i <= 7; i++) {
230+
Comment comment = Comment.builder()
231+
.post(post)
232+
.user(user1) // 댓글 작성자
233+
.content(post.getTitle() + "에 대한 댓글 " + i)
234+
.hide(false)
235+
.likeCount(0)
236+
.build();
237+
comments.add(comment);
238+
}
239+
}
240+
commentRepository.saveAll(comments);
163241
}
164242
}

0 commit comments

Comments
 (0)