b04fa79840
신규 모듈 ga-external-adapter — 외부 SDK 의존성을 격리. 실제 SDK 통합 시 이 모듈의 구현체만 교체하면 ga-api/ga-common 무변경. - ga-common.adapter.bank: BankTransferAdapter 인터페이스 + Request/Response/Status - ga-common.adapter.message: MessageAdapter 인터페이스 + Channel(SMS/KAKAO)/Request/Response - ga-external-adapter: MockBankTransferAdapter / MockMessageAdapter (로그 + 마스킹) - V82: withdraw_request.transfer_tx_id/transfer_status/transfer_at + 부분 인덱스 - ApprovalService.handleApprovalCallback(WITHDRAW) — 최종 승인 시 펌뱅킹 어댑터 호출 - 성공: status APPROVED → SENT 전이, transfer_tx_id 영속화 - 실패: APPROVED 유지 + fail_reason 기록 (재시도 배치는 추후) - ApprovalService.sendStepNotification — DB 알림 외 SMS 어댑터 호출 (non-critical) - WithdrawRequestMapper.updateTransferResult 추가
16 lines
813 B
SQL
16 lines
813 B
SQL
-- V82: withdraw_request 에 펌뱅킹 외부연동 결과 추적 컬럼 추가.
|
|
-- 어댑터(BankTransferAdapter) 호출 결과(거래ID/상태/처리시각)를 저장하기 위함.
|
|
|
|
ALTER TABLE withdraw_request
|
|
ADD COLUMN IF NOT EXISTS transfer_tx_id VARCHAR(64),
|
|
ADD COLUMN IF NOT EXISTS transfer_status VARCHAR(20),
|
|
ADD COLUMN IF NOT EXISTS transfer_at TIMESTAMP;
|
|
|
|
COMMENT ON COLUMN withdraw_request.transfer_tx_id IS '펌뱅킹 외부 거래 ID (멱등키)';
|
|
COMMENT ON COLUMN withdraw_request.transfer_status IS 'ACCEPTED/SETTLED/FAILED — BankTransferStatus';
|
|
COMMENT ON COLUMN withdraw_request.transfer_at IS '펌뱅킹 호출/응답 시각';
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_wr_transfer_status
|
|
ON withdraw_request(transfer_status)
|
|
WHERE transfer_status IS NOT NULL;
|