Files
boursecu_admin/src/pages/dashboard/dashboardSectionCopy.ts
T
2026-07-25 16:47:12 +03:30

141 lines
7.4 KiB
TypeScript

/** توضیح و فرمول فارسی — برای tooltip آیکون راهنما */
import { m } from '@/utils/metalLabels'
export type DashboardHelp = {
description: string
formula: string
}
export const MESGHAL_FACTOR = '۴.۳۳۱۸۰۲'
function help(description: string, formula: string): DashboardHelp {
return {
description: m(description),
formula: m(formula),
}
}
export const dashboardHero = help(
'آخرین قیمت پایه هر گرم طلا در سیستم.',
`قیمت هر مثقال = قیمت هر گرم × ${MESGHAL_FACTOR}`
)
export const dashboardGateway = help(
'وقتی فعال باشد مشتری می‌تواند از درگاه بانکی واریز کند؛ در حالت غیرفعال فقط واریز دستی ممکن است.',
'وضعیت: فعال یا غیرفعال'
)
export const dashboardKpi = {
priceDiffProfit: help(
'مجموع سود اختلاف قیمت (فاصله بین قیمت پایه و قیمت مشتری) — فقط از تفاوت buy/sell price. کارمزد جداگانه در کارت «کارمزد معامله» است.',
'سود اختلاف قیمت = جمع «سود کل» (total_fee) هر سفارش در بازه'
),
commission: help(
'مجموع کارمزد ریالی معاملات (درصد/وزن کارمزد) — جدا از سود اختلاف قیمت.',
'کارمزد = جمع service_charge_price هر سفارش در بازه'
),
totalTradingProfit: help(
'مجموع سود اختلاف قیمت و کارمزد — همان ردیف «جمع» در خلاصه درآمد.',
'جمع = سود اختلاف قیمت + کارمزد معاملات'
),
orderCount: help(
'تعداد همه سفارش‌هایی که در بازه انتخابی ثبت شده‌اند (هر وضعیتی).',
'تعداد = شمارش سفارش‌ها بین دو تاریخ'
),
goldBalance: help(
'تراز وزنی طلا از سفارشات موفق؛ مثبت یعنی به مشتری بیشتر فروخته‌اید.',
'تراز طلا = گرم فروش − گرم خرید (سفارش موفق)'
),
cashBalance: help(
'تراز ریالی همان سفارشات موفق؛ ورود و خروج نقد از معاملات.',
'تراز ریال = مبلغ فروش − مبلغ خرید'
),
mazanehBalance: help(
'میانگین موزون قیمت معاملات، تبدیل‌شده به مثقال.',
`(جمع مبلغ معاملات ÷ جمع گرم) × ${MESGHAL_FACTOR}`
),
} as const satisfies Record<string, DashboardHelp>
export const dashboardTradingIncomeSummary = help(
'در بازهٔ انتخابی، درآمد معاملات به سه بخش دیده می‌شود: سود اختلاف قیمت، کارمزد (ترکیبی از کارمزد ریالی و معادل ریالی کارمزد طلایی)، و جمع این دو. همهٔ مبالغ به ریال هستند (نه تومان).',
'جمع سود = سود اختلاف قیمت + [کارمزد ریالی + (گرم کارمزد طلایی × قیمت روز)]'
)
export const dashboardDateRange = help(
'تاریخ شروع و پایان برای محاسبه کارت‌ها، تراز و نمودارها.',
'گزارش = از تاریخ … تا تاریخ …'
)
export const dashboardDateMetrics = {
bankDeposit: help(
'کل واریزهای موفق مشتریان از درگاه آنلاین در این بازه.',
'جمع مبلغ واریزهای تأییدشده از درگاه'
),
netIncome: help(
'شاخص قدیمی: اختلاف قیمت اصلی و پرداختی منهای ارزش هدایا — با «جمع سود معاملات» یکی نیست.',
'تراز قیمت−پرداخت = جمع |قیمت اصلی − پرداختی| − (گرم هدیه × مظنه)'
),
totalTradingProfit: help(
'همان «جمع سود معاملات» در خلاصه بالا — اختلاف قیمت + کارمزد.',
'جمع = fullPriceSood + fullPriceKarmozd'
),
gifts: help(
'طلای پاداشی که در این بازه به مشتریان داده شده: پاداش معرفی، پاداش ثبت‌نام و سود زیرمجموعه. شارژ دستی طلا و معاملات اینجا شمرده نمی‌شوند.',
'گرم هدیه = جمع طلای تراکنش‌های پاداش معرفی/ثبت‌نام و سود زیرمجموعه'
),
} as const satisfies Record<string, DashboardHelp>
export const dashboardCharts = {
incomeMix: help(
'تفکیک درآمد: سود اختلاف قیمت، کارمزد ریالی، و ارزش هدایا.',
'درآمد = سود اختلاف قیمت + کارمزد + (گرم هدیه × مظنه)'
),
buySellVolume: help(
'مقدار طلای خرید و فروش مشتری در هر روز (فقط سفارش موفق).',
'هر روز: گرم خرید مشتری و گرم فروش به مشتری'
),
priceChart: help(
'روند تغییر قیمت پایه هر گرم در ۲۴ ساعت، هفته یا ماه.',
'نمودار = قیمت پایه در هر لحظه'
),
productActivity: help(
'مقایسه حجم خرید و فروش هر محصول در بازه انتخابی.',
'خرید = جمع گرم مثبت | فروش = جمع گرم منفی (معاملات همان بازه)'
),
} as const satisfies Record<string, DashboardHelp>
export const dashboardOrders = {
peakHours: help(
'توزیع سفارش‌های موفق مشتریان خانگی در ۲۴ ساعت شبانه‌روز؛ برای شناخت ساعات شلوغ.',
'هر ستون = تعداد سفارش در آن ساعت (جمع چند روز اخیر)'
),
recent: help(
'۱۴ سفارش آخر با جزئیات مظنه و سود.',
'مظنه = قیمت پایه | قیمت مشتری = مظنه ± اختلاف قیمت | سود/گرم = همان اختلاف قیمت'
),
} as const satisfies Record<string, DashboardHelp>
export const dashboardCustomers = help(
'آمار مشتریان خانگی ثبت‌شده در سیستم.',
'فعال = دارای کیف پول | بدون احراز = هویت تأیید نشده'
)
export const dashboardCustomerMetrics = {
total: help('همه مشتریان خانگی ثبت‌شده.', 'شمارش کل مشتریان'),
new: help('مشتریانی که در ۳ ماه اخیر ثبت‌نام کرده‌اند.', 'ثبت‌نام در ۹۰ روز گذشته'),
active: help('مشتریانی که حداقل یک کیف پول دارند.', 'دارای موجودی در کیف'),
notVerified: help('مشتریانی که احراز هویت را تکمیل نکرده‌اند.', 'وضعیت احراز: ناقص'),
} as const satisfies Record<string, DashboardHelp>
export const dashboardWallet = help(
'مجموع موجودی طلا و ریال همه مشتریان.',
'ارزش طلا به ریال = جمع گرم × مظنه لحظه‌ای'
)
export const dashboardWalletMetrics = {
gold: help('مجموع طلای موجود در کیف همه مشتریان.', 'جمع گرم طلا در کیف‌ها'),
cash: help('مجموع ریال موجود در کیف همه مشتریان.', 'جمع ریال در کیف‌ها'),
goldToCash: help('ارزش ریالی کل طلای مشتریان با مظنه فعلی.', 'جمع گرم × قیمت هر گرم'),
} as const satisfies Record<string, DashboardHelp>