77import MathCaptain .weakness .domain .Group .repository .GroupRepository ;
88import MathCaptain .weakness .domain .Group .repository .RelationRepository ;
99import MathCaptain .weakness .domain .Record .entity .ActivityRecord ;
10+ import MathCaptain .weakness .domain .Record .entity .UserLog .ExerciseInfo ;
11+ import MathCaptain .weakness .domain .Record .entity .UserLog .FitnessDetail ;
12+ import MathCaptain .weakness .domain .Record .entity .UserLog .RunningDetail ;
13+ import MathCaptain .weakness .domain .Record .entity .UserLog .StudyDetail ;
1014import MathCaptain .weakness .domain .Record .repository .record .RecordRepository ;
15+ import MathCaptain .weakness .domain .Record .repository .userLog .FitnessLogRepository ;
16+ import MathCaptain .weakness .domain .Record .repository .userLog .RunningLogRepository ;
17+ import MathCaptain .weakness .domain .Record .repository .userLog .StudyLogRepository ;
1118import MathCaptain .weakness .domain .Recruitment .dto .request .CreateRecruitmentRequest ;
1219import MathCaptain .weakness .domain .Recruitment .entity .Comment ;
1320import MathCaptain .weakness .domain .Recruitment .entity .Recruitment ;
2532import org .springframework .transaction .annotation .Transactional ;
2633
2734import java .time .DayOfWeek ;
35+ import java .time .LocalDate ;
2836import java .time .LocalDateTime ;
37+ import java .util .List ;
2938
3039@ Slf4j
3140@ Component
3241@ RequiredArgsConstructor
3342@ Transactional
34- @ DependsOn ("primaryEntityManagerFactory " )
43+ @ DependsOn ("entityManagerFactory " )
3544public class TestInit {
3645
3746 private final UserRepository userRepository ;
@@ -41,6 +50,9 @@ public class TestInit {
4150 private final RecruitmentRepository recruitmentRepository ;
4251 private final CommentRepository commentRepository ;
4352 private final RecordRepository recordRepository ;
53+ private final FitnessLogRepository fitnessLogRepository ;
54+ private final RunningLogRepository runningLogRepository ;
55+ private final StudyLogRepository studyLogRepository ;
4456
4557
4658 @ PostConstruct
@@ -158,25 +170,53 @@ public void init() {
158170 LocalDateTime startOfWeek = LocalDateTime .now ().with (java .time .temporal .TemporalAdjusters .previousOrSame (DayOfWeek .MONDAY ));
159171
160172 // User ID: 4 -> currentProgress: 5
161- createActivityRecords (userRepository .findByUserId (4L ).orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )), group3 , startOfWeek , 5 );
173+ createActivityRecords (userRepository .findByUserId (4L )
174+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
175+ group3 , startOfWeek , 5 , CategoryStatus .RUNNING , chestList );
162176
163177 // User ID: 5 -> currentProgress: 8
164- createActivityRecords (userRepository .findByUserId (5L ).orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )), group3 , startOfWeek , 8 );
178+ createActivityRecords (userRepository .findByUserId (5L )
179+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
180+ group3 , startOfWeek , 8 , CategoryStatus .RUNNING , chestList );
165181
166182 // User ID: 6 -> currentProgress: 10
167- createActivityRecords (userRepository .findByUserId (6L ).orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )), group3 , startOfWeek , 10 );
183+ createActivityRecords (userRepository .findByUserId (6L )
184+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
185+ group3 , startOfWeek , 10 , CategoryStatus .RUNNING , chestList );
168186
169187 // User ID: 7 -> currentProgress: 7
170- createActivityRecords (userRepository .findByUserId (7L ).orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )), group3 , startOfWeek , 7 );
188+ createActivityRecords (userRepository .findByUserId (7L )
189+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
190+ group3 , startOfWeek , 7 , CategoryStatus .RUNNING , chestList );
171191
172192 // User ID: 8 -> currentProgress: 6
173- createActivityRecords (userRepository .findByUserId (8L ).orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )), group3 , startOfWeek , 6 );
193+ createActivityRecords (userRepository .findByUserId (8L )
194+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
195+ group3 , startOfWeek , 6 , CategoryStatus .RUNNING , chestList );
196+
197+ createActivityRecords (userRepository .findByUserId (1L )
198+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
199+ group1 , startOfWeek , 4 , CategoryStatus .FITNESS , chestList );
200+ createActivityRecords (userRepository .findByUserId (1L )
201+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
202+ group1 , startOfWeek , 3 , CategoryStatus .FITNESS , backList );
203+ createActivityRecords (userRepository .findByUserId (1L )
204+ .orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
205+ group1 , startOfWeek , 3 , CategoryStatus .FITNESS , legList );
206+
207+ createActivityRecords (userRepository .findByUserId (2L ).
208+ orElseThrow (() -> new IllegalArgumentException ("해당 유저가 없습니다." )),
209+ group2 , startOfWeek , 3 , CategoryStatus .STUDY , chestList );
174210
175211 log .info ("======== 🏃♂️테스트 목표 기록 생성 완료 =========" );
176212 }
177213
178214 // Helper 메서드: ActivityRecord 생성 (이번 주 내에서만 생성되도록 수정)
179- private void createActivityRecords (Users user , Group group , LocalDateTime startOfWeek , int recordCount ) {
215+ private void createActivityRecords (
216+ Users user , Group group , LocalDateTime startOfWeek ,
217+ int recordCount , CategoryStatus category ,
218+ List <ExerciseInfo > exerciseInfoList
219+ ) {
180220 for (int i = 0 ; i < recordCount ; i ++) {
181221 // 시작 시간은 주어진 startOfWeek에서 i일을 더한 값
182222 LocalDateTime startTime = startOfWeek .plusDays (i % 7 );
@@ -195,6 +235,49 @@ private void createActivityRecords(Users user, Group group, LocalDateTime startO
195235
196236 // 저장소에 저장
197237 recordRepository .save (record );
238+
239+ if (category == CategoryStatus .FITNESS ) {
240+ fitnessLogCreate (record );
241+ } else if (category == CategoryStatus .RUNNING ) {
242+ runningLogCreate (record );
243+ } else if (category == CategoryStatus .STUDY ) {
244+ studyLogCreate (record );
245+ }
198246 }
199247 }
248+
249+ ExerciseInfo chest1 = ExerciseInfo .of ("덤벨 프레스" , 70 , 10 , 5 );
250+ ExerciseInfo chest2 = ExerciseInfo .of ("벤치 프레스" , 80 , 10 , 5 );
251+ ExerciseInfo chest3 = ExerciseInfo .of ("밀리터리 프레스" , 60 , 10 , 5 );
252+ ExerciseInfo chest4 = ExerciseInfo .of ("디클라인 벤치 프레스" , 70 , 10 , 5 );
253+ List <ExerciseInfo > chestList = List .of (chest1 , chest2 , chest3 , chest4 );
254+
255+ ExerciseInfo back1 = ExerciseInfo .of ("데드 리프트" , 120 , 10 , 5 );
256+ ExerciseInfo back2 = ExerciseInfo .of ("랫풀다운" , 80 , 10 , 5 );
257+ ExerciseInfo back3 = ExerciseInfo .of ("시티드 로우" , 70 , 10 , 5 );
258+ List <ExerciseInfo > backList = List .of (back1 , back2 , back3 );
259+
260+ ExerciseInfo leg1 = ExerciseInfo .of ("스쿼트" , 100 , 10 , 5 );
261+ ExerciseInfo leg2 = ExerciseInfo .of ("레그 프레스" , 150 , 10 , 5 );
262+ ExerciseInfo leg3 = ExerciseInfo .of ("레그 익스텐션" , 80 , 10 , 5 );
263+ ExerciseInfo leg4 = ExerciseInfo .of ("레그 컬" , 70 , 10 , 5 );
264+ List <ExerciseInfo > legList = List .of (leg1 , leg2 , leg3 , leg4 );
265+
266+
267+
268+ private void studyLogCreate (ActivityRecord record ) {
269+ StudyDetail log = StudyDetail .of (record , "수학" , 60L , "지수함수의 미분" );
270+ studyLogRepository .save (log );
271+ }
272+
273+ private void runningLogCreate (ActivityRecord record ) {
274+ RunningDetail log = RunningDetail .of (record , 5L , "원인재에서 동춘역까지" );
275+ runningLogRepository .save (log );
276+ }
277+
278+ private void fitnessLogCreate (ActivityRecord record ) {
279+ FitnessDetail log = FitnessDetail .of (record , chestList );
280+ fitnessLogRepository .save (log );
281+ }
200282}
283+ //
0 commit comments