diff --git a/src/components/settings/credits/credit-transactions-table.tsx b/src/components/settings/credits/credit-transactions-table.tsx index 64e0b31..022a475 100644 --- a/src/components/settings/credits/credit-transactions-table.tsx +++ b/src/components/settings/credits/credit-transactions-table.tsx @@ -46,15 +46,17 @@ import { } from '@tanstack/react-table'; import { ArrowUpDownIcon, + BanknoteIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsLeftIcon, ChevronsRightIcon, ClockIcon, + CoinsIcon, + GemIcon, GiftIcon, - MinusCircleIcon, - RefreshCwIcon, + HandCoinsIcon, ShoppingCartIcon, } from 'lucide-react'; import { useTranslations } from 'next-intl'; @@ -156,19 +158,19 @@ export function CreditTransactionsTable({ const getTransactionTypeIcon = (type: string) => { switch (type) { case CREDIT_TRANSACTION_TYPE.MONTHLY_REFRESH: - return ; + return ; case CREDIT_TRANSACTION_TYPE.REGISTER_GIFT: - return ; - case CREDIT_TRANSACTION_TYPE.PURCHASE: - return ; + return ; + case CREDIT_TRANSACTION_TYPE.PURCHASE_PACKAGE: + return ; case CREDIT_TRANSACTION_TYPE.USAGE: - return ; + return ; case CREDIT_TRANSACTION_TYPE.EXPIRE: - return ; + return ; case CREDIT_TRANSACTION_TYPE.SUBSCRIPTION_RENEWAL: - return ; + return ; case CREDIT_TRANSACTION_TYPE.LIFETIME_MONTHLY: - return ; + return ; default: return null; } @@ -177,12 +179,6 @@ export function CreditTransactionsTable({ // Get transaction type badge variant const getTransactionTypeBadgeVariant = (type: string) => { switch (type) { - case CREDIT_TRANSACTION_TYPE.REGISTER_GIFT: - case CREDIT_TRANSACTION_TYPE.PURCHASE: - case CREDIT_TRANSACTION_TYPE.MONTHLY_REFRESH: - case CREDIT_TRANSACTION_TYPE.SUBSCRIPTION_RENEWAL: - case CREDIT_TRANSACTION_TYPE.LIFETIME_MONTHLY: - return 'outline' as const; case CREDIT_TRANSACTION_TYPE.USAGE: case CREDIT_TRANSACTION_TYPE.EXPIRE: return 'destructive' as const; @@ -198,7 +194,7 @@ export function CreditTransactionsTable({ return t('types.MONTHLY_REFRESH'); case CREDIT_TRANSACTION_TYPE.REGISTER_GIFT: return t('types.REGISTER_GIFT'); - case CREDIT_TRANSACTION_TYPE.PURCHASE: + case CREDIT_TRANSACTION_TYPE.PURCHASE_PACKAGE: return t('types.PURCHASE'); case CREDIT_TRANSACTION_TYPE.USAGE: return t('types.USAGE'); diff --git a/src/credits/credit-detail-viewer.tsx b/src/credits/credit-detail-viewer.tsx index 4105f9d..7fd36ba 100644 --- a/src/credits/credit-detail-viewer.tsx +++ b/src/credits/credit-detail-viewer.tsx @@ -4,7 +4,6 @@ import { Drawer, DrawerClose, DrawerContent, - DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, @@ -14,10 +13,12 @@ import { Separator } from '@/components/ui/separator'; import { useIsMobile } from '@/hooks/use-mobile'; import { formatDate } from '@/lib/formatter'; import { + BanknoteIcon, ClockIcon, + CoinsIcon, + GemIcon, GiftIcon, - MinusCircleIcon, - RefreshCwIcon, + HandCoinsIcon, ShoppingCartIcon, } from 'lucide-react'; import { useTranslations } from 'next-intl'; @@ -51,19 +52,19 @@ export function CreditDetailViewer({ transaction }: CreditDetailViewerProps) { const getTransactionTypeIcon = (type: string) => { switch (type) { case CREDIT_TRANSACTION_TYPE.MONTHLY_REFRESH: - return ; + return ; case CREDIT_TRANSACTION_TYPE.REGISTER_GIFT: return ; - case CREDIT_TRANSACTION_TYPE.PURCHASE: + case CREDIT_TRANSACTION_TYPE.PURCHASE_PACKAGE: return ; case CREDIT_TRANSACTION_TYPE.USAGE: - return ; + return ; case CREDIT_TRANSACTION_TYPE.EXPIRE: return ; case CREDIT_TRANSACTION_TYPE.SUBSCRIPTION_RENEWAL: - return ; + return ; case CREDIT_TRANSACTION_TYPE.LIFETIME_MONTHLY: - return ; + return ; default: return null; } @@ -72,12 +73,6 @@ export function CreditDetailViewer({ transaction }: CreditDetailViewerProps) { // Get transaction type badge variant const getTransactionTypeBadgeVariant = (type: string) => { switch (type) { - case CREDIT_TRANSACTION_TYPE.REGISTER_GIFT: - case CREDIT_TRANSACTION_TYPE.PURCHASE: - case CREDIT_TRANSACTION_TYPE.MONTHLY_REFRESH: - case CREDIT_TRANSACTION_TYPE.SUBSCRIPTION_RENEWAL: - case CREDIT_TRANSACTION_TYPE.LIFETIME_MONTHLY: - return 'outline' as const; case CREDIT_TRANSACTION_TYPE.USAGE: case CREDIT_TRANSACTION_TYPE.EXPIRE: return 'destructive' as const; @@ -93,7 +88,7 @@ export function CreditDetailViewer({ transaction }: CreditDetailViewerProps) { return t('types.MONTHLY_REFRESH'); case CREDIT_TRANSACTION_TYPE.REGISTER_GIFT: return t('types.REGISTER_GIFT'); - case CREDIT_TRANSACTION_TYPE.PURCHASE: + case CREDIT_TRANSACTION_TYPE.PURCHASE_PACKAGE: return t('types.PURCHASE'); case CREDIT_TRANSACTION_TYPE.USAGE: return t('types.USAGE'); diff --git a/src/credits/types.ts b/src/credits/types.ts index 59c3f6a..c79a1ba 100644 --- a/src/credits/types.ts +++ b/src/credits/types.ts @@ -4,7 +4,7 @@ export enum CREDIT_TRANSACTION_TYPE { MONTHLY_REFRESH = 'MONTHLY_REFRESH', // Credits earned by monthly refresh (free users) REGISTER_GIFT = 'REGISTER_GIFT', // Credits earned by register gift - PURCHASE = 'PURCHASE', // Credits earned by purchase + PURCHASE_PACKAGE = 'PURCHASE_PACKAGE', // Credits earned by purchase package SUBSCRIPTION_RENEWAL = 'SUBSCRIPTION_RENEWAL', // Credits earned by subscription renewal LIFETIME_MONTHLY = 'LIFETIME_MONTHLY', // Credits earned by lifetime plan monthly distribution USAGE = 'USAGE', // Credits spent by usage diff --git a/src/payment/provider/stripe.ts b/src/payment/provider/stripe.ts index fb4f490..cd39852 100644 --- a/src/payment/provider/stripe.ts +++ b/src/payment/provider/stripe.ts @@ -827,7 +827,7 @@ export class StripeProvider implements PaymentProvider { await addCredits({ userId, amount: Number.parseInt(credits), - type: CREDIT_TRANSACTION_TYPE.PURCHASE, + type: CREDIT_TRANSACTION_TYPE.PURCHASE_PACKAGE, description: `+${credits} credits for package ${packageId} ($${amount.toLocaleString()})`, paymentId: session.id, expireDays: creditPackage.expireDays,