Skip to content

Commit 5ebb801

Browse files
committed
feat: 백오피스 사용량 표에 비용(USD) 컬럼 추가
대화방별 예상 비용을 대시보드 '예상 비용'과 동일한 형식($x.xx~xxxx)으로 표시한다.
1 parent b0ad353 commit 5ebb801

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

admin-web/src/pages/token-usage/usage-table.tsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,16 @@ interface ConversationUsage {
1919
cardCreated: boolean
2020
totalTokens: number
2121
cachedTokens: number
22+
estimatedCostUsd: number
2223
}
2324

2425
const PAGE_SIZE = 20
25-
const COLUMN_COUNT = 10
26+
const COLUMN_COUNT = 11
27+
28+
// 대시보드 '예상 비용'과 동일한 USD 표기($x.xx~xxxx).
29+
function formatUsd(value: number): string {
30+
return `$${value.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 4 })}`
31+
}
2632

2733
const STATUS_META: Record<ConversationUsage['status'], { label: string; variant: 'secondary' | 'success' | 'muted' }> = {
2834
ACTIVE: { label: '진행중', variant: 'secondary' },
@@ -49,7 +55,7 @@ export function UsageTable() {
4955
<div className="border-b px-4 py-3">
5056
<p className="text-sm font-medium">대화방별 사용량</p>
5157
<p className="text-xs text-muted-foreground">
52-
모든 대화방(prod·dev)의 메시지 수·카드 생성 여부·소비 토큰을 최신순으로 봅니다. 대화방 귀속 정보가 없던 이전 기록의 토큰은 집계되지 않습니다.
58+
모든 대화방(prod·dev)의 메시지 수·카드 생성 여부·소비 토큰·예상 비용(USD)을 최신순으로 봅니다. 대화방 귀속 정보가 없던 이전 기록의 토큰은 집계되지 않습니다.
5359
</p>
5460
</div>
5561

@@ -66,6 +72,7 @@ export function UsageTable() {
6672
<TableHead className="w-20 text-center">카드</TableHead>
6773
<TableHead className="w-28 text-right">총 토큰</TableHead>
6874
<TableHead className="w-28 text-right">캐시 토큰</TableHead>
75+
<TableHead className="w-28 text-right">비용(USD)</TableHead>
6976
<TableHead className="w-44">생성일</TableHead>
7077
</TableRow>
7178
</TableHeader>
@@ -118,6 +125,13 @@ export function UsageTable() {
118125
<TableCell className="text-right tabular-nums text-muted-foreground">
119126
{row.cachedTokens.toLocaleString()}
120127
</TableCell>
128+
<TableCell className="text-right font-medium tabular-nums">
129+
{row.estimatedCostUsd > 0 ? (
130+
formatUsd(row.estimatedCostUsd)
131+
) : (
132+
<span className="font-normal text-muted-foreground"></span>
133+
)}
134+
</TableCell>
121135
<TableCell className="text-sm text-muted-foreground">{formatDateTime(row.createdAt)}</TableCell>
122136
</TableRow>
123137
)

0 commit comments

Comments
 (0)