140 lines
6.3 KiB
TypeScript
140 lines
6.3 KiB
TypeScript
/** توضیح و فرمول فارسی — برای tooltip آیکون راهنما */
|
|||
|
|
|
||
|
|
export type DashboardHelp = {
|
||
|
|
description: string
|
||
|
|
formula: string
|
||
|
|
}
|
||
|
|
|
||
|
|
export const MESGHAL_FACTOR = '۴.۳۳۱۸۰۲'
|
||
|
|
|
||
|
|
export const dashboardHero: DashboardHelp = {
|
||
|
|
description: 'آخرین قیمت پایه هر گرم طلا در سیستم.',
|
||
|
|
formula: `قیمت هر مثقال = قیمت هر گرم × ${MESGHAL_FACTOR}`,
|
||
|
|
}
|
||
|
|
|
||
|
|
export const dashboardGateway: DashboardHelp = {
|
||
|
|
description: 'وقتی فعال باشد مشتری میتواند از درگاه بانکی واریز کند؛ در حالت غیرفعال فقط واریز دستی ممکن است.',
|
||
|
|
formula: 'وضعیت: فعال یا غیرفعال',
|
||
|
|
}
|
||
|
|
|
||
|
|
export const dashboardKpi = {
|
||
|
|
profit: {
|
||
|
|
description: 'مجموع سود اسپرد (تفاوت قیمت خرید/فروش با مشتری) روی همه سفارشهای ثبتشده در بازه.',
|
||
|
|
formula: 'سود کل = جمع «سود هر سفارش»',
|
||
|
|
},
|
||
|
|
commission: {
|
||
|
|
description: 'مجموع کارمزد طلایی محصول که روی همان سفارشها محاسبه شده.',
|
||
|
|
formula: 'کارمزد کل = جمع «کارمزد هر سفارش»',
|
||
|
|
},
|
||
|
|
orderCount: {
|
||
|
|
description: 'تعداد همه سفارشهایی که در بازه انتخابی ثبت شدهاند (هر وضعیتی).',
|
||
|
|
formula: 'تعداد = شمارش سفارشها بین دو تاریخ',
|
||
|
|
},
|
||
|
|
goldBalance: {
|
||
|
|
description: 'تراز وزنی طلا از سفارشات موفق؛ مثبت یعنی به مشتری بیشتر فروختهاید.',
|
||
|
|
formula: 'تراز طلا = گرم فروش − گرم خرید (سفارش موفق)',
|
||
|
|
},
|
||
|
|
cashBalance: {
|
||
|
|
description: 'تراز ریالی همان سفارشات موفق؛ ورود و خروج نقد از معاملات.',
|
||
|
|
formula: 'تراز ریال = مبلغ فروش − مبلغ خرید',
|
||
|
|
},
|
||
|
|
mazanehBalance: {
|
||
|
|
description: 'میانگین موزون قیمت معاملات، تبدیلشده به مثقال.',
|
||
|
|
formula: `(جمع مبلغ معاملات ÷ جمع گرم) × ${MESGHAL_FACTOR}`,
|
||
|
|
},
|
||
|
|
} as const satisfies Record<string, DashboardHelp>
|
||
|
|
|
||
|
|
export const dashboardDateRange: DashboardHelp = {
|
||
|
|
description: 'تاریخ شروع و پایان برای محاسبه کارتها، تراز و نمودارها.',
|
||
|
|
formula: 'گزارش = از تاریخ … تا تاریخ …',
|
||
|
|
}
|
||
|
|
|
||
|
|
export const dashboardDateMetrics = {
|
||
|
|
bankDeposit: {
|
||
|
|
description: 'کل واریزهای موفق مشتریان از درگاه آنلاین در این بازه.',
|
||
|
|
formula: 'جمع مبلغ واریزهای تأییدشده از درگاه',
|
||
|
|
},
|
||
|
|
netIncome: {
|
||
|
|
description: 'درآمد پس از کسر ارزش طلای هدیهدادهشده.',
|
||
|
|
formula: 'درآمد خالص = (اختلاف قیمت اصلی و پرداختی) − (گرم هدیه × مظنه)',
|
||
|
|
},
|
||
|
|
gifts: {
|
||
|
|
description: 'طلایی که ادمین به مشتریان هدیه داده در همین بازه.',
|
||
|
|
formula: 'گرم هدیه = جمع طلای ثبتشده در تراکنشهای ادمین',
|
||
|
|
},
|
||
|
|
} as const satisfies Record<string, DashboardHelp>
|
||
|
|
|
||
|
|
export const dashboardCharts = {
|
||
|
|
incomeMix: {
|
||
|
|
description: 'نشان میدهد سود معامله، کارمزد و هدایا چقدر از درآمد کل را تشکیل میدهند.',
|
||
|
|
formula: 'درآمد = سود معامله + کارمزد + (گرم هدیه × مظنه)',
|
||
|
|
},
|
||
|
|
buySellVolume: {
|
||
|
|
description: 'مقدار طلای خرید و فروش مشتری در هر روز (فقط سفارش موفق).',
|
||
|
|
formula: 'هر روز: گرم خرید مشتری و گرم فروش به مشتری',
|
||
|
|
},
|
||
|
|
priceChart: {
|
||
|
|
description: 'روند تغییر قیمت پایه هر گرم در ۲۴ ساعت، هفته یا ماه.',
|
||
|
|
formula: 'نمودار = قیمت پایه در هر لحظه',
|
||
|
|
},
|
||
|
|
productActivity: {
|
||
|
|
description: 'مقایسه حجم خرید و فروش هر محصول.',
|
||
|
|
formula: 'خرید = جمع گرم مثبت | فروش = جمع گرم منفی',
|
||
|
|
},
|
||
|
|
} as const satisfies Record<string, DashboardHelp>
|
||
|
|
|
||
|
|
export const dashboardOrders = {
|
||
|
|
pending: {
|
||
|
|
description: 'سفارشهایی که هنوز تأیید نشدهاند.',
|
||
|
|
formula: 'سود هر گرم × مقدار = سود کل سفارش',
|
||
|
|
},
|
||
|
|
recent: {
|
||
|
|
description: '۱۲ سفارش آخر با جزئیات مظنه و سود.',
|
||
|
|
formula: 'مظنه = قیمت پایه | قیمت مشتری = مظنه ± اسپرد | سود/گرم = تفاوت اسپرد',
|
||
|
|
},
|
||
|
|
} as const satisfies Record<string, DashboardHelp>
|
||
|
|
|
||
|
|
export const dashboardCustomers: DashboardHelp = {
|
||
|
|
description: 'آمار مشتریان خانگی ثبتشده در سیستم.',
|
||
|
|
formula: 'فعال = دارای کیف پول | بدون احراز = هویت تأیید نشده',
|
||
|
|
}
|
||
|
|
|
||
|
|
export const dashboardCustomerMetrics = {
|
||
|
|
total: {
|
||
|
|
description: 'همه مشتریان خانگی ثبتشده.',
|
||
|
|
formula: 'شمارش کل مشتریان',
|
||
|
|
},
|
||
|
|
new: {
|
||
|
|
description: 'مشتریانی که در ۳ ماه اخیر ثبتنام کردهاند.',
|
||
|
|
formula: 'ثبتنام در ۹۰ روز گذشته',
|
||
|
|
},
|
||
|
|
active: {
|
||
|
|
description: 'مشتریانی که حداقل یک کیف پول دارند.',
|
||
|
|
formula: 'دارای موجودی در کیف',
|
||
|
|
},
|
||
|
|
notVerified: {
|
||
|
|
description: 'مشتریانی که احراز هویت را تکمیل نکردهاند.',
|
||
|
|
formula: 'وضعیت احراز: ناقص',
|
||
|
|
},
|
||
|
|
} as const satisfies Record<string, DashboardHelp>
|
||
|
|
|
||
|
|
export const dashboardWallet: DashboardHelp = {
|
||
|
|
description: 'مجموع موجودی طلا و ریال همه مشتریان.',
|
||
|
|
formula: 'ارزش طلا به ریال = جمع گرم × مظنه لحظهای',
|
||
|
|
}
|
||
|
|
|
||
|
|
export const dashboardWalletMetrics = {
|
||
|
|
gold: {
|
||
|
|
description: 'مجموع طلای موجود در کیف همه مشتریان.',
|
||
|
|
formula: 'جمع گرم طلا در کیفها',
|
||
|
|
},
|
||
|
|
cash: {
|
||
|
|
description: 'مجموع ریال موجود در کیف همه مشتریان.',
|
||
|
|
formula: 'جمع ریال در کیفها',
|
||
|
|
},
|
||
|
|
goldToCash: {
|
||
|
|
description: 'ارزش ریالی کل طلای مشتریان با مظنه فعلی.',
|
||
|
|
formula: 'جمع گرم × قیمت هر گرم',
|
||
|
|
},
|
||
|
|
} as const satisfies Record<string, DashboardHelp>
|