From 5881cfd644b6e1776cdc524edf0cc2f3c6896778 Mon Sep 17 00:00:00 2001 From: yumzen Date: Thu, 5 Sep 2024 14:48:16 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20DTO=20record=20type=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/converter/CommentConverter.java | 2 +- .../global/converter/PostConverter.java | 20 +- .../global/converter/PostFileConverter.java | 14 +- .../backend/global/domain/entity/Post.java | 8 +- .../CommentCommandServiceImpl.java | 2 +- .../MemberCategoryCommandServiceImpl.java | 2 +- .../MemberCommandServiceImpl.java | 32 +- .../PostService/PostCommandServiceImpl.java | 16 +- .../TeamMemberCommandServiceImpl.java | 10 +- .../TeamService/TeamCommandServiceImpl.java | 26 +- .../global/web/controller/PostController.java | 2 +- .../web/controller/SocialLoginController.java | 16 +- .../global/web/controller/TeamController.java | 10 +- .../web/dto/Bookmark/BookmarkResponseDTO.java | 37 +- .../global/web/dto/Calendar/CalendarDTO.java | 19 +- .../web/dto/Category/CategoryRequestDTO.java | 22 - .../web/dto/Category/CategoryResponseDTO.java | 20 +- .../web/dto/Comment/CommentRequestDTO.java | 14 +- .../web/dto/Comment/CommentResponseDTO.java | 51 +- .../web/dto/Member/MemberRequestDTO.java | 67 +- .../web/dto/Member/MemberResponseDTO.java | 166 ++-- .../MemberCategoryRequestDTO.java | 12 +- .../MemberCategoryResponseDTO.java | 43 +- .../global/web/dto/Post/PostRequestDTO.java | 106 +-- .../global/web/dto/Post/PostResponseDTO.java | 860 ++++++++---------- .../web/dto/PostFile/PostFileRequestDTO.java | 4 - .../web/dto/PostFile/PostFileResponseDTO.java | 20 +- .../web/dto/Project/ProjectRequestDTO.java | 4 - .../web/dto/Project/ProjectResponseDTO.java | 19 +- .../dto/SocialLogin/Oauth2ResponseDTO.java | 15 +- .../global/web/dto/Team/TeamRequestDTO.java | 74 +- .../global/web/dto/Team/TeamResponseDTO.java | 155 ++-- .../dto/TeamMember/TeamMemberRequestDTO.java | 33 +- .../dto/TeamMember/TeamMemberResponseDTO.java | 36 +- 34 files changed, 707 insertions(+), 1230 deletions(-) delete mode 100644 src/main/java/com/codiary/backend/global/web/dto/Category/CategoryRequestDTO.java delete mode 100644 src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileRequestDTO.java delete mode 100644 src/main/java/com/codiary/backend/global/web/dto/Project/ProjectRequestDTO.java diff --git a/src/main/java/com/codiary/backend/global/converter/CommentConverter.java b/src/main/java/com/codiary/backend/global/converter/CommentConverter.java index f5ec69a5..e1e99b7d 100644 --- a/src/main/java/com/codiary/backend/global/converter/CommentConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/CommentConverter.java @@ -30,7 +30,7 @@ public static CommentResponseDTO.DeleteCommentResultDTO toDeleteCommentResultDTO public static CommentResponseDTO.CountCommentsResultDTO toCountCommentsResultDTO(Long postId, int countComments) { return CommentResponseDTO.CountCommentsResultDTO.builder() .postId(postId) - .countComments(countComments) + .countComment(countComments) .build(); } diff --git a/src/main/java/com/codiary/backend/global/converter/PostConverter.java b/src/main/java/com/codiary/backend/global/converter/PostConverter.java index 8b345dd2..1cf7e5d8 100644 --- a/src/main/java/com/codiary/backend/global/converter/PostConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/PostConverter.java @@ -20,20 +20,20 @@ public class PostConverter { public static Post toPost(PostRequestDTO.CreatePostRequestDTO request, TeamRepository teamRepository, ProjectRepository projectRepository) { Team team = null; Project project = null; - if (request.getTeamId() != null) { - team = teamRepository.findById(request.getTeamId()).orElseThrow(() -> new IllegalArgumentException("Team not found with id: " + request.getTeamId())); + if (request.teamId() != null) { + team = teamRepository.findById(request.teamId()).orElseThrow(() -> new IllegalArgumentException("Team not found with id: " + request.teamId())); } // projectId가 제공된 경우에만 Project 객체를 조회 - if (request.getProjectId() != null) { - project = projectRepository.findById(request.getProjectId()).orElseThrow(() -> new IllegalArgumentException("Project not found with id: " + request.getProjectId())); + if (request.projectId() != null) { + project = projectRepository.findById(request.projectId()).orElseThrow(() -> new IllegalArgumentException("Project not found with id: " + request.projectId())); } return Post.builder() - .postTitle(request.getPostTitle()) - .postBody(request.getPostBody()) + .postTitle(request.postTitle()) + .postBody(request.postBody()) .team(team) .project(project) - .postStatus(request.getPostStatus()) - .postAccess(request.getPostAccess()) + .postStatus(request.postStatus()) + .postAccess(request.postAccess()) .build(); } @@ -437,7 +437,7 @@ public static PostResponseDTO.UpdatePostResultDTO toSetPostCategoriesResultDTO(P // 게시글에 댓글 작성하기 public static Comment toComment(PostRequestDTO.CommentDTO request) { return Comment.builder() - .commentBody(request.getCommentBody()) + .commentBody(request.commentBody()) .build(); } @@ -455,7 +455,7 @@ public static PostResponseDTO.CreateCommentResultDTO toCreateCommentResultDTO(Co // 게시글에 대댓글 작성하기 public static Comment toCommentReply(PostRequestDTO.CommentReplyDTO request) { return Comment.builder() - .commentBody(request.getCommentReplyBody()) + .commentBody(request.commentReplyBody()) .build(); } diff --git a/src/main/java/com/codiary/backend/global/converter/PostFileConverter.java b/src/main/java/com/codiary/backend/global/converter/PostFileConverter.java index 4d10a32c..77fd81e0 100644 --- a/src/main/java/com/codiary/backend/global/converter/PostFileConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/PostFileConverter.java @@ -18,21 +18,13 @@ public static PostFile toPostFile(String fileUrl, Post post, String fileName) { } public static PostFileResponseDTO.PostFileListDTO toPostFileListDTO(List postFileList) { - PostFileResponseDTO.PostFileListDTO postFileListDTO = new PostFileResponseDTO.PostFileListDTO(); - postFileListDTO.setPostFileList(new ArrayList<>()); - - for (PostFile postFile:postFileList) { - postFileListDTO.getPostFileList().add(toPostFileDTO(postFile)); - } + PostFileResponseDTO.PostFileListDTO postFileListDTO = new PostFileResponseDTO.PostFileListDTO(postFileList); return postFileListDTO; } - public static PostFileResponseDTO.postFileDTO toPostFileDTO(PostFile postFile) { - PostFileResponseDTO.postFileDTO postFileDTO = new PostFileResponseDTO.postFileDTO(); - - postFileDTO.setName(postFile.getFileName()); - postFileDTO.setUrl(postFile.getFileUrl()); + public static PostFileResponseDTO.PostFileDTO toPostFileDTO(PostFile postFile) { + PostFileResponseDTO.PostFileDTO postFileDTO = new PostFileResponseDTO.PostFileDTO(postFile.getFileName(), postFile.getFileUrl()); return postFileDTO; } diff --git a/src/main/java/com/codiary/backend/global/domain/entity/Post.java b/src/main/java/com/codiary/backend/global/domain/entity/Post.java index 3c134cc3..fb59c204 100644 --- a/src/main/java/com/codiary/backend/global/domain/entity/Post.java +++ b/src/main/java/com/codiary/backend/global/domain/entity/Post.java @@ -81,10 +81,10 @@ public class Post extends BaseEntity { public void setProject(Project project) { this.project = project;} public void update(PostRequestDTO.UpdatePostDTO request) { - this.postTitle = request.getPostTitle(); - this.postBody = request.getPostBody(); - this.postAccess = request.getPostAccess(); - this.postStatus = request.getPostStatus(); + this.postTitle = request.postTitle(); + this.postBody = request.postBody(); + this.postAccess = request.postAccess(); + this.postStatus = request.postStatus(); } public void setMember(Member member) { this.member = member;} diff --git a/src/main/java/com/codiary/backend/global/service/CommentService/CommentCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/CommentService/CommentCommandServiceImpl.java index 56a6ad76..b2600927 100644 --- a/src/main/java/com/codiary/backend/global/service/CommentService/CommentCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/CommentService/CommentCommandServiceImpl.java @@ -31,7 +31,7 @@ public Comment patchComment(Long commentId, CommentRequestDTO.PatchCommentDTO re .orElseThrow(() -> new GeneralException(ErrorStatus.COMMENT_NOT_FOUND)); if (request != null) { - comment.patchComment(request.getCommentBody()); + comment.patchComment(request.commentBody()); } CommentConverter.toPatchCommentResultDTO(comment); diff --git a/src/main/java/com/codiary/backend/global/service/MemberCategoryService/MemberCategoryCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/MemberCategoryService/MemberCategoryCommandServiceImpl.java index 6f1cab46..30cb06ab 100644 --- a/src/main/java/com/codiary/backend/global/service/MemberCategoryService/MemberCategoryCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/MemberCategoryService/MemberCategoryCommandServiceImpl.java @@ -49,7 +49,7 @@ public MemberCategory patchMemberCategory(Long memberCategoryId, MemberCategoryR .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBERCATEGORY_NOT_FOUND)); if (request != null) { - Categories categories = categoryRepository.findById(request.getCategoryId()) + Categories categories = categoryRepository.findById(request.categoryId()) .orElseThrow(() -> new GeneralException(ErrorStatus.CATEGORY_NOT_FOUND)); memberCategory.patchCategories(categories); diff --git a/src/main/java/com/codiary/backend/global/service/MemberService/MemberCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/MemberService/MemberCommandServiceImpl.java index b4e8c3df..1fc438c1 100644 --- a/src/main/java/com/codiary/backend/global/service/MemberService/MemberCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/MemberService/MemberCommandServiceImpl.java @@ -52,20 +52,20 @@ public class MemberCommandServiceImpl implements MemberCommandService { public ApiResponse signUp(MemberRequestDTO.MemberSignUpRequestDTO signUpRequest) { signUpRequest.isCorrect(); - if (memberRepository.existsByEmail(signUpRequest.getEmail()) - || memberRepository.existsByNickname(signUpRequest.getNickname())) { + if (memberRepository.existsByEmail(signUpRequest.email()) + || memberRepository.existsByNickname(signUpRequest.nickname())) { throw new MemberHandler(ErrorStatus.MEMBER_ALREADY_EXISTS); } Member member = Member.builder() - .email(signUpRequest.getEmail()) - .password(passwordEncoder.encode(signUpRequest.getPassword())) - .nickname(signUpRequest.getNickname()) - .birth(signUpRequest.getBirth().toString()) + .email(signUpRequest.email()) + .password(passwordEncoder.encode(signUpRequest.password())) + .nickname(signUpRequest.nickname()) + .birth(signUpRequest.birth().toString()) .gender(Member.Gender.Female) - .github(signUpRequest.getGithub()) - .linkedin(signUpRequest.getLinkedin()) - .discord(signUpRequest.getDiscord()) + .github(signUpRequest.github()) + .linkedin(signUpRequest.linkedin()) + .discord(signUpRequest.discord()) .image(null) .build(); memberRepository.save(member); @@ -108,7 +108,7 @@ public ApiResponse login(MemberRequest .authenticate(authenticationToken); // 3. 인증 정보를 기반으로 JWT 토큰 생성 - Member getMember = memberRepository.findByEmail(loginRequest.getEmail()).orElseThrow(); + Member getMember = memberRepository.findByEmail(loginRequest.email()).orElseThrow(); TokenInfo tokenInfo = jwtTokenProvider.generateToken(authentication, getMember.getMemberId()); return ApiResponse.of(SuccessStatus.MEMBER_OK, MemberResponseDTO.MemberTokenResponseDTO.builder() @@ -168,7 +168,7 @@ public ApiResponse updateProfileImage(Member m String uuid = UUID.randomUUID().toString(); Uuid savedUuid = uuidRepository.save(Uuid.builder().uuid(uuid).build()); - String fileUrl = s3Manager.uploadFile(s3Manager.generatePostName(savedUuid), request.getImage()); + String fileUrl = s3Manager.uploadFile(s3Manager.generatePostName(savedUuid), request.image()); MemberImage memberImage = MemberImage.builder() .imageUrl(fileUrl) @@ -256,11 +256,11 @@ public MemberResponseDTO.ProjectsDTO setProjects(Long memberId, String projectNa @Override public Member updateMemberInfo(Member member, MemberRequestDTO.MemberInfoRequestDTO request){ Member updatedMember = member.toBuilder() - .birth(request.getBirth()) - .introduction(request.getIntroduction()) - .github(request.getGithub()) - .linkedin(request.getLinkedin()) - .discord(request.getDiscord()) + .birth(request.birth()) + .introduction(request.introduction()) + .github(request.github()) + .linkedin(request.linkedin()) + .discord(request.discord()) .build(); return memberRepository.save(updatedMember); diff --git a/src/main/java/com/codiary/backend/global/service/PostService/PostCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/PostService/PostCommandServiceImpl.java index aac56613..d6a0549b 100644 --- a/src/main/java/com/codiary/backend/global/service/PostService/PostCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/PostService/PostCommandServiceImpl.java @@ -62,8 +62,8 @@ public Post createPost(PostRequestDTO.CreatePostRequestDTO request) { Post tempPost = postRepository.save(newPost); tempPost.setPostFileList(new ArrayList<>()); - if (request.getPostFiles() != null) { - for (MultipartFile file : request.getPostFiles()) { + if (request.postFiles() != null) { + for (MultipartFile file : request.postFiles()) { if (file.isEmpty()) { continue; } @@ -79,7 +79,7 @@ public Post createPost(PostRequestDTO.CreatePostRequestDTO request) { } // 대표 사진 설정 - String thumbnailImageName = request.getThumbnailImageName(); + String thumbnailImageName = request.thumbnailImageName(); for (PostFile postFile : tempPost.getPostFileList()) { if (postFile.getFileName().equals(thumbnailImageName)) { tempPost.setThumbnailImage(postFile); @@ -100,8 +100,8 @@ public Post updatePost(Long postId, PostRequestDTO.UpdatePostDTO request) { updatePost.update(request); // 새로운 이미지 추가 - if (request.getAddedPostFiles() != null) { - for (MultipartFile file : request.getAddedPostFiles()) { + if (request.addedPostFiles() != null) { + for (MultipartFile file : request.addedPostFiles()) { if (file.isEmpty()) { continue; } @@ -117,7 +117,7 @@ public Post updatePost(Long postId, PostRequestDTO.UpdatePostDTO request) { } // 대표 사진 설정 - String thumbnailImageName = request.getThumbnailImageName(); + String thumbnailImageName = request.thumbnailImageName(); for (PostFile postFile : updatePost.getPostFileList()) { if (postFile.getFileName() == thumbnailImageName) { updatePost.setThumbnailImage(postFile); @@ -145,7 +145,7 @@ public Post updateVisibility(Long postId, PostRequestDTO.UpdateVisibilityRequest .orElseThrow(() -> new IllegalArgumentException("Post not found")); Member getMember = memberCommandService.getRequester(); - post.setPostStatus(request.getPostStatus()); + post.setPostStatus(request.postStatus()); return postRepository.save(post); } @@ -159,7 +159,7 @@ public Post updateCoauthors(Long postId, PostRequestDTO.UpdateCoauthorRequestDTO post.getAuthorsList().clear(); // 새로운 공동 저자 리스트 추가 - Set coauthors = request.getMemberIds().stream() + Set coauthors = request.memberIds().stream() .map(newCoauthorId -> { Member newCoauthor = memberRepository.findById(newCoauthorId) .orElseThrow(() -> new IllegalArgumentException("Member not found: " + newCoauthorId)); diff --git a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java index f7f6f66b..72177639 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java @@ -40,7 +40,7 @@ public TeamMember addMemberToTeam(Member member, Team team, MemberRole role, Str @Override @Transactional public TeamMember addMember(TeamMemberRequestDTO.AddMemberDTO request) { - Team team = teamRepository.findById(request.getTeamId()) + Team team = teamRepository.findById(request.teamId()) .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); Member currentMember = getRequester(); @@ -55,16 +55,16 @@ public TeamMember addMember(TeamMemberRequestDTO.AddMemberDTO request) { throw new GeneralException(ErrorStatus.TEAM_ADMIN_UNAUTHORIZED); } - Member member = memberRepository.findById(request.getMemberId()) + Member member = memberRepository.findById(request.memberId()) .orElseThrow(() -> new IllegalArgumentException("Invalid member ID")); - return addMemberToTeam(member, team, request.getMemberRole(), request.getMemberPosition()); + return addMemberToTeam(member, team, request.memberRole(), request.memberPosition()); } @Override @Transactional public void removeMember(TeamMemberRequestDTO.RemoveMemberDTO request) { - Team team = teamRepository.findById(request.getTeamId()) + Team team = teamRepository.findById(request.teamId()) .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); Member currentMember = getRequester(); @@ -79,7 +79,7 @@ public void removeMember(TeamMemberRequestDTO.RemoveMemberDTO request) { throw new GeneralException(ErrorStatus.TEAM_ADMIN_UNAUTHORIZED); } - Member member = memberRepository.findById(request.getMemberId()) + Member member = memberRepository.findById(request.memberId()) .orElseThrow(() -> new IllegalArgumentException("Invalid member ID")); TeamMember teamMember = teamMemberRepository.findByTeamAndMember(team, member) diff --git a/src/main/java/com/codiary/backend/global/service/TeamService/TeamCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamService/TeamCommandServiceImpl.java index ea455781..0f4cd13f 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamService/TeamCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamService/TeamCommandServiceImpl.java @@ -49,12 +49,12 @@ public Team createTeam(TeamRequestDTO.CreateTeamRequestDTO request) { Member currentMember = getRequester(); Team team = Team.builder() - .name(request.getName()) - .intro(request.getIntro()) - .github(request.getGithub()) - .email(request.getEmail()) - .linkedin(request.getLinkedIn()) - .instagram(request.getInstagram()) + .name(request.name()) + .intro(request.intro()) + .github(request.github()) + .email(request.email()) + .linkedin(request.linkedIn()) + .instagram(request.instagram()) .teamMemberList(new ArrayList<>()) .bannerImage(null) .profileImage(null) @@ -72,11 +72,11 @@ public Team createTeam(TeamRequestDTO.CreateTeamRequestDTO request) { public Team updateTeam(Long teamId, TeamRequestDTO.UpdateTeamDTO request) { Team team = teamRepository.findById(teamId).orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); - team.setName(request.getName()); - team.setIntro(request.getIntro()); - team.setGithub(request.getGithub()); - team.setLinkedin(request.getLinkedIn()); - team.setInstagram(request.getInstagram()); + team.setName(request.name()); + team.setIntro(request.intro()); + team.setGithub(request.github()); + team.setLinkedin(request.linkedIn()); + team.setInstagram(request.instagram()); return teamRepository.save(team); } @@ -168,7 +168,7 @@ public ApiResponse updateTeamBannerImage(Long team String uuid = UUID.randomUUID().toString(); Uuid savedUuid = uuidRepository.save(Uuid.builder().uuid(uuid).build()); - String fileUrl = s3Manager.uploadFile(s3Manager.generatePostName(savedUuid), request.getImage()); + String fileUrl = s3Manager.uploadFile(s3Manager.generatePostName(savedUuid), request.image()); TeamBannerImage bannerImage = TeamBannerImage.builder() .imageUrl(fileUrl) @@ -191,7 +191,7 @@ public ApiResponse updateTeamProfileImage(Long tea String uuid = UUID.randomUUID().toString(); Uuid savedUuid = uuidRepository.save(Uuid.builder().uuid(uuid).build()); - String fileUrl = s3Manager.uploadFile(s3Manager.generatePostName(savedUuid), request.getImage()); + String fileUrl = s3Manager.uploadFile(s3Manager.generatePostName(savedUuid), request.image()); TeamProfileImage profileImage = TeamProfileImage.builder() .imageUrl(fileUrl) diff --git a/src/main/java/com/codiary/backend/global/web/controller/PostController.java b/src/main/java/com/codiary/backend/global/web/controller/PostController.java index dc4ff712..b0739970 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/PostController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/PostController.java @@ -118,7 +118,7 @@ public ApiResponse setPostTeam(@PathVariabl Member member = memberCommandService.getRequester(); jwtTokenProvider.isValidToken(member.getMemberId()); - Post updatedPost = postCommandService.setPostTeam(postId, request.getTeamId()); + Post updatedPost = postCommandService.setPostTeam(postId, request.teamId()); return ApiResponse.onSuccess(SuccessStatus.POST_OK, PostConverter.toUpdatePostResultDTO(updatedPost)); } diff --git a/src/main/java/com/codiary/backend/global/web/controller/SocialLoginController.java b/src/main/java/com/codiary/backend/global/web/controller/SocialLoginController.java index 15533e92..4cc2602e 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/SocialLoginController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/SocialLoginController.java @@ -20,9 +20,9 @@ public class SocialLoginController { @PostMapping("/login/kakao") @Operation(summary = "카카오 로그인") - public ApiResponse kakaoLogin() { + public ApiResponse kakaoLogin() { String url = socialLoginService.getKakaoRedirectUrl(); - return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO.SocialLoginDTO(url)); + return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO(url)); } @GetMapping("/login/kakao") @@ -33,9 +33,9 @@ public ApiResponse kakaoToken(@Request @PostMapping("/login/naver") @Operation(summary = "네이버 로그인") - public ApiResponse naverLogin() { + public ApiResponse naverLogin() { String url = socialLoginService.getNaverRedirectUrl(); - return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO.SocialLoginDTO(url)); + return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO(url)); } @GetMapping("/login/naver") @@ -49,9 +49,9 @@ public ApiResponse naverToken( @PostMapping("/login/github") @Operation(summary = "깃허브 로그인") - public ApiResponse githubLogin() { + public ApiResponse githubLogin() { String url = socialLoginService.getGithubRedirectUrl(); - return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO.SocialLoginDTO(url)); + return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO(url)); } @GetMapping("/login/github") @@ -64,9 +64,9 @@ public ApiResponse githubToken( @PostMapping("/login/google") @Operation(summary = "구글 로그인") - public ApiResponse googleLogin() { + public ApiResponse googleLogin() { String url = socialLoginService.getGoogleRedirectUrl(); - return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO.SocialLoginDTO(url)); + return ApiResponse.onSuccess(SuccessStatus.MEMBER_OK, new Oauth2ResponseDTO(url)); } @GetMapping("/login/google") diff --git a/src/main/java/com/codiary/backend/global/web/controller/TeamController.java b/src/main/java/com/codiary/backend/global/web/controller/TeamController.java index 731a5db1..875503b9 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/TeamController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/TeamController.java @@ -2,16 +2,10 @@ import com.codiary.backend.global.apiPayload.ApiResponse; import com.codiary.backend.global.apiPayload.code.status.SuccessStatus; -import com.codiary.backend.global.converter.PostConverter; -import com.codiary.backend.global.converter.ProjectConverter; import com.codiary.backend.global.converter.TeamConverter; import com.codiary.backend.global.domain.entity.*; -import com.codiary.backend.global.service.PostService.PostCommandService; import com.codiary.backend.global.service.TeamService.TeamCommandService; import com.codiary.backend.global.service.TeamService.TeamQueryService; -import com.codiary.backend.global.web.dto.Post.PostRequestDTO; -import com.codiary.backend.global.web.dto.Post.PostResponseDTO; -import com.codiary.backend.global.web.dto.Project.ProjectResponseDTO; import com.codiary.backend.global.web.dto.Team.TeamRequestDTO; import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; import com.codiary.backend.global.web.dto.Team.TeamSumResponseDTO; @@ -27,7 +21,7 @@ @RestController @RequestMapping("/teams") @CrossOrigin(origins = "http://localhost:8080, http://localhost:3000") -@Tag(name = "팀 API", description = "팀 생성/조회/수정 관련 API입니다.") +@Tag(name = "팀 API", description = "팀 생성/조회/수정 관련 API 입니다.") public class TeamController { private final TeamCommandService teamCommandService; @@ -101,7 +95,7 @@ public ApiResponse createTeamProject( return ApiResponse.onSuccess( SuccessStatus.TEAM_OK, - teamCommandService.createTeamProject(teamId, requestDTO.getProjectName()) + teamCommandService.createTeamProject(teamId, requestDTO.projectName()) ); } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Bookmark/BookmarkResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Bookmark/BookmarkResponseDTO.java index c3d83e87..23fa8b4a 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Bookmark/BookmarkResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Bookmark/BookmarkResponseDTO.java @@ -1,44 +1,19 @@ package com.codiary.backend.global.web.dto.Bookmark; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; - import java.time.LocalDateTime; -import java.util.List; public class BookmarkResponseDTO { - // 북마크 추가 + // 북마크 추가 응답 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CreateBookmarkResultDTO { - Long bookmarkId; - Long memberId; - Long postId; - LocalDateTime createdAt; - } + public record CreateBookmarkResultDTO(Long bookmarkId, Long memberId, Long postId, LocalDateTime createdAt) {} - // 북마크 삭제 + // 북마크 삭제 응답 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class DeleteBookmarkResultDTO { - Long bookmarkId; - } + public record DeleteBookmarkResultDTO(Long bookmarkId) {} - // 게시글의 북마크 개수 조회 + // 게시글의 북마크 개수 조회 응답 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CountBookmarkResultDTO { - Long postId; - int countBookmark; - } - + public record CountBookmarkResultDTO(Long postId, int countBookmark) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Calendar/CalendarDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Calendar/CalendarDTO.java index 8c11696d..229adfe5 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Calendar/CalendarDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Calendar/CalendarDTO.java @@ -1,28 +1,17 @@ package com.codiary.backend.global.web.dto.Calendar; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; import java.util.List; import java.util.Map; public class CalendarDTO { - @Getter + // 날짜별 프로젝트와 제목 리스트 응답 DTO @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class ToCalendarDTO { - private Map> projectAndTitlesByDate; - } + public record ToCalendarDTO(Map> projectAndTitlesByDate) {} - @Getter + // 프로젝트별 제목 리스트 응답 DTO @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class ToProjectDTO { - private Map> titlesByProject; - } + public record ToProjectDTO(Map> titlesByProject) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryRequestDTO.java deleted file mode 100644 index f0179815..00000000 --- a/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryRequestDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.codiary.backend.global.web.dto.Category; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; - -public class CategoryRequestDTO { - - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class SelectCategoryRequestDTO { - private Long memberId; - private Long postId; - private String categoryName; - } - - - -} diff --git a/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryResponseDTO.java index 51ed6c0b..f4bf338d 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Category/CategoryResponseDTO.java @@ -1,30 +1,14 @@ package com.codiary.backend.global.web.dto.Category; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import java.time.LocalDateTime; import java.util.List; public class CategoryResponseDTO { - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class CategoryPreviewDTO { - Long categoryId; - String categoryName; - } + public record CategoryPreviewDTO(Long categoryId, String categoryName) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class CategoryPreviewListDTO { - List categories; - } - + public record CategoryPreviewListDTO(List categories) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentRequestDTO.java index 6ea4a15b..ee4490d4 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentRequestDTO.java @@ -1,19 +1,11 @@ package com.codiary.backend.global.web.dto.Comment; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; + public class CommentRequestDTO { - // 댓글 수정하기 - @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PatchCommentDTO { - String commentBody; - } + //댓글 수정하기 요청 DTO + public record PatchCommentDTO(String commentBody) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentResponseDTO.java index 702f3640..b7bd3774 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Comment/CommentResponseDTO.java @@ -1,60 +1,21 @@ package com.codiary.backend.global.web.dto.Comment; -import com.codiary.backend.global.domain.entity.Comment; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; import java.time.LocalDateTime; public class CommentResponseDTO { - // 댓글 수정하기 + //댓글 수정하기 응답 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PatchCommentResultDTO { - Long commentId; - Long memberId; - Long postId; - String nickname; - String commentBody; - LocalDateTime createdAt; - LocalDateTime updatedAt; + public record PatchCommentResultDTO(Long commentId, Long memberId, Long postId, String nickname, String commentBody, LocalDateTime createdAt, LocalDateTime updatedAt) {} - // nickname 관련 could not initialize proxy - no Session 에러 - // DTO 변환을 Controller가 아닌 Service에서 하도록 추가 - // 트랜잭션 영역이 되기 때문에 DTO가 정상적으로 생성된다 - public PatchCommentResultDTO(Comment comment) { - this.commentId = comment.getCommentId(); - this.memberId = comment.getMember().getMemberId(); - this.postId = comment.getPost().getPostId(); - this.nickname = comment.getMember().getNickname(); - this.commentBody = comment.getCommentBody(); - this.createdAt = comment.getCreatedAt(); - this.updatedAt = comment.getUpdatedAt(); - } - } - - // 댓글 삭제하기 + // 댓글 삭제하기 응답 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class DeleteCommentResultDTO { - Long commentId; - } + public record DeleteCommentResultDTO(Long commentId) {} - // 게시글의 댓글 개수 조회 + // 댓글 개수 조회 응답 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CountCommentsResultDTO { - Long postId; - int countComments; - } + public record CountCommentsResultDTO(Long postId, int countComment) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Member/MemberRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Member/MemberRequestDTO.java index 50f801a4..eb38254f 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Member/MemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Member/MemberRequestDTO.java @@ -4,77 +4,54 @@ import com.codiary.backend.global.apiPayload.exception.handler.MemberHandler; import com.codiary.backend.global.domain.entity.Member; import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDate; - -@Getter -@Setter public class MemberRequestDTO { - @Getter - @Setter - public static class MemberSignUpRequestDTO { - private String email; - private String password; - private String nickname; - private LocalDate birth; - private Member.Gender gender; - private String github; - private String linkedin; - private String discord; + // 회원가입 요청 DTO + public record MemberSignUpRequestDTO( + String email, + String password, + String nickname, + LocalDate birth, + Member.Gender gender, + String github, + String linkedin, + String discord) { @JsonIgnore public Boolean isCorrect() { - if (!email.matches("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$")) { throw new MemberHandler(ErrorStatus.MEMBER_WRONG_EMAIL); } if (!password.matches("^[a-zA-Z0-9@$!%*#?&]{8,}$")) { throw new MemberHandler(ErrorStatus.MEMBER_WRONG_PASSWORD); } - if (nickname.trim() == "") { + if (nickname.trim().isEmpty()) { throw new MemberHandler(ErrorStatus.MEMBER_NAME_NOT_EXIST); } return true; } } - @Getter - @Setter - public static class MemberLoginRequestDTO { - private String email; - private String password; - + // 로그인 요청 DTO + public record MemberLoginRequestDTO(String email, String password) { public UsernamePasswordAuthenticationToken toAuthentication() { return new UsernamePasswordAuthenticationToken(email, password); } } - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - public static class MemberProfileImageRequestDTO { - private MultipartFile image; - } - - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - public static class MemberInfoRequestDTO { - private String birth; - private String introduction; - private String github; - private String linkedin; - private String discord; - } + // 프로필 이미지 요청 DTO + public record MemberProfileImageRequestDTO(MultipartFile image) {} + // 회원 정보 요청 DTO + public record MemberInfoRequestDTO( + String birth, + String introduction, + String github, + String linkedin, + String discord) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Member/MemberResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Member/MemberResponseDTO.java index b38ec9c9..a0a3e3a6 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Member/MemberResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Member/MemberResponseDTO.java @@ -3,7 +3,7 @@ import com.codiary.backend.global.domain.enums.TechStack; import com.codiary.backend.global.jwt.TokenInfo; import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; -import lombok.*; +import lombok.Builder; import java.time.LocalDateTime; import java.util.List; @@ -11,130 +11,82 @@ public class MemberResponseDTO { @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class MemberTokenResponseDTO { - TokenInfo tokenInfo; - String email; - String nickname; - Long memberId; - } - + public record MemberTokenResponseDTO( + TokenInfo tokenInfo, + String email, + String nickname, + Long memberId) {} // 회원별 북마크 리스트 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class BookmarkListDTO { - List bookmarkList; - Integer listSize; - Integer totalPage; - Long totalElements; - Boolean isFirst; - Boolean isLast; - } + public record BookmarkListDTO( + List bookmarkList, + Integer listSize, + Integer totalPage, + Long totalElements, + Boolean isFirst, + Boolean isLast) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class BookmarkDTO { - Long memberId; - Long bookmarkId; - Long postId; - String thumbnailImageUrl; - String postTitle; - String nickname; - String postBody; - LocalDateTime createdAt; - } + public record BookmarkDTO( + Long memberId, + Long bookmarkId, + Long postId, + String thumbnailImageUrl, + String postTitle, + String nickname, + String postBody, + LocalDateTime createdAt) {} // 회원별 관심 카테고리탭 리스트 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class MemberCategoryListDTO { - List memberCategoryList; - Integer listSize; - } + public record MemberCategoryListDTO( + List memberCategoryList, + Integer listSize) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class MemberCategoryDTO { - Long memberId; - Long memberCategoryId; - Long categoryId; - String categoryName; - LocalDateTime createdAt; - } + public record MemberCategoryDTO( + Long memberId, + Long memberCategoryId, + Long categoryId, + String categoryName, + LocalDateTime createdAt) {} @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class MemberImageDTO { - String url; - } + public record MemberImageDTO(String url) {} @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class UserProfileDTO { - Long currentMemberId; - Long userId; - String userName; - String photoUrl; - String githubUrl; - String linkedinUrl; - String discordUrl; - String introduction; - List techStacksList; - List teamList; - Boolean myPage; - } + public record UserProfileDTO( + Long currentMemberId, + Long userId, + String userName, + String photoUrl, + String githubUrl, + String linkedinUrl, + String discordUrl, + String introduction, + List techStacksList, + List teamList, + Boolean myPage) {} @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class UserInfoDTO { - Long memberId; - String email; - String nickname; - String birth; - String introduction; - String githubUrl; - String linkedinUrl; - String discordUrl; - } + public record UserInfoDTO( + Long memberId, + String email, + String nickname, + String birth, + String introduction, + String githubUrl, + String linkedinUrl, + String discordUrl) {} @Builder - @AllArgsConstructor - @NoArgsConstructor // 기본 생성자 추가 - @Getter - @Setter - public static class TechStacksDTO { - private Long memberId; - private List techStackList; - } + public record TechStacksDTO( + Long memberId, + List techStackList) {} @Builder - @AllArgsConstructor - @NoArgsConstructor // 기본 생성자 추가 - @Getter - @Setter - public static class ProjectsDTO { - private Long memberId; - private List projectList; - } + public record ProjectsDTO( + Long memberId, + List projectList) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryRequestDTO.java index 853095c9..243f3868 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryRequestDTO.java @@ -1,19 +1,11 @@ package com.codiary.backend.global.web.dto.MemberCategory; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; public class MemberCategoryRequestDTO { - // 회원별 관심 카테고리탭 수정하기 + // 회원별 관심 카테고리탭 수정하기 요청 DTO @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PatchMemberCategoryResultDTO { - Long categoryId; - } + public record PatchMemberCategoryResultDTO (Long categoryId) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryResponseDTO.java index 26c8b48b..84a503ff 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/MemberCategory/MemberCategoryResponseDTO.java @@ -1,9 +1,6 @@ package com.codiary.backend.global.web.dto.MemberCategory; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; import java.time.LocalDateTime; @@ -11,37 +8,23 @@ public class MemberCategoryResponseDTO { // 카테고리를 회원별 관심 카테고리에 추가 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CreateMemberCategoryResultDTO { - Long memberId; - Long categoryId; - Long memberCategoryId; - String categoryName; - LocalDateTime createdAt; - } + public record CreateMemberCategoryResultDTO( + Long memberId, + Long categoryId, + Long memberCategoryId, + String categoryName, + LocalDateTime createdAt) {} // 회원별 관심 카테고리탭 수정하기 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PatchMemberCategoryResultDTO { - Long memberCategoryId; - Long memberId; - Long categoryId; - String categoryName; - LocalDateTime updatedAt; - } + public record PatchMemberCategoryResultDTO( + Long memberCategoryId, + Long memberId, + Long categoryId, + String categoryName, + LocalDateTime updatedAt) {} // 회원별 관심 카테고리탭 삭제하기 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class DeleteMemberCategoryResultDTO { - Long memberCategoryId; - } - + public record DeleteMemberCategoryResultDTO(Long memberCategoryId) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Post/PostRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Post/PostRequestDTO.java index ee56137a..49f9ab85 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Post/PostRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Post/PostRequestDTO.java @@ -2,82 +2,44 @@ import com.codiary.backend.global.domain.enums.PostAccess; import jakarta.validation.constraints.NotBlank; -import lombok.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; public class PostRequestDTO { - @Getter - @Setter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class CreatePostRequestDTO { - private Long teamId; - private Long projectId; - private String postTitle; - private String postBody; - private Boolean postStatus; - //private Set postCategory; - private PostAccess postAccess; - private String thumbnailImageName; - private List postFiles; - } - - @Getter - @Setter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class UpdatePostDTO { - private String postTitle; - private String postBody; - private Boolean postStatus; - //private Set postCategory; - private PostAccess postAccess; - private String thumbnailImageName; - private List addedPostFiles; - } - - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class UpdateVisibilityRequestDTO { - private Boolean postStatus; // 공개(true) / 비공개(false) 상태 - } - - - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class UpdateCoauthorRequestDTO { - private List memberIds; - } - - @Getter - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class SetTeamRequestDTO { - private Long teamId; - } - - // 게시글에 댓글 작성하기 - @Getter - public static class CommentDTO { - @NotBlank - String commentBody; - } - - // 게시글에 대댓글 작성하기 - @Getter - public static class CommentReplyDTO { - @NotBlank - String commentReplyBody; - } - + // 게시글 생성 요청 DTO + public record CreatePostRequestDTO( + Long teamId, + Long projectId, + String postTitle, + String postBody, + Boolean postStatus, + PostAccess postAccess, + String thumbnailImageName, + List postFiles) {} + + // 게시글 수정 요청 DTO + public record UpdatePostDTO( + String postTitle, + String postBody, + Boolean postStatus, + PostAccess postAccess, + String thumbnailImageName, + List addedPostFiles) {} + + // 게시글 공개/비공개 상태 업데이트 요청 DTO + public record UpdateVisibilityRequestDTO(Boolean postStatus) {} + + // 게시글 공동 저자 업데이트 요청 DTO + public record UpdateCoauthorRequestDTO(List memberIds) {} + + // 게시글에 팀 설정 요청 DTO + public record SetTeamRequestDTO(Long teamId) {} + + // 게시글에 댓글 작성 요청 DTO + public record CommentDTO(@NotBlank String commentBody) {} + + // 게시글에 대댓글 작성 요청 DTO + public record CommentReplyDTO(@NotBlank String commentReplyBody) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Post/PostResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Post/PostResponseDTO.java index eb273369..f4b1e781 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Post/PostResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Post/PostResponseDTO.java @@ -1,14 +1,9 @@ package com.codiary.backend.global.web.dto.Post; import com.codiary.backend.global.domain.entity.Comment; -import com.codiary.backend.global.domain.entity.PostFile; import com.codiary.backend.global.domain.enums.PostAccess; -import com.codiary.backend.global.web.dto.PostFile.PostFileRequestDTO; import com.codiary.backend.global.web.dto.PostFile.PostFileResponseDTO; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; import java.time.LocalDateTime; import java.util.List; @@ -17,547 +12,444 @@ public class PostResponseDTO { - @Getter @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class CreatePostResultDTO { - Long postId; - Long memberId; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - } + public record CreatePostResultDTO( + Long postId, + Long memberId, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class UpdatePostResultDTO { - Long postId; - Long memberId; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - } + public record UpdatePostResultDTO( + Long postId, + Long memberId, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class PostDetailDTO{ - Long postId; - Long memberId; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostDetailDTO( + Long postId, + Long memberId, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class PostPreviewDTO { // Post 조회 - Long postId; - Long memberId; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostPreviewDTO( + Long postId, + Long memberId, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class PostPreviewListDTO { // 전체 Post 리스트 조회 - List posts; - Integer listSize; - Integer totalPage; - Long totalElements; - boolean isFirst; - boolean isLast; - } + public record PostPreviewListDTO( + List posts, + Integer listSize, + Integer totalPage, + Long totalElements, + boolean isFirst, + boolean isLast + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class MemberPostPreviewDTO { // 저자별 Post 조회 - Long memberId; - Long postId; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record MemberPostPreviewDTO( + Long memberId, + Long postId, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class MemberPostPreviewListDTO { // 저자별 Post 리스트 조회 - List posts; - Integer listSize; - Integer totalPage; - Long totalElements; - boolean isFirst; - boolean isLast; - } + public record MemberPostPreviewListDTO( + List posts, + Integer listSize, + Integer totalPage, + Long totalElements, + boolean isFirst, + boolean isLast + ) {} - - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class TeamPostPreviewDTO { // 팀별 Post 조회 - Long teamId; - Long postId; - Long memberId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record TeamPostPreviewDTO( + Long teamId, + Long postId, + Long memberId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class TeamPostPreviewListDTO { // 팀별 Post 리스트 조회 - List posts; - Integer listSize; - Integer totalPage; - Long totalElements; - boolean isFirst; - boolean isLast; - } + public record TeamPostPreviewListDTO( + List posts, + Integer listSize, + Integer totalPage, + Long totalElements, + boolean isFirst, + boolean isLast + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class MemberPostInProjectPreviewDTO { // 프로젝트별 저자의 Post 조회 - Long projectId; - Long memberId; - Long postId; - Long teamId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record MemberPostInProjectPreviewDTO( + Long projectId, + Long memberId, + Long postId, + Long teamId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class MemberPostInProjectPreviewListDTO { // 프로젝트별 저자의 Post 리스트 조회 - List posts; - Integer listSize; - Integer totalPage; - Long totalElements; - boolean isFirst; - boolean isLast; - } + public record MemberPostInProjectPreviewListDTO( + List posts, + Integer listSize, + Integer totalPage, + Long totalElements, + boolean isFirst, + boolean isLast + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class TeamPostInProjectPreviewDTO { // 프로젝트별 팀의 Post 조회 - Long projectId; - Long teamId; - Long postId; - Long memberId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record TeamPostInProjectPreviewDTO( + Long projectId, + Long teamId, + Long postId, + Long memberId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class TeamPostInProjectPreviewListDTO { // 프로젝트별 팀의 Post 리스트 조회 - List posts; - Integer listSize; - Integer totalPage; - Long totalElements; - boolean isFirst; - boolean isLast; - } + public record TeamPostInProjectPreviewListDTO( + List posts, + Integer listSize, + Integer totalPage, + Long totalElements, + boolean isFirst, + boolean isLast + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class MemberPostInTeamPreviewDTO { // 팀별 멤버의 Post 조회 - Long teamId; - Long memberId; - Long postId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record MemberPostInTeamPreviewDTO( + Long teamId, + Long memberId, + Long postId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class MemberPostInTeamPreviewListDTO { // 팀별 멤버의 Post 리스트 조회 - List posts; - Integer listSize; - Integer totalPage; - Long totalElements; - boolean isFirst; - boolean isLast; - } - + public record MemberPostInTeamPreviewListDTO( + List posts, + Integer listSize, + Integer totalPage, + Long totalElements, + boolean isFirst, + boolean isLast + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostAdjacentDTO { - Boolean hasLater; - Boolean hadOlder; - PostAdjacentPreviewDTO laterPost; - PostAdjacentPreviewDTO olderPost; - + public record PostAdjacentDTO( + Boolean hasLater, + Boolean hadOlder, + PostAdjacentPreviewDTO laterPost, + PostAdjacentPreviewDTO olderPost + ) { @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostAdjacentPreviewDTO { - Long postId; - Long memberId; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostAdjacentPreviewDTO( + Long postId, + Long memberId, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} } - // 게시글에 댓글 작성하기 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CreateCommentResultDTO { - Long commentId; - Long memberId; - Long postId; - String nickname; - String commentBody; - LocalDateTime createdAt; - } + public record CreateCommentResultDTO( + Long commentId, + Long memberId, + Long postId, + String nickname, + String commentBody, + LocalDateTime createdAt + ) {} - // 게시글에 대댓글 작성하기 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CreateCommentReplyResultDTO { - Long commentId; - Long memberId; - Long postId; - Long parentId; - String nickname; - String commentBody; - LocalDateTime createdAt; - } + public record CreateCommentReplyResultDTO( + Long commentId, + Long memberId, + Long postId, + Long parentId, + String nickname, + String commentBody, + LocalDateTime createdAt + ) {} - // 게시글별 댓글 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CommentListDTO { - List commentList; - Integer listSize; - } + public record CommentListDTO( + List commentList, + Integer listSize + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class CommentDTO { - Long commentId; - Long postId; - Long memberId; - String nickname; - String commentBody; - LocalDateTime createdAt; - List childCommentList; - + public record CommentDTO( + Long commentId, + Long postId, + Long memberId, + String nickname, + String commentBody, + LocalDateTime createdAt, + List childCommentList + ) { public CommentDTO(Comment comment) { - this.commentId = comment.getCommentId(); - this.postId = comment.getPost().getPostId(); - this.memberId = comment.getMember().getMemberId(); - this.nickname = comment.getMember().getNickname(); - this.commentBody = comment.getCommentBody(); - this.createdAt = comment.getCreatedAt(); - this.childCommentList = comment.getChildComments().stream() - .map(CommentDTO::new) - .collect(Collectors.toList()); + this( + comment.getCommentId(), + comment.getPost().getPostId(), + comment.getMember().getMemberId(), + comment.getMember().getNickname(), + comment.getCommentBody(), + comment.getCreatedAt(), + comment.getChildComments().stream() + .map(CommentDTO::new) + .collect(Collectors.toList()) + ); } } - // 메인페이지 인기글 전체 리스트 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostPopularListDTO { - List postPopularList; - Integer listSize; - Integer totalPage; - Long totalElements; - Boolean isFirst; - Boolean isLast; - } + public record PostPopularListDTO( + List postPopularList, + Integer listSize, + Integer totalPage, + Long totalElements, + Boolean isFirst, + Boolean isLast + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostPopularDTO { - Long postId; - Long memberId; - String nickname; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostPopularDTO( + Long postId, + Long memberId, + String nickname, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - // 메인페이지 인기글 멤버 관심 카테고리별 리스트 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostPopularMemberCategoryListDTO { - List postPopularMemberCategoryList; - Integer listSize; - Integer totalPage; - Long totalElements; - Boolean isFirst; - Boolean isLast; - } + public record PostPopularMemberCategoryListDTO( + List postPopularMemberCategoryList, + Integer listSize, + Integer totalPage, + Long totalElements, + Boolean isFirst, + Boolean isLast + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostPopularMemberCategoryDTO { - Long postId; - Long memberId; - String nickname; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostPopularMemberCategoryDTO( + Long postId, + Long memberId, + String nickname, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - // 메인페이지 최신글 리스트 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostLatestListDTO { - List postLatestList; - Integer listSize; - Integer totalPage; - Long totalElements; - Boolean isFirst; - Boolean isLast; - } + public record PostLatestListDTO( + List postLatestList, + Integer listSize, + Integer totalPage, + Long totalElements, + Boolean isFirst, + Boolean isLast + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostLatestDTO { - Long postId; - Long memberId; - String nickname; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostLatestDTO( + Long postId, + Long memberId, + String nickname, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - // 메인페이지 팔로잉 게시글 리스트 조회 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostFollowingListDTO { - List postFollowingList; - Integer listSize; - Integer totalPage; - Long totalElements; - Boolean isFirst; - Boolean isLast; - } + public record PostFollowingListDTO( + List postFollowingList, + Integer listSize, + Integer totalPage, + Long totalElements, + Boolean isFirst, + Boolean isLast + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostFollowingDTO { - Long postId; - Long memberId; - String nickname; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } + public record PostFollowingDTO( + Long postId, + Long memberId, + String nickname, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} - // 제목 & 본문 & 저자 & 프로젝트 & 카테고리 검색 @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostSearchTitleListDTO { - List postSearchTitleList; - Integer listSize; - Integer totalPage; - Long totalElements; - Boolean isFirst; - Boolean isLast; - } + public record PostSearchTitleListDTO( + List postSearchTitleList, + Integer listSize, + Integer totalPage, + Long totalElements, + Boolean isFirst, + Boolean isLast + ) {} @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class PostSearchTitleDTO { - Long postId; - Long memberId; - String nickname; - Long teamId; - Long projectId; - String postTitle; - String postBody; - String thumbnailImageUrl; - Boolean postStatus; - String postCategory; - Set coauthorIds; - PostAccess postAccess; - PostFileResponseDTO.PostFileListDTO postFileList; - LocalDateTime createdAt; - LocalDateTime updatedAt; - } - + public record PostSearchTitleDTO( + Long postId, + Long memberId, + String nickname, + Long teamId, + Long projectId, + String postTitle, + String postBody, + String thumbnailImageUrl, + Boolean postStatus, + String postCategory, + Set coauthorIds, + PostAccess postAccess, + PostFileResponseDTO.PostFileListDTO postFileList, + LocalDateTime createdAt, + LocalDateTime updatedAt + ) {} } - diff --git a/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileRequestDTO.java deleted file mode 100644 index 25508563..00000000 --- a/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileRequestDTO.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.codiary.backend.global.web.dto.PostFile; - -public class PostFileRequestDTO { -} diff --git a/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileResponseDTO.java index bac7cc91..8590a47e 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/PostFile/PostFileResponseDTO.java @@ -1,28 +1,12 @@ package com.codiary.backend.global.web.dto.PostFile; import com.codiary.backend.global.domain.entity.PostFile; -import lombok.*; import java.util.List; public class PostFileResponseDTO { - @Getter - @Setter - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class PostFileListDTO { - List postFileList; - } + public record PostFileListDTO(List postFileList) {} - @Getter - @Setter - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class postFileDTO { - String name; - String url; - } + public record PostFileDTO(String name, String url) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectRequestDTO.java deleted file mode 100644 index 6f0f7eb6..00000000 --- a/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectRequestDTO.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.codiary.backend.global.web.dto.Project; - -public class ProjectRequestDTO { -} diff --git a/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectResponseDTO.java index 4aefe684..1da9564d 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Project/ProjectResponseDTO.java @@ -1,29 +1,14 @@ package com.codiary.backend.global.web.dto.Project; -import com.codiary.backend.global.web.dto.Category.CategoryResponseDTO; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; import java.util.List; public class ProjectResponseDTO { - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class ProjectPreviewDTO { - Long projectId; - String projectName; - } + public record ProjectPreviewDTO(Long projectId, String projectName) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class ProjectPreviewListDTO { - List projects; - } + public record ProjectPreviewListDTO(List projects) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/SocialLogin/Oauth2ResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/SocialLogin/Oauth2ResponseDTO.java index 49f74a61..54a68f8e 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/SocialLogin/Oauth2ResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/SocialLogin/Oauth2ResponseDTO.java @@ -1,15 +1,6 @@ package com.codiary.backend.global.web.dto.SocialLogin; -import lombok.*; +import lombok.Builder; -public class Oauth2ResponseDTO { - - @Getter - @Setter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class SocialLoginDTO { - String redirectUrl; - } -} +@Builder +public record Oauth2ResponseDTO(String redirectUrl) {} diff --git a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamRequestDTO.java index 41fcc77f..90c14cbf 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamRequestDTO.java @@ -1,63 +1,31 @@ package com.codiary.backend.global.web.dto.Team; -import com.codiary.backend.global.domain.enums.PostAccess; -import com.codiary.backend.global.web.dto.Member.MemberResponseDTO; -import lombok.*; import org.springframework.web.multipart.MultipartFile; -import java.util.List; - public class TeamRequestDTO { - @Getter - @Setter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class CreateTeamRequestDTO { //팀 생성 - private String name; - private String intro; - private String github; - private String email; - private String linkedIn; - private String discord; - private String instagram; - } - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class UpdateTeamDTO { //팀 프로필 수정 - private String name; - private String intro; - private String github; - private String linkedIn; - private String discord; - private String instagram; - } + public record CreateTeamRequestDTO( + String name, + String intro, + String github, + String email, + String linkedIn, + String discord, + String instagram + ) {} + + public record UpdateTeamDTO( + String name, + String intro, + String github, + String linkedIn, + String discord, + String instagram + ) {} - @Getter - @Setter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class CheckTeam { //팀 조회 - private Long teamId; - } + public record CheckTeam(Long teamId) {} - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class CreateTeamProjectRequestDTO { - private String projectName; - } + public record CreateTeamProjectRequestDTO(String projectName) {} - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - public static class TeamImageRequestDTO { //이미지 설정 - private MultipartFile image; - } + public record TeamImageRequestDTO(MultipartFile image) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java index 2776efb2..5585913b 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java @@ -1,122 +1,87 @@ package com.codiary.backend.global.web.dto.Team; -import com.codiary.backend.global.domain.enums.PostAccess; -import com.codiary.backend.global.jwt.TokenInfo; import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; -import lombok.*; +import lombok.Builder; +import org.springframework.web.multipart.MultipartFile; import java.util.List; -import java.util.Set; public class TeamResponseDTO { @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class CreateTeamResponseDTO { // 팀 생성 - Long teamId; - String name; - String intro; - String profileImageUrl; - String bannerImageUrl; - } + public record CreateTeamResponseDTO( + Long teamId, + String name, + String intro, + String profileImageUrl, + String bannerImageUrl + ) {} - @Getter @Builder - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class UpdateTeamDTO { // 팀 프로필 수정 - Long teamId; - String name; - String intro; - String profileImageUrl; - String bannerImageUrl; - String github; - String email; - String linkedIn; - String discord; - String instagram; - } + public record UpdateTeamDTO( + Long teamId, + String name, + String intro, + String profileImageUrl, + String bannerImageUrl, + String github, + String email, + String linkedIn, + String discord, + String instagram + ) {} @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class TeamCheckResponseDTO { // 팀 조회 - Long teamId; - String name; - String intro; - String profileImageUrl; - String bannerImageUrl; - String github; - String email; - String linkedIn; - private List members; // 팀원 목록 추가 - private Boolean isAdmin; - private TeamFollowResponseDto followInfo; // 팀 팔로우 정보를 추가 - private List projects; - - @Getter + public record TeamCheckResponseDTO( + Long teamId, + String name, + String intro, + String profileImageUrl, + String bannerImageUrl, + String github, + String email, + String linkedIn, + List members, + Boolean isAdmin, + TeamFollowResponseDto followInfo, + List projects + ) { @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class ProjectDTO { - private Long projectId; - private String projectName; - } + public record ProjectDTO( + Long projectId, + String projectName + ) {} } - - - @Getter @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class ProjectsDTO { - private Long teamId; - private List projectList; - } + public record ProjectsDTO( + Long teamId, + List projectList + ) {} @Builder public record TeamFollowResponseDto( - Long followId, - Long memberId, - String memberName, - Long teamId, - String teamName, - Boolean followStatus - ) { - } + Long followId, + Long memberId, + String memberName, + Long teamId, + String teamName, + Boolean followStatus + ) {} @Builder - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - public static class TeamImageDTO { - String url; - } + public record TeamImageDTO( + String url + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class TeamPreviewDTO { - Long teamId; - String teamName; - } + public record TeamPreviewDTO( + Long teamId, + String teamName + ) {} - @Getter @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class TeamPreviewListDTO { - List teams; - } - - + public record TeamPreviewListDTO( + List teams + ) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java index 34be5631..1b81b205 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java @@ -1,29 +1,18 @@ package com.codiary.backend.global.web.dto.TeamMember; import com.codiary.backend.global.domain.enums.MemberRole; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; public class TeamMemberRequestDTO { - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class AddMemberDTO { - private Long teamId; - private Long memberId; - private MemberRole memberRole; - private String memberPosition; - } - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class RemoveMemberDTO { - private Long teamId; - private Long memberId; - } + public record AddMemberDTO( + Long teamId, + Long memberId, + MemberRole memberRole, + String memberPosition + ) {} + + public record RemoveMemberDTO( + Long teamId, + Long memberId + ) {} } diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java index e4440416..338183ec 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java @@ -1,37 +1,17 @@ package com.codiary.backend.global.web.dto.TeamMember; import com.codiary.backend.global.domain.enums.MemberRole; -import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; public class TeamMemberResponseDTO { @Builder - @Getter - @NoArgsConstructor - @AllArgsConstructor - public static class TeamCheckResponseDTO { //팀 조회 - private Long teamId; - private String name; - private String intro; - private String profilePhoto; - private String github; - private String email; - private String linkedIn; - } - - @Getter - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class TeamMemberDTO { - private Long teamMemberId; - private Long teamId; - private Long memberId; - private String nickname; - private MemberRole memberRole; - private String memberPosition; - } + public record TeamMemberDTO( + Long teamMemberId, + Long teamId, + Long memberId, + String nickname, + MemberRole memberRole, + String memberPosition + ) {} }