Skip to content

Conversation

@chaiminwoo0223
Copy link
Contributor

@chaiminwoo0223 chaiminwoo0223 commented Oct 16, 2025

📌 작업 내용 및 특이사항

✅ 여행 회고 API

  • 사용자가 여행 완료를 수행한 후, tripId를 이용해 지나온 여행 회고
  • TripQueryService.getValidCompletedTrip()를 통해, 완료된 여행 검증 및 조회
  • StudyLogQueryService.getStudyLogsSliceByTripId()를 통해, 학습 로그 목록 페이지네이션 조회
  • MissionQueryService.countCompletedMissionsByTripId()를 통해, 완료된 미션 수 계산
  • PomodoroQueryService.getTotalFocusHoursByTripId()를 통해, 총 집중 시간 계산

✅ 여행 리포트 생성 API

  • 사용자는 여행 회고에서 얻은 정보, 회고록, meberId를 이용해 여행 리포트 생성
  • TripReportCommandService.createTripReport()를 통해 여행 리포트 생성
  • TripReportFactory.create()를 통해, 여행 리포트 엔티티 생성
  • StudyLogQueryService.getValidStudyLogs()를 통해, 요청에 포함된 학습 로그 목록 조회 및 검증
  • TripReportStudyLogCommandService.createTripReportStudyLogs()를 통해, 여행 리포트와 학습 로그 연결 생성
  • TripReportStudyLogFactory.create()를 통해, 여행 리포트•학습 로그 연결 엔티티 생성

✅ 여행 리포트 목록 조회 API

  • memberId를 이용해 사용자가 작성한 여행 리포트 목록 조회
  • TripReportQueryService.getTripReportsByMemberId()를 통해, 모든 여행 리포트 조회 (생성일 내림차순 정렬)

✅ 여행 리포트 상세 조회 API

  • memberId, tripReportId를 이용해 사용자가 작성한 여행 리포트 상세 조회
  • TripReportQueryService.getValidTripReport()를 통해, 여행 리포트 조회 및 검증
  • TripReportPolicy.validateOwner()를 통해, 여행 리포트 소유자 권한 검증
  • StudyLogQueryService.getStudyLogsSliceByTripReportId()를 통해, 여행 리포트에 연결된 학습 로그 목록 페이지네이션 조회

✅ 여행 리포트 이미지 업로드용 Presigned URL 발급 API

  • 사용자가 여행 리포트 이미지를 S3에 업로드하기 위한 Presigned PUT URL을 발급
  • TripReportQueryService.getTripReport()를 통해, 여행 리포트 조회
  • ImageService.presign()를 통해, S3 Presigned PUT URL 생성

✅ 업로드된 여행 리포트 이미지 검증/확정 API

  • 사용자가 S3에 업로드한 여행 리포트 이미지검증/확정
  • ImageService.confirm()를 통해, 이미지 검증 및 최종 경로 이동
  • TripReportCommandService.updateImageUrl()를 통해, 여행 리포트의 imageUrl 업데이트
  • TripReport.updateImageUrl()를 통해, 엔티티의 이미지 URL 갱신

✅ 에러 코드 추가

  • TripReportErrorCode 추가
  • TripErrorCodeTRIP_NOT_COMPLETED 에러 코드 추가

✅ 정책 추가

  • TripReportPolicy 추가
  • TripPolicyvalidateNotCompleted 메서드 추가
  • StudyLogPolicyvalidateExistAll 메서드 추가

✅ 리포지토리 메서드 추가

  • PomodoroQueryRepository, PomodoroQueryRepositoryAdaptersumFocusHoursByTripId 메서드 추가
  • MissionQueryRepository, MissionQueryRepositoryAdaptercountCompletedMissionsByTripId 메서드 추가
  • StudyLogRepository, StudyLogJpaRepository, StudyLogRepositoryAdapterfindAllByIdIn 메서드 추가
  • StudyLogQueryRepository, StudyLogQueryRepositoryAdapterfindSliceByTripReportIdOrderByCreatedAtDesc 메서드 추가

✅ 서비스 메서드 추가

  • PomodoroQueryServicegetTotalFocusHoursByTripId 메서드 추가
  • MissionQueryServicecountCompletedMissionsByTripId 메서드 추가
  • TripQueryServicegetValidCompletedTrip 메서드 추가
  • StudyLogQueryServicegetValidStudyLogs 메서드 추가
  • StudyLogQueryServicegetStudyLogsSliceByTripReportId 메서드 추가

✅ Application DTO 추가

  • TripRetrospectSummary DTO 추가
  • TripRetrospectDetail DTO 추가
  • TripReportInfo DTO 추가
  • TripReportsInfo DTO 추가
  • TripReportDetail DTO 추가
  • PresignedTripReportImageInfo DTO 추가

✅ Presentation DTO 추가

  • CreateTripReportRequest DTO 추가
  • PresignTripReportImageRequest, ConfirmTripReportImageRequest DTO 추가
  • LoadTripRetrospectDetailResponse DTO 추가
  • LoadTripReportsResponse DTO 추가
  • LoadTripReportDetailResponse DTO 추가
  • PresignedTripReportImageResponse DTO 추가

✅ 테스트

  • PomodoroQueryServiceTestGetTotalFocusHoursByTripId 단위 테스트 추가
  • StudyLogQueryServiceTestGetStudyLogsByTripId 단위 테스트 추가
  • MissionQueryServiceCountCompletedMissionsByTripId 단위 테스트 추가
  • TripQueryServiceTestGetValidCompletedTrip 단위 테스트 추가
  • TripReportQueryServiceTest 단위 테스트 추가
  • TripReportCommandServiceTest 단위 테스트 추가
  • TripReportFixture, TripReportStudyLogFixture 추가
  • CreateTripReportRequestFixture 추가
  • PresignTripReportImageRequestFixture, ConfirmTripReportImageRequestFixture 추가
  • TripReportTestHelper 추가
  • TripReportControllerIntegrationTest 통합 테스트 추가

✅ Flyway 스크립트 작성

  • V5__create_trip_report_table.sql: trip_report 테이블 생성 SQL 스크립트
  • V6__create_trip_report_study_log_table.sql: trip_report_study_log 테이블 생성 SQL 스크립트

🌱 관련 이슈


🔍 참고사항(선택)

  • TripCountInfo -> TripCount 이름 변경

📚 기타(선택)

@chaiminwoo0223 chaiminwoo0223 self-assigned this Oct 16, 2025
@chaiminwoo0223 chaiminwoo0223 added the ✨feature 구현, 개선 사항 관련 부분 label Oct 16, 2025
* feat: PomodoroQueryRepository, PomodoroQueryRepositoryAdapter에 sumFocusHoursByTripId 메서드 추가
* feat: MissionQueryRepository, MissionQueryRepositoryAdapter에 countCompletedMissionsByTripId 메서드 추가
* feat: StudyLogRepository, StudyLogJpaRepository, StudyLogRepositoryAdapter에 findAllByIdIn 메서드 추가
* feat: StudyLogQueryRepository, StudyLogQueryRepositoryAdapter에 findSliceByTripReportIdOrderByCreatedAtDesc 메서드 추가

* feat: PomodoroQueryService에 getTotalFocusHoursByTripId 메서드 추가
* feat: MissionQueryService에 countCompletedMissionsByTripId 메서드 추가
* feat: TripQueryService에 getValidCompletedTrip 메서드 추가
* feat: StudyLogQueryService에 getValidStudyLogs 메서드 추가
* feat: StudyLogQueryService에 getStudyLogsSliceByTripReportId 메서드 추가

* feat: TripErrorCode에 TRIP_NOT_COMPLETED 에러 코드 추가
* feat: TripPolicy에 validateNotCompleted 메서드 추가
* feat: StudyLogPolicy에 validateExistAll 메서드 추가

* feat: TripReportStudyLog 구현
* feat: TripReportStudyLogFactory 구현
* feat: TripReportStudyLogRepository, TripReportStudyLogJpaRepository, TripReportStudyLogRepositoryAdapter 구현
* feat: TripReportStudyLogCommandService 구현

* feat: TripReport 구현
* feat: TripReportFactory 구현
* feat: TripReportRepository, TripReportJpaRepository, TripReportRepositoryAdapter 구현
* feat: TripReportQueryService 구현
* feat: TripReportCommandService 구현
* feat: TripReportFacade 구현
* feat: TripReportController 구현

* feat: TripReportErrorCode 추가
* feat: TripReportPolicy 추가

* feat: TripRetrospectSummary DTO 추가
* feat: TripRetrospectDetail DTO 추가
* feat: TripReportInfo DTO 추가
* feat: TripReportsInfo DTO 추가
* feat: TripReportDetail DTO 추가
* feat: PresignedTripReportImageInfo DTO 추가

* feat: CreateTripReportRequest DTO 추가
* feat: PresignTripReportImageRequest, ConfirmTripReportImageRequest DTO 추가
* feat: LoadTripRetrospectDetailResponse DTO 추가
* feat: LoadTripReportsResponse DTO 추가
* feat: LoadTripReportDetailResponse DTO 추가
* feat: PresignedTripReportImageResponse DTO 추가

* refactor: TripCountInfo -> TripCount 이름 변경

* test: PomodoroQueryServiceTest에 GetTotalFocusHoursByTripId 단위 테스트 추가
* test: StudyLogQueryServiceTest에 GetStudyLogsByTripId 단위 테스트 추가
* test: MissionQueryService에 CountCompletedMissionsByTripId 단위 테스트 추가
* test: TripQueryServiceTest에 GetValidCompletedTrip 단위 테스트 추가

* test: TripReportQueryServiceTest 단위 테스트 추가
* test: TripReportCommandServiceTest 단위 테스트 추가
* test: TripReportFixture, TripReportStudyLogFixture 추가
* test: CreateTripReportRequestFixture 추가
* test: PresignTripReportImageRequestFixture, ConfirmTripReportImageRequestFixture 추가
* test: TripReportTestHelper 추가
* test: TripReportControllerIntegrationTest 통합 테스트 추가

* chore: V5__create_trip_report_table.sql 추가
* chore: V6__create_trip_report_study_log_table.sql 추가
Copy link
Contributor

@hisonghy hisonghy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생많으셨어요. 우선은 바로 승인하겠습니다.
바로 병합부탁드려요!

@chaiminwoo0223 chaiminwoo0223 merged commit 4b2e941 into develop Oct 16, 2025
2 checks passed
@chaiminwoo0223 chaiminwoo0223 changed the title feat: 여행 리포트 기능 구현 feat: 여행 리포트 기능 구현(#72) Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨feature 구현, 개선 사항 관련 부분

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨[FEAT]: 여행 리포트 기능 구현

3 participants