Skip to content

fix(db): Ask Chat 초기 무료 대화권 누락 보정 - #237

Merged
1Seob merged 1 commit into
developfrom
fix/db-ask-chat-free-turn-backfill
Aug 31, 2026
Merged

fix(db): Ask Chat 초기 무료 대화권 누락 보정#237
1Seob merged 1 commit into
developfrom
fix/db-ask-chat-free-turn-backfill

Conversation

@1Seob

@1Seob 1Seob commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

📝 요약(Summary)

  • 기존 Ask Chat backfill에서 무료 대화권 3회가 지급되지 않은 사용자를 보정합니다.
  • 이미 적용된 migration은 변경하지 않고 새로운 forward-only Flyway migration을 추가했습니다.

주요 변경사항

  • 기존 사용자 보정
    • INITIAL_FREE_GRANT 로그가 없는 사용자만 보정 대상으로 선정했습니다.
    • 지갑이 없으면 무료 대화권 3회로 생성하고, 기존 지갑이 있으면 현재 잔액에 3회를 추가합니다.
    • 기존 무료·유료 대화권 잔액을 보존합니다.
  • 중복 지급 방지
    • 정상 지급 후 대화권을 모두 사용한 사용자는 지급 로그를 기준으로 제외합니다.
    • INSERT ... ON CONFLICT DO UPDATE ... RETURNING으로 지갑 보정과 지급 로그 생성을 연결했습니다.
    • 동일 migration을 다시 실행해도 추가 지급되지 않습니다.
  • 회귀 테스트
    • 지갑이 없는 누락 사용자와 기존 지갑이 있는 누락 사용자의 지급을 검증했습니다.
    • 정상 지급 사용자 제외, 기존 잔액 보존, 지급 로그 스냅샷과 재실행 멱등성을 확인했습니다.

검증

  • AskChatInitialFreeTurnBackfillMigrationTest 통과
  • AskChatWalletRepositoryTest 통과
  • Gradle BUILD SUCCESSFUL

참고 / 리스크

  • 배포 시 INITIAL_FREE_GRANT 로그가 없는 모든 사용자가 보정 대상이 됩니다.
  • 운영 반영 후 신규 지급 로그 수와 보정된 지갑 수를 확인해야 합니다.

🔗 Related Issue

  • Closes:

💬 공유사항

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • PR 제목을 커밋 메시지 컨벤션에 맞게 작성했습니다.

INITIAL_FREE_GRANT 이력이 없는 기존 사용자의 지갑에 무료 대화권 3회를 원자적으로 지급하는 forward-only Flyway migration을 추가하고, 기존
잔액 보존과 중복 지급 방지를 PostgreSQL 통합 테스트로 검증함
@1Seob
1Seob merged commit 6a1a147 into develop Aug 31, 2026
1 check passed
@1Seob
1Seob deleted the fix/db-ask-chat-free-turn-backfill branch August 31, 2026 05:05
@1Seob 1Seob mentioned this pull request Aug 31, 2026
1 task
1Seob added a commit that referenced this pull request Aug 31, 2026
INITIAL_FREE_GRANT 이력이 없는 기존 사용자의 지갑에 무료 대화권 3회를 원자적으로 지급하는 forward-only Flyway migration을 추가하고, 기존
잔액 보존과 중복 지급 방지를 PostgreSQL 통합 테스트로 검증함
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.

1 participant