Skip to content

feat: 마이페이지 및 OB 멘토링 관리 API 구현(#53) - #56

Merged
JoonKyoLee merged 8 commits into
mainfrom
feat/mypage-mentoring-management-api
Jul 5, 2026
Merged

JoonKyoLee merged 8 commits into
mainfrom
feat/mypage-mentoring-management-api

Conversation

@JoonKyoLee

Copy link
Copy Markdown
Collaborator

관련 이슈

작업 내용

  • YB 마이페이지 조회 API 구현
  • 거절 사유 조회 API 구현
  • 멘토링 후기 작성 API 구현
  • OB 프로필 조회/수정 및 공개 토글 API 구현
  • OB 가능 시간 조회/저장 API 구현
  • OB 멘토링 요청 목록 조회, 승인/거절 API 구현
  • OB 받은 후기 조회 API 구현

상세 변경 사항

  • MypageController, MypageService에 YB/OB 마이페이지 관련 API를 확장했습니다.
  • GET /api/mypage 추가
  • GET /api/mypage/applications/{applicationId}/rejection-reason 추가
  • POST /api/mypage/reviews 추가
  • GET /api/mypage/ob/profile 추가
  • PUT /api/mypage/ob/profile 추가
  • PUT /api/mypage/ob/profile/visibility 추가
  • GET /api/mypage/ob/schedule 추가
  • PUT /api/mypage/ob/schedule 추가
  • GET /api/mypage/ob/requests 추가
  • POST /api/mypage/ob/requests/{applicationId}/approve 추가
  • POST /api/mypage/ob/requests/{applicationId}/reject 추가
  • GET /api/mypage/ob/reviews 추가
  • MentoringApplication, MentoringReview, Mentor, MentoringSlot 엔티티에 마이페이지 요구사항 대응 필드를 반영했습니다.
  • MentoringApplicationRepository, MentoringReviewRepository, MentoringSlotRepository 조회 메서드를 확장했습니다.

구현 포인트

  • YB 마이페이지는 신청 상태를 PENDING, ACTIVE, COMPLETED/REJECTED로 분리해 응답하도록 구성했습니다.
  • 후기 작성은 멘토링 신청과 application_id로 1:1 연결해 중복 작성이 불가능하도록 보장했습니다.
  • @EntityGraph를 적용해 마이페이지 조회, OB 요청 목록 조회, 후기 조회 시 필요한 연관 엔티티를 함께 로딩하도록 구성했습니다.
  • OB 프로필 공개 여부는 단순 토글이 아니라 프로필 작성 완료, 미래 슬롯 존재, 신청 받기 ON 조건을 함께 검사하도록 구현했습니다.
  • 가능 시간 저장은 날짜 단위로 처리하되, 이미 신청이 걸린 슬롯은 삭제/타입 변경이 불가능하도록 보호 로직을 추가했습니다.
  • 승인 API는 슬롯을 다시 락으로 조회한 뒤 현재 신청 수를 기준으로 정원 초과를 검증하고 ACTIVE로 변경하도록 구현했습니다.
  • 슬롯/승인 상태 변경 이후 멘토 visibility를 재계산해, 신청 가능한 미래 슬롯이 없으면 자동 비공개되도록 반영했습니다.
  • 후기 조회는 키워드, 작성자, 추천 여부까지 한 번에 내려줄 수 있도록 응답 구조를 정리했습니다.

테스트

  • ./gradlew compileJava 성공 확인

참고 사항

  • 채팅방 생성 및 연결은 채팅 도메인 구현 전 단계라 이번 PR 범위에서 제외했습니다.
  • 승인 API는 현재 레포 구조 기준으로 멘토링 상태 변경과 슬롯 정합성 검증까지 우선 반영했습니다.

@JoonKyoLee
JoonKyoLee requested a review from howooyeon July 5, 2026 13:49
@JoonKyoLee JoonKyoLee self-assigned this Jul 5, 2026
@github-actions

github-actions Bot commented Jul 5, 2026 •

Copy link
Copy Markdown

Unit Test Results

1 tests   1 ✔️  0s ⏱️
1 suites  0 💤
1 files    0 ❌

Results for commit 1cd128e.

♻️ This comment has been updated with latest results.

@JoonKyoLee
JoonKyoLee merged commit 21d3a41 into main Jul 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: YB·OB 마이페이지 및 후기 API 구현

1 participant