diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/controller/ScrapController.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/controller/ScrapController.java index 81368df..9204c3d 100644 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/controller/ScrapController.java +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/controller/ScrapController.java @@ -5,15 +5,14 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; -import team9502.sinchulgwinong.domain.scrap.dto.response.JobScrapResponseDTO; -import team9502.sinchulgwinong.domain.scrap.dto.response.ScrapResponseDTO; +import team9502.sinchulgwinong.domain.board.dto.response.BoardListResponseDTO; +import team9502.sinchulgwinong.domain.jobBoard.dto.response.JobBoardListResponseDTO; +import team9502.sinchulgwinong.domain.scrap.dto.response.CpUserScrapListResponseDTO; import team9502.sinchulgwinong.domain.scrap.service.ScrapService; import team9502.sinchulgwinong.domain.user.entity.User; import team9502.sinchulgwinong.global.response.GlobalApiResponse; import team9502.sinchulgwinong.global.security.UserDetailsImpl; -import java.util.List; - import static team9502.sinchulgwinong.global.response.SuccessCode.*; @RestController @@ -25,9 +24,9 @@ public class ScrapController { private final ScrapService scrapService; @PostMapping("/boards/{boardId}") - public ResponseEntity> scrapCreateBoard( + public ResponseEntity> scrapCreateBoard( @PathVariable(("boardId")) Long boardId, - @AuthenticationPrincipal UserDetailsImpl userDetails){ + @AuthenticationPrincipal UserDetailsImpl userDetails) { User user = (User) userDetails.getUser(); @@ -53,27 +52,28 @@ public ResponseEntity> scrapCreateBoard( } @GetMapping("/boards") - public ResponseEntity>> getAllScraps( - - @AuthenticationPrincipal UserDetailsImpl userDetails){ + public ResponseEntity> getAllScraps( + @AuthenticationPrincipal UserDetailsImpl userDetails, + @RequestParam(value = "page", defaultValue = "0") int page, + @RequestParam(value = "size", defaultValue = "4") int size) { User user = (User) userDetails.getUser(); - List scrapResponseDTOS = scrapService.getAllScraps(user); + BoardListResponseDTO boardListResponseDTO = scrapService.getAllScraps(user, page, size); return ResponseEntity.status(SUCCESS_READ_ALL_SCRAP.getHttpStatus()) .body( GlobalApiResponse.of( SUCCESS_READ_ALL_SCRAP.getMessage(), - scrapResponseDTOS + boardListResponseDTO ) ); } @PostMapping("/job-boards/{jobBoardId}") - public ResponseEntity> scrapCreateJobBoard( + public ResponseEntity> scrapCreateJobBoard( @PathVariable("jobBoardId") Long jobBoardId, - @AuthenticationPrincipal UserDetailsImpl userDetails){ + @AuthenticationPrincipal UserDetailsImpl userDetails) { User user = (User) userDetails.getUser(); @@ -87,8 +87,7 @@ public ResponseEntity> scrapCreateJobBoard( null ) ); - } - else { + } else { return ResponseEntity.status(SUCCESS_CREATE_SCRAP.getHttpStatus()) .body( GlobalApiResponse.of( @@ -96,22 +95,71 @@ public ResponseEntity> scrapCreateJobBoard( null ) ); + } } -} @GetMapping("/job-boards") - public ResponseEntity>> getAllJobScraps( - @AuthenticationPrincipal UserDetailsImpl userDetails){ + public ResponseEntity> getAllJobScraps( + @AuthenticationPrincipal UserDetailsImpl userDetails, + @RequestParam(value = "page", defaultValue = "0") int page, + @RequestParam(value = "size", defaultValue = "4") int size) { + + User user = (User) userDetails.getUser(); + + JobBoardListResponseDTO jobBoardListResponseDTO = scrapService.getAllJobBoards(user, page, size); + + return ResponseEntity.status(SUCCESS_READ_ALL_SCRAP.getHttpStatus()) + .body( + GlobalApiResponse.of( + SUCCESS_READ_ALL_SCRAP.getMessage(), + jobBoardListResponseDTO + ) + ); + } + + @PostMapping("/cp-user/{cpUserId}") + public ResponseEntity> cpUserScrapCreate( + @PathVariable(name = "cpUserId") Long cpUserId, + @AuthenticationPrincipal UserDetailsImpl userDetails) { + + User user = (User) userDetails.getUser(); + + boolean isCreated = scrapService.cpUserScrapCreate(user, cpUserId); + + if (isCreated) { + return ResponseEntity.status(SUCCESS_CREATE_SCRAP.getHttpStatus()) + .body( + GlobalApiResponse.of( + SUCCESS_CREATE_SCRAP.getMessage(), + null + ) + ); + } else { + return ResponseEntity.status(SUCCESS_CREATE_SCRAP.getHttpStatus()) + .body( + GlobalApiResponse.of( + SUCCESS_DELETE_SCRAP.getMessage(), + null + ) + ); + } + } + + @GetMapping("/cp-user") + public ResponseEntity> getAllCpUserScrap( + @AuthenticationPrincipal UserDetailsImpl userDetails, + @RequestParam(value = "page", defaultValue = "0") int page, + @RequestParam(value = "size", defaultValue = "4") int size) { User user = (User) userDetails.getUser(); - List jobScrapResponseDTOS = scrapService.getAllJobBoards(user); + CpUserScrapListResponseDTO cpUserScrapListResponseDTO = scrapService.getAllCpUserScrap(user, page, size); return ResponseEntity.status(SUCCESS_READ_ALL_SCRAP.getHttpStatus()) .body( GlobalApiResponse.of( SUCCESS_READ_ALL_SCRAP.getMessage(), - jobScrapResponseDTOS + cpUserScrapListResponseDTO ) ); } diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/CpUserScrapListResponseDTO.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/CpUserScrapListResponseDTO.java new file mode 100644 index 0000000..b4cce8b --- /dev/null +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/CpUserScrapListResponseDTO.java @@ -0,0 +1,34 @@ +package team9502.sinchulgwinong.domain.scrap.dto.response; + +import lombok.Getter; +import team9502.sinchulgwinong.domain.companyUser.dto.response.CpUserProfileResponseDTO; + +import java.util.List; + +@Getter +public class CpUserScrapListResponseDTO { + + private Long totalCpScrapCount; + + private int currentPage; + + private int totalPages; + + private int pageSize; + + private List cpUserProfileResponseDTOS; + + public CpUserScrapListResponseDTO( + List cpUserProfileResponseDTOS, + Long totalCpScrapCount, + int currentPage, + int totalPages, + int pageSize) { + + this.totalCpScrapCount = totalCpScrapCount; + this.currentPage = currentPage; + this.totalPages = totalPages; + this.pageSize = pageSize; + this.cpUserProfileResponseDTOS = cpUserProfileResponseDTOS; + } +} diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/JobScrapResponseDTO.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/JobScrapResponseDTO.java deleted file mode 100644 index 0433819..0000000 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/JobScrapResponseDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package team9502.sinchulgwinong.domain.scrap.dto.response; - -import lombok.Getter; -import team9502.sinchulgwinong.domain.jobBoard.entity.JobBoard; -import team9502.sinchulgwinong.domain.scrap.entity.JobScrap; - -@Getter -public class JobScrapResponseDTO { - - private Long userId; - - private Long scrapId; - - private Long jobBoardId; - - public JobScrapResponseDTO(JobScrap jobScrap, JobBoard jobBoard) { - this.scrapId = jobScrap.getJobScrapId(); - this.jobBoardId = jobScrap.getJobBoard().getJobBoardId(); - this.userId = jobScrap.getUser().getUserId(); - //TODO: 스크랩 조회시 나올 응답값은 피그마 수정후 추가 - } -} \ No newline at end of file diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/ScrapResponseDTO.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/ScrapResponseDTO.java deleted file mode 100644 index 12b3ddc..0000000 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/dto/response/ScrapResponseDTO.java +++ /dev/null @@ -1,32 +0,0 @@ -package team9502.sinchulgwinong.domain.scrap.dto.response; - -import lombok.Getter; -import team9502.sinchulgwinong.domain.board.entity.Board; -import team9502.sinchulgwinong.domain.scrap.entity.Scrap; - -import java.time.LocalDateTime; - -@Getter -public class ScrapResponseDTO { - - private Long userId; - - private Long scrapId; - - private Long boardId; - - private String boardTitle; - - private String userName; - - private LocalDateTime createdAt; - - public ScrapResponseDTO(Scrap scrap, Board board) { - this.scrapId = scrap.getScrapId(); - this.boardId = scrap.getBoard().getBoardId(); - this.userId = scrap.getUser().getUserId(); - this.boardTitle = board.getBoardTitle(); - this.userName = board.getUser().getUsername(); - this.createdAt = board.getCreatedAt(); - } -} diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/Scrap.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/BoardScrap.java similarity index 95% rename from src/main/java/team9502/sinchulgwinong/domain/scrap/entity/Scrap.java rename to src/main/java/team9502/sinchulgwinong/domain/scrap/entity/BoardScrap.java index 437153d..ed57b54 100644 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/Scrap.java +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/BoardScrap.java @@ -8,7 +8,7 @@ @Getter @Entity -public class Scrap { +public class BoardScrap { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/CpUserScrap.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/CpUserScrap.java new file mode 100644 index 0000000..38dc7cf --- /dev/null +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/entity/CpUserScrap.java @@ -0,0 +1,26 @@ +package team9502.sinchulgwinong.domain.scrap.entity; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; +import team9502.sinchulgwinong.domain.companyUser.entity.CompanyUser; +import team9502.sinchulgwinong.domain.user.entity.User; + +@Getter +@Entity +public class CpUserScrap { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long cpUserScrapId; + + @Setter + @ManyToOne + @JoinColumn(name = "cp_user_id") + private CompanyUser companyUser; + + @Setter + @OneToOne + @JoinColumn(name = "userId") + private User user; +} diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/BoardScrapsRepository.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/BoardScrapsRepository.java new file mode 100644 index 0000000..5a09c42 --- /dev/null +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/BoardScrapsRepository.java @@ -0,0 +1,15 @@ +package team9502.sinchulgwinong.domain.scrap.repository; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import team9502.sinchulgwinong.domain.scrap.entity.BoardScrap; + +public interface BoardScrapsRepository extends JpaRepository { + + Page findByUser_UserId(Long userId, Pageable pageable); + + boolean existsByUser_UserIdAndBoard_BoardId(Long userId, Long boardId); + + BoardScrap findByUser_UserIdAndBoard_BoardId(Long userId, Long boardId); +} diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/CpUserScrapRepository.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/CpUserScrapRepository.java new file mode 100644 index 0000000..82c80e6 --- /dev/null +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/CpUserScrapRepository.java @@ -0,0 +1,15 @@ +package team9502.sinchulgwinong.domain.scrap.repository; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import team9502.sinchulgwinong.domain.scrap.entity.CpUserScrap; + +public interface CpUserScrapRepository extends JpaRepository { + + boolean existsByCompanyUser_CpUserIdAndUser_UserId(Long cpUserId, Long userId); + + CpUserScrap findByCompanyUser_CpUserId(Long cpUserId); + + Page findByUser_UserId(Long userId, Pageable pageable); +} diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/JobScrapRepository.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/JobScrapRepository.java index 0227111..5f9b7b5 100644 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/JobScrapRepository.java +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/JobScrapRepository.java @@ -1,13 +1,15 @@ package team9502.sinchulgwinong.domain.scrap.repository; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import team9502.sinchulgwinong.domain.scrap.entity.JobScrap; -import java.util.List; - public interface JobScrapRepository extends JpaRepository { boolean existsByJobBoard_JobBoardIdAndUser_UserId(Long jobBoardId, Long userId); + JobScrap findByJobBoard_JobBoardIdAndUser_UserId(Long jobBoardId, Long userId); - List findByUser_UserId(Long userId); + + Page findByUser_UserId(Long userId, Pageable pageable); } diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/ScrapsRepository.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/ScrapsRepository.java deleted file mode 100644 index b85de46..0000000 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/repository/ScrapsRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package team9502.sinchulgwinong.domain.scrap.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import team9502.sinchulgwinong.domain.scrap.entity.Scrap; - -import java.util.List; - -public interface ScrapsRepository extends JpaRepository { - - List findByUser_UserId (Long userId); - - boolean existsByUser_UserIdAndBoard_BoardId(Long userId, Long boardId); - - Scrap findByUser_UserIdAndBoard_BoardId(Long userId, Long boardId); -} diff --git a/src/main/java/team9502/sinchulgwinong/domain/scrap/service/ScrapService.java b/src/main/java/team9502/sinchulgwinong/domain/scrap/service/ScrapService.java index 72f3d31..20c294b 100644 --- a/src/main/java/team9502/sinchulgwinong/domain/scrap/service/ScrapService.java +++ b/src/main/java/team9502/sinchulgwinong/domain/scrap/service/ScrapService.java @@ -1,77 +1,99 @@ package team9502.sinchulgwinong.domain.scrap.service; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import team9502.sinchulgwinong.domain.board.dto.response.BoardListResponseDTO; +import team9502.sinchulgwinong.domain.board.dto.response.BoardResponseDTO; import team9502.sinchulgwinong.domain.board.entity.Board; import team9502.sinchulgwinong.domain.board.repository.BoardRepository; +import team9502.sinchulgwinong.domain.companyUser.dto.response.CpUserProfileResponseDTO; +import team9502.sinchulgwinong.domain.companyUser.entity.CompanyUser; +import team9502.sinchulgwinong.domain.companyUser.repository.CompanyUserRepository; +import team9502.sinchulgwinong.domain.jobBoard.dto.response.JobBoardListResponseDTO; +import team9502.sinchulgwinong.domain.jobBoard.dto.response.JobBoardResponseDTO; import team9502.sinchulgwinong.domain.jobBoard.entity.JobBoard; import team9502.sinchulgwinong.domain.jobBoard.repository.JobBoardRepository; -import team9502.sinchulgwinong.domain.scrap.dto.response.JobScrapResponseDTO; -import team9502.sinchulgwinong.domain.scrap.dto.response.ScrapResponseDTO; +import team9502.sinchulgwinong.domain.scrap.dto.response.CpUserScrapListResponseDTO; +import team9502.sinchulgwinong.domain.scrap.entity.BoardScrap; +import team9502.sinchulgwinong.domain.scrap.entity.CpUserScrap; import team9502.sinchulgwinong.domain.scrap.entity.JobScrap; -import team9502.sinchulgwinong.domain.scrap.entity.Scrap; +import team9502.sinchulgwinong.domain.scrap.repository.BoardScrapsRepository; +import team9502.sinchulgwinong.domain.scrap.repository.CpUserScrapRepository; import team9502.sinchulgwinong.domain.scrap.repository.JobScrapRepository; -import team9502.sinchulgwinong.domain.scrap.repository.ScrapsRepository; import team9502.sinchulgwinong.domain.user.entity.User; import team9502.sinchulgwinong.global.exception.ApiException; import team9502.sinchulgwinong.global.exception.ErrorCode; import java.util.List; -import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class ScrapService { - private final ScrapsRepository scrapsRepository; + private final BoardScrapsRepository boardScrapsRepository; private final BoardRepository boardRepository; private final JobBoardRepository jobBoardRepository; private final JobScrapRepository jobScrapRepository; + private final CompanyUserRepository companyUserRepository; + private final CpUserScrapRepository cpUserScrapRepository; @Transactional - public boolean scrapCreateBoard(Long boardId, User user){ + public boolean scrapCreateBoard(Long boardId, User user) { Board board = boardRepository.findById(boardId) - .orElseThrow(()-> new ApiException(ErrorCode.BOARD_NOT_FOUND)); + .orElseThrow(() -> new ApiException(ErrorCode.BOARD_NOT_FOUND)); - if(scrapsRepository.existsByUser_UserIdAndBoard_BoardId(user.getUserId(), boardId)){ + if (boardScrapsRepository.existsByUser_UserIdAndBoard_BoardId(user.getUserId(), boardId)) { - Scrap scrap = scrapsRepository.findByUser_UserIdAndBoard_BoardId(user.getUserId(),boardId); + BoardScrap boardScrap = boardScrapsRepository.findByUser_UserIdAndBoard_BoardId(user.getUserId(), boardId); - scrapsRepository.delete(scrap); + boardScrapsRepository.delete(boardScrap); return false; - } - else{ + } else { - Scrap scrap = new Scrap(); + BoardScrap boardScrap = new BoardScrap(); - scrap.setBoard(board); - scrap.setUser(user); + boardScrap.setBoard(board); + boardScrap.setUser(user); - scrapsRepository.save(scrap); + boardScrapsRepository.save(boardScrap); return true; } } @Transactional(readOnly = true) - public List getAllScraps(User user){ - - return scrapsRepository.findByUser_UserId(user.getUserId()).stream() - .map(scrap -> { - Board board = scrap.getBoard(); - return new ScrapResponseDTO(scrap, board); - }) - .collect(Collectors.toList()); + public BoardListResponseDTO getAllScraps(User user, int page, int size) { + + Pageable pageable = PageRequest.of(page, size); + + Page boardScrapPage = boardScrapsRepository.findByUser_UserId(user.getUserId(), pageable); + + List boardResponseDTOS = boardScrapPage.stream() + .map(boardScrap -> { + Board board = boardScrap.getBoard(); + return new BoardResponseDTO(board); + }).toList(); + + return new BoardListResponseDTO( + boardResponseDTOS, + boardScrapPage.getTotalElements(), + boardScrapPage.getNumber(), + boardScrapPage.getTotalPages(), + boardScrapPage.getSize()); + } @Transactional - public boolean scrapCreateJobBoard(Long jobBoardId, User user){ + public boolean scrapCreateJobBoard(Long jobBoardId, User user) { JobBoard jobBoard = jobBoardRepository.findById(jobBoardId) - .orElseThrow(()-> new ApiException(ErrorCode.BOARD_NOT_FOUND)); + .orElseThrow(() -> new ApiException(ErrorCode.BOARD_NOT_FOUND)); - if(jobScrapRepository.existsByJobBoard_JobBoardIdAndUser_UserId(jobBoardId, user.getUserId())){ + if (jobScrapRepository.existsByJobBoard_JobBoardIdAndUser_UserId(jobBoardId, user.getUserId())) { JobScrap jobScrap = jobScrapRepository.findByJobBoard_JobBoardIdAndUser_UserId(jobBoardId, user.getUserId()); @@ -79,8 +101,7 @@ public boolean scrapCreateJobBoard(Long jobBoardId, User user){ return false; - } - else{ + } else { JobScrap jobScrap = new JobScrap(); @@ -94,14 +115,86 @@ public boolean scrapCreateJobBoard(Long jobBoardId, User user){ } @Transactional(readOnly = true) - public List getAllJobBoards(User user){ + public JobBoardListResponseDTO getAllJobBoards(User user, int page, int size) { - return jobScrapRepository.findByUser_UserId(user.getUserId()).stream() - .map(jobScrap ->{ + Pageable pageable = PageRequest.of(page, size); + + Page jobScrapPage = jobScrapRepository.findByUser_UserId(user.getUserId(), pageable); + + List jobBoardResponseDTOS = jobScrapPage.stream() + .map(jobScrap -> { JobBoard jobBoard = jobScrap.getJobBoard(); - return new JobScrapResponseDTO(jobScrap,jobBoard); - }) - .collect(Collectors.toList()); + return new JobBoardResponseDTO(jobBoard); + }).toList(); + + return new JobBoardListResponseDTO( + jobBoardResponseDTOS, + jobScrapPage.getTotalElements(), + jobScrapPage.getNumber(), + jobScrapPage.getTotalPages(), + jobScrapPage.getSize() + ); + } + + + @Transactional + public boolean cpUserScrapCreate(User user, Long cpUserId) { + + CompanyUser companyUser = companyUserRepository.findById(cpUserId) + .orElseThrow(() -> new ApiException(ErrorCode.COMPANY_USER_NOT_FOUND)); + + if (cpUserScrapRepository.existsByCompanyUser_CpUserIdAndUser_UserId(cpUserId, user.getUserId())) { + + CpUserScrap cpUserScrap = cpUserScrapRepository.findByCompanyUser_CpUserId(cpUserId); + + cpUserScrapRepository.delete(cpUserScrap); + + return false; + } else { + + CpUserScrap cpUserScrap = new CpUserScrap(); + + cpUserScrap.setCompanyUser(companyUser); + cpUserScrap.setUser(user); + + cpUserScrapRepository.save(cpUserScrap); + + return true; } + } + @Transactional(readOnly = true) + public CpUserScrapListResponseDTO getAllCpUserScrap(User user, int page, int size) { + + Pageable pageable = PageRequest.of(page, size); + + Page cpUserScrapPage = cpUserScrapRepository.findByUser_UserId(user.getUserId(), pageable); + + List cpUserProfileResponseDTOS = cpUserScrapPage.stream() + .map(cpUserScrap -> { + CompanyUser companyUser = cpUserScrap.getCompanyUser(); + return new CpUserProfileResponseDTO( + companyUser.getCpUserId(), + companyUser.getCpName(), + companyUser.getCpEmail(), + companyUser.getCpPhoneNumber(), + companyUser.getCpUsername(), + companyUser.getHiringStatus(), + companyUser.getEmployeeCount(), + companyUser.getFoundationDate(), + companyUser.getDescription(), + companyUser.getCpNum(), + companyUser.getAverageRating(), + companyUser.getReviewCount() + ); + }).toList(); + + return new CpUserScrapListResponseDTO( + cpUserProfileResponseDTOS, + cpUserScrapPage.getTotalElements(), + cpUserScrapPage.getNumber(), + cpUserScrapPage.getTotalPages(), + cpUserScrapPage.getSize() + ); } +}