1515import targeter .aim .system .exception .model .RestException ;
1616import targeter .aim .system .security .model .UserDetails ;
1717
18+ import java .time .LocalDate ;
19+ import java .time .temporal .ChronoUnit ;
1820import java .util .ArrayList ;
1921import java .util .List ;
2022
@@ -155,6 +157,11 @@ private void copyHostWeeklyProgressToMember(Challenge challenge, User hostUser,
155157 throw new RestException (ErrorCode .GLOBAL_NOT_FOUND , "HOST의 주차별 진행 데이터가 없습니다." );
156158 }
157159
160+ LocalDate today = LocalDate .now ();
161+ LocalDate startDate = challenge .getStartedAt ();
162+
163+ int currentWeek = (int ) ChronoUnit .WEEKS .between (startDate , today ) + 1 ;
164+
158165 List <WeeklyProgress > toSave = new ArrayList <>();
159166
160167 for (WeeklyProgress src : hostProgressList ) {
@@ -169,12 +176,25 @@ private void copyHostWeeklyProgressToMember(Challenge challenge, User hostUser,
169176 "createdAt" ,
170177 "lastModifiedAt" ,
171178 "attachedImages" ,
172- "attachedFiles"
179+ "attachedFiles" ,
180+ "elapsedTimeSeconds" ,
181+ "weeklyStatus" ,
182+ "isComplete"
173183 );
174184
175185 cloned .setChallenge (challenge );
176186 cloned .setUser (memberUser );
177187
188+ if (src .getWeekNumber () < currentWeek ) {
189+ cloned .setElapsedTimeSeconds (0 );
190+ cloned .setWeeklyStatus (WeeklyStatus .FAIL );
191+ cloned .setIsComplete (true );
192+ } else {
193+ cloned .setElapsedTimeSeconds (0 );
194+ cloned .setWeeklyStatus (WeeklyStatus .PENDING );
195+ cloned .setIsComplete (false );
196+ }
197+
178198 cloned .setAttachedFiles (new ArrayList <>());
179199 cloned .setAttachedImages (new ArrayList <>());
180200
0 commit comments