@@ -86,10 +86,10 @@ public ResponseEntity<ApiResponse<List<Map<String, Object>>, Void>> membersOfMee
8686 /* ===== 특정 날짜 출석 일괄 저장 (멱등 스냅샷) ===== */
8787 // Body: { "userIds": ["1","2",...], "present": true } → presentUserIds만 보내는 구조로도 쉽게 변환 가능
8888 @ PutMapping ("/{date}/attendance" )
89- public ResponseEntity <ApiResponse <Map <String , Object >, Void >> saveAttendanceSnapshot (@ AuthenticationPrincipal CustomUserDetails me , @ PathVariable @ DateTimeFormat (iso = DateTimeFormat .ISO .DATE ) LocalDate date , @ RequestParam (required = false ) TeamType team , // 관리자만 사용, 리드는 무시
90- @ RequestBody @ Valid SetAttendanceRequest req ) {
89+ public ResponseEntity <ApiResponse <Map <String , Object >, Void >> saveAttendanceSnapshot (@ AuthenticationPrincipal CustomUserDetails me , @ PathVariable @ DateTimeFormat (iso = DateTimeFormat .ISO .DATE ) LocalDate date , @ RequestBody @ Valid SetAttendanceRequest req ) {
9190 var userIds = req .safeUserIds ();
9291
92+ // LEAD → 본인 팀 검증
9393 if (me .getRole () == UserRole .LEAD ) {
9494 TeamType myTeam = requiredTeamFrom (me );
9595 var validation = service .filterUserIdsNotInTeam (myTeam , userIds );
@@ -100,16 +100,9 @@ public ResponseEntity<ApiResponse<Map<String, Object>, Void>> saveAttendanceSnap
100100 return okUpdated (updated , validation .invalidIds ());
101101 }
102102
103- // ORGANIZER / ADMIN
104- TeamType effectiveTeam = (team != null ) ? team : service .inferTeamFromUserIds (userIds )
105- .orElseThrow (() -> new IllegalArgumentException ("userIds로 팀을 추론할 수 없습니다." ));
106-
107- var validation = service .filterUserIdsNotInTeam (effectiveTeam , userIds );
108- if (validation .validIds ().isEmpty ()) {
109- return okUpdated (0L , validation .invalidIds ());
110- }
111- long updated = service .setAttendance (date .toString (), validation .validIds (), req .presentValue ());
112- return okUpdated (updated , validation .invalidIds ());
103+ // ORGANIZER / ADMIN → 팀 추론/검증 없이 바로 업서트
104+ long updated = service .setAttendance (date .toString (), userIds , req .presentValue ());
105+ return okUpdated (updated , List .of ());
113106 }
114107
115108 /* ===== 날짜 요약(JSON) ===== */
0 commit comments