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