feat: 도메인 인라인 버튼 등록 + cheapest TLD + Cron 자동취소

- 도메인 등록 인라인 버튼 확인 플로우 (domain-register.ts)
- manage_domain에 cheapest action 추가 (가장 저렴한 TLD TOP 15)
- 24시간 경과 입금 대기 자동 취소 Cron (UTC 15:00)
- 거래 내역 한글 라벨 + description 표시
- CLAUDE.md 문서 업데이트

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
kappa
2026-01-18 15:24:03 +09:00
parent 89f8ea19f1
commit db859efc56
8 changed files with 567 additions and 23 deletions

View File

@@ -77,7 +77,7 @@ export async function executeDepositFunction(
// 은행 알림이 이미 있으면 바로 확정 처리
const result = await db.prepare(
`INSERT INTO deposit_transactions (user_id, type, amount, status, depositor_name, description, confirmed_at)
VALUES (?, 'deposit', ?, 'confirmed', ?, '자동 매칭', CURRENT_TIMESTAMP)`
VALUES (?, 'deposit', ?, 'confirmed', ?, '입금', CURRENT_TIMESTAMP)`
).bind(userId, amount, depositor_name).run();
const txId = result.meta.last_row_id;
@@ -111,7 +111,7 @@ export async function executeDepositFunction(
// 은행 알림이 없으면 pending 거래 생성
const result = await db.prepare(
`INSERT INTO deposit_transactions (user_id, type, amount, status, depositor_name, description)
VALUES (?, 'deposit', ?, 'pending', ?, '사용자 입금 요청')`
VALUES (?, 'deposit', ?, 'pending', ?, '입금 대기')`
).bind(userId, amount, depositor_name).run();
return {
@@ -134,7 +134,7 @@ export async function executeDepositFunction(
const limit = funcArgs.limit || 10;
const transactions = await db.prepare(
`SELECT id, type, amount, status, depositor_name, created_at, confirmed_at
`SELECT id, type, amount, status, depositor_name, description, created_at, confirmed_at
FROM deposit_transactions
WHERE user_id = ?
ORDER BY created_at DESC
@@ -145,6 +145,7 @@ export async function executeDepositFunction(
amount: number;
status: string;
depositor_name: string;
description: string | null;
created_at: string;
confirmed_at: string | null;
}>();
@@ -160,6 +161,7 @@ export async function executeDepositFunction(
amount: tx.amount,
status: tx.status,
depositor_name: tx.depositor_name,
description: tx.description,
created_at: tx.created_at,
confirmed_at: tx.confirmed_at,
})),