Files
hyungi_document_server/migrations/230_quiz_sessions_finalize_summary.sql
T
Hyungi Ahn d3bf963a66 feat(study): Phase 2-B 결과 화면 변화 카운트 + 확인완료 progress 통합
Phase 1 finalize 가 계산하던 SessionSummary 가 응답에 포함되지 않고 discard
되던 것을 quiz_session row 4 컬럼으로 영속화. 결과 화면 헤더에 회복/퇴행/
새로 맞힘/반복 오답 누적 변화 카운트 + "바로 할 일" 콜아웃 (지금 시점
progress 기반 동적 카운트 — pending_review/chronic/regressed). 동적 카운트는
결과 GET 호출 시점에만 계산 (목록 endpoint 비용 회피).

확인완료 통합 — 결과 카드의 [학습완료] 버튼이 attempts.reviewed_at 만 박던
것을 progress.last_reviewed_at + (wrong/unsure 면 due_at 최초 부여) 도 같이
박도록. reviewed=false 토글은 attempts 만 되돌림 (다른 attempt 가 검토 표시
했을 수 있어 progress 의 last_reviewed_at 은 보존).

- migrations/230 — quiz_sessions 4 컬럼 ADD (단일 ALTER TABLE)
- StudyQuizSession 모델 + finalize_session 가 row 영속화
- QuizSessionSummary 응답에 4 스냅샷 + 3 동적 필드 (default 0)
- _build_session_summary include_progress_counts=True 시 SQL 3회
- review-mark 가 reveiwed=true 시 progress 동기화
- 결과 화면: 헤더 변화 카운트 줄 + 바로 할 일 콜아웃 (값 있을 때만)

Plan: ~/.claude/plans/crispy-petting-dijkstra.md (Phase 2-B)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:49:01 +09:00

14 lines
862 B
SQL

-- 230_quiz_sessions_finalize_summary.sql
-- Phase 2-B: finalize 시점 결과 요약 4 컬럼 영속화 (결과 화면 헤더).
-- newly_correct: 처음 푸는데 맞힘 (이전 attempts 0건)
-- relapsed: 이전 정답이었으나 이번 wrong
-- recovered: pattern_state 가 recovered 로 새로 박힘
-- chronic_remaining: 이번 세션 후 chronic_wrong 으로 박힌 행 수 (전체 chronic — 세션 외 포함)
-- 다중 ADD COLUMN 은 단일 ALTER TABLE 안에서 1 statement 로 통과.
ALTER TABLE study_quiz_sessions
ADD COLUMN IF NOT EXISTS newly_correct_count INTEGER NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS relapsed_count INTEGER NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS recovered_count INTEGER NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS chronic_remaining_count INTEGER NOT NULL DEFAULT 0;