Repository navigation
[FIX] 속기록에 생성 시점의 시간표 이름·주제·팀 이름을 스냅샷으로 저장 - #290
Conversation
시간표를 수정하면 이미 만든 속기록의 주제도 바뀌던 문제를 고친다. 속기록 저장 시 시간표 정보를 함께 저장하고, 조회·목록·AI 보정·분석은 이 스냅샷을 쓴다. 기존 속기록은 V21 마이그레이션에서 현재 시간표 값으로 채운다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 53 minutes. View limit details
Walkthrough속기록 생성 시 시간표 이름, 안건, 찬성 팀 이름, 반대 팀 이름을 스냅샷으로 저장합니다. 상세·목록 응답과 분석·다듬기 과정은 저장된 값을 사용합니다. 기존 속기록의 스냅샷 값은 마이그레이션에서 채웁니다. Changes속기록 시간표 스냅샷
Priority: Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix · Severity of issue fixed: Medium Possibly related PRs
Merge Risk:
|
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
📝 Test Coverage Report
|
There was a problem hiding this comment.
🔇 Additional comments: 1
src/main/java/com/debatetimer/dto/transcript/response/TranscriptResponse.java-28-29: 1
28-29:Minor · Data Integrity & Integration · Quick win
⚠️ Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.상세 응답의 시간표 필드를 nullable로 선언하세요.
V21 이전에 삭제된 시간표의 속기록은 스냅샷 값이 null입니다. 이 생성자는 해당 값을
TranscriptResponse에 그대로 전달하지만,tableName,agenda,prosTeamName,consTeamName은 nullable로 표시하지 않습니다. 네 응답 필드에@Nullable을 적용해 실제 응답 계약을 명시하세요.

Review info
-
Run configuration-
- Source mode: Auto
- Repository: debate-timer/debate-timer-be
- Branch: develop
- File: .coderabbit.yaml
- Commit: a41a8e4
- Layers: Repository YAML
- Review profile: CHILL
- Plan: Advanced
- Run ID:
3402ebcd-4c81-45fc-9f62-ae36719dd3f5
Files selected for processing: 16-
src/main/java/com/debatetimer/domain/transcript/Transcript.javasrc/main/java/com/debatetimer/domain/transcript/TranscriptSummary.javasrc/main/java/com/debatetimer/domain/transcript/TranscriptTableSnapshot.javasrc/main/java/com/debatetimer/domainrepository/transcript/TranscriptDomainRepository.javasrc/main/java/com/debatetimer/dto/transcript/response/TranscriptResponse.javasrc/main/java/com/debatetimer/dto/transcript/response/TranscriptSummaryResponse.javasrc/main/java/com/debatetimer/entity/transcript/TranscriptEntity.javasrc/main/java/com/debatetimer/repository/transcript/TranscriptRepository.javasrc/main/java/com/debatetimer/service/transcript/DebateAnalyzer.javasrc/main/java/com/debatetimer/service/transcript/TranscriptRefiner.javasrc/main/java/com/debatetimer/service/transcript/TranscriptService.javasrc/main/resources/db/migration/V21__add_table_snapshot_to_transcript.sqlsrc/test/java/com/debatetimer/domainrepository/transcript/TranscriptDomainRepositoryTest.javasrc/test/java/com/debatetimer/service/transcript/DebateAnalyzerTest.javasrc/test/java/com/debatetimer/service/transcript/TranscriptRefinerTest.javasrc/test/java/com/debatetimer/service/transcript/TranscriptServiceTest.java
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
-
Test Results256 files 256 suites 57s ⏱️ Results for commit 50ac0b0. |
🚩 연관 이슈
closed #288
작업 내용
토론이 끝난 뒤 시간표의 이름·주제를 바꾸면 이미 만든 속기록과 토론 기록 목록의 주제도 함께 바뀌었습니다. 조회·목록·AI 보정·분석이 시간표를 매번 다시 읽었기 때문입니다. 속기록은 그 토론의 기록이므로 생성 시점의 값으로 고정합니다.
transcript에 함께 저장합니다(TranscriptTableSnapshot, V21).GET /api/transcripts/{id}), 목록(GET /api/transcripts), AI 보정, 분석 보고서 생성이 모두 이 스냅샷을 씁니다.검증
./gradlew test654개 통과(Flyway 마이그레이션 검증 포함).🗣️ 리뷰 요구사항 (선택)
TranscriptRefiner를 고쳐 이 브랜치 위에 있습니다. 이 PR을 먼저 머지해 주세요.🤖 Generated with Claude Code
Summary by CodeRabbit