Conversation
* 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 추가
2cbbd29 to
894f49e
Compare
hisonghy
approved these changes
Oct 16, 2025
Contributor
hisonghy
left a comment
There was a problem hiding this comment.
고생많으셨어요. 우선은 바로 승인하겠습니다.
바로 병합부탁드려요!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 작업 내용 및 특이사항
✅ 여행 회고 API
여행 완료를 수행한 후, tripId를 이용해 지나온 여행 회고TripQueryService.getValidCompletedTrip()를 통해, 완료된 여행 검증 및 조회StudyLogQueryService.getStudyLogsSliceByTripId()를 통해, 학습 로그 목록 페이지네이션 조회MissionQueryService.countCompletedMissionsByTripId()를 통해, 완료된 미션 수 계산PomodoroQueryService.getTotalFocusHoursByTripId()를 통해, 총 집중 시간 계산✅ 여행 리포트 생성 API
TripReportCommandService.createTripReport()를 통해 여행 리포트 생성TripReportFactory.create()를 통해, 여행 리포트 엔티티 생성StudyLogQueryService.getValidStudyLogs()를 통해, 요청에 포함된 학습 로그 목록 조회 및 검증TripReportStudyLogCommandService.createTripReportStudyLogs()를 통해, 여행 리포트와 학습 로그 연결 생성TripReportStudyLogFactory.create()를 통해, 여행 리포트•학습 로그 연결 엔티티 생성✅ 여행 리포트 목록 조회 API
TripReportQueryService.getTripReportsByMemberId()를 통해, 모든 여행 리포트 조회 (생성일 내림차순 정렬)✅ 여행 리포트 상세 조회 API
TripReportQueryService.getValidTripReport()를 통해, 여행 리포트 조회 및 검증TripReportPolicy.validateOwner()를 통해, 여행 리포트 소유자 권한 검증StudyLogQueryService.getStudyLogsSliceByTripReportId()를 통해, 여행 리포트에 연결된 학습 로그 목록 페이지네이션 조회✅ 여행 리포트 이미지 업로드용 Presigned URL 발급 API
S3에 업로드하기 위한 Presigned PUT URL을 발급TripReportQueryService.getTripReport()를 통해, 여행 리포트 조회ImageService.presign()를 통해, S3 Presigned PUT URL 생성✅ 업로드된 여행 리포트 이미지 검증/확정 API
여행 리포트 이미지를 검증/확정ImageService.confirm()를 통해, 이미지 검증 및 최종 경로 이동TripReportCommandService.updateImageUrl()를 통해, 여행 리포트의 imageUrl 업데이트TripReport.updateImageUrl()를 통해, 엔티티의 이미지 URL 갱신✅ 에러 코드 추가
TripReportErrorCode추가TripErrorCode에 TRIP_NOT_COMPLETED 에러 코드 추가✅ 정책 추가
TripReportPolicy추가TripPolicy에 validateNotCompleted 메서드 추가StudyLogPolicy에 validateExistAll 메서드 추가✅ 리포지토리 메서드 추가
PomodoroQueryRepository,PomodoroQueryRepositoryAdapter에 sumFocusHoursByTripId 메서드 추가MissionQueryRepository,MissionQueryRepositoryAdapter에 countCompletedMissionsByTripId 메서드 추가StudyLogRepository,StudyLogJpaRepository,StudyLogRepositoryAdapter에 findAllByIdIn 메서드 추가StudyLogQueryRepository,StudyLogQueryRepositoryAdapter에 findSliceByTripReportIdOrderByCreatedAtDesc 메서드 추가✅ 서비스 메서드 추가
PomodoroQueryService에 getTotalFocusHoursByTripId 메서드 추가MissionQueryService에 countCompletedMissionsByTripId 메서드 추가TripQueryService에 getValidCompletedTrip 메서드 추가StudyLogQueryService에 getValidStudyLogs 메서드 추가StudyLogQueryService에 getStudyLogsSliceByTripReportId 메서드 추가✅ Application DTO 추가
TripRetrospectSummaryDTO 추가TripRetrospectDetailDTO 추가TripReportInfoDTO 추가TripReportsInfoDTO 추가TripReportDetailDTO 추가PresignedTripReportImageInfoDTO 추가✅ Presentation DTO 추가
CreateTripReportRequestDTO 추가PresignTripReportImageRequest,ConfirmTripReportImageRequestDTO 추가LoadTripRetrospectDetailResponseDTO 추가LoadTripReportsResponseDTO 추가LoadTripReportDetailResponseDTO 추가PresignedTripReportImageResponseDTO 추가✅ 테스트
PomodoroQueryServiceTest에GetTotalFocusHoursByTripId단위 테스트 추가StudyLogQueryServiceTest에GetStudyLogsByTripId단위 테스트 추가MissionQueryService에CountCompletedMissionsByTripId단위 테스트 추가TripQueryServiceTest에GetValidCompletedTrip단위 테스트 추가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 스크립트🌱 관련 이슈
🔍 참고사항(선택)
📚 기타(선택)