diff --git a/src/main/java/com/cmc/zenefitserver/domain/userpolicy/api/UserPolicyController.java b/src/main/java/com/cmc/zenefitserver/domain/userpolicy/api/UserPolicyController.java index c43a922..e54125e 100644 --- a/src/main/java/com/cmc/zenefitserver/domain/userpolicy/api/UserPolicyController.java +++ b/src/main/java/com/cmc/zenefitserver/domain/userpolicy/api/UserPolicyController.java @@ -79,5 +79,33 @@ public CommonResponse deleteApplyPolicy(@AuthUser User user, @PathVariab userPolicyService.deleteApplyPolicy(user, policyId); return CommonResponse.success(null); } + + @DeleteMapping("/all") + @Operation(summary = "총 관심 정책 삭제 API", description = "해당 유저의 총 관심 정책을 삭제할 때 사용합니다.") + public CommonResponse deleteAllInterestPolicy(@AuthUser User user) { + userPolicyService.deleteAllInterestPolicy(user); + return CommonResponse.success(null); + } + + @DeleteMapping("/apply/all") + @Operation(summary = "총 수혜(신청) 정책 삭제 API", description = "해당 유저의 총 신청 정책을 삭제할 때 사용합니다.") + public CommonResponse deleteAllApplyPolicy(@AuthUser User user) { + userPolicyService.deleteAllApplyPolicy(user); + return CommonResponse.success(null); + } + + @GetMapping("/size") + @Operation(summary = "총 관심 정책의 크기 조회 API", description = "해당 유저가 관심 신청 정책 크기를 조회할 때 사용합니다.") + public CommonResponse getAllInterestPolicySize(@AuthUser User user) { + PolicySizeResponseDto result = userPolicyService.getAllInterestPolicySize(user); + return CommonResponse.success(result); + } + + @GetMapping("/apply/size") + @Operation(summary = "총 수혜(신청) 정책 크기 조회 API", description = "해당 유저가 수혜하는 정책 크기를 조회할 때 사용합니다.") + public CommonResponse getAllApplyPolicySize(@AuthUser User user) { + PolicySizeResponseDto result = userPolicyService.getAllApplyPolicySize(user); + return CommonResponse.success(result); + } } diff --git a/src/main/java/com/cmc/zenefitserver/domain/userpolicy/application/UserPolicyService.java b/src/main/java/com/cmc/zenefitserver/domain/userpolicy/application/UserPolicyService.java index 07a0ed2..19baff0 100644 --- a/src/main/java/com/cmc/zenefitserver/domain/userpolicy/application/UserPolicyService.java +++ b/src/main/java/com/cmc/zenefitserver/domain/userpolicy/application/UserPolicyService.java @@ -160,4 +160,24 @@ public void deleteApplyPolicy(User user, Long policyId) { } } + + public void deleteAllInterestPolicy(User user) { + userPolicyRepository.deleteAllByUserAndInterestFlag(user, true); + } + + public void deleteAllApplyPolicy(User user) { + userPolicyRepository.deleteAllByUserAndApplyFlag(user, true); + } + + public PolicySizeResponseDto getAllInterestPolicySize(User user) { + return PolicySizeResponseDto.builder() + .size(userPolicyRepository.getInterestPolicyCount(user.getUserId())) + .build(); + } + + public PolicySizeResponseDto getAllApplyPolicySize(User user) { + return PolicySizeResponseDto.builder() + .size(userPolicyRepository.getApplyPolicyCount(user.getUserId())) + .build(); + } }