166 lines
8.4 KiB
TypeScript
166 lines
8.4 KiB
TypeScript
export const PLUGIN_STORE_DURATIONS = [30, 90, 180, 360, 0] as const;
|
|
|
|
export type PluginStoreDuration = (typeof PLUGIN_STORE_DURATIONS)[number];
|
|
|
|
export const PLUGIN_CATALOG_SEED: Array<{
|
|
settingKey: string;
|
|
titleFa: string;
|
|
description: string;
|
|
}> = [
|
|
{
|
|
settingKey: 'customer_special_pricing',
|
|
titleFa: 'قیمت ویژه مشتری',
|
|
description:
|
|
'تعیین مظنه و سود/زیان اختصاصی برای مشتریان خاص و VIP. با این افزونه میتوانید قیمتهای خرید و فروش طلا را برای مشتریان منتخب یا بنکداران با تخفیف روی مظنه یا کارمزد سفارشی تنظیم نمایید.',
|
|
},
|
|
{
|
|
settingKey: 'enable_customer_level_profit',
|
|
titleFa: 'سود چندسطحی معرف',
|
|
description:
|
|
'سیستم پیشرفته بازاریابی معرف چند سطحی (ریفرال شبکهای). با هر معامله کاربران زیرمجموعه، درصدی از کارمزد بهصورت کاملاً خودکار و آنی به کیف طلای معرفها در سطوح مختلف واریز میگردد.',
|
|
},
|
|
{
|
|
settingKey: 'group_sms',
|
|
titleFa: 'پیامک گروهی',
|
|
description:
|
|
'امکان ارسال پیامک همگانی یا بخشبندیشده به گروههای مختلف مشتریان مستقیم از داخل پنل مدیریت جهت اطلاعرسانی کمپینها، تخفیفها و نوسانات بازار.',
|
|
},
|
|
{
|
|
settingKey: 'customer_direct_sms',
|
|
titleFa: 'پیامک تکی به مشتری از لیست',
|
|
description:
|
|
'ارسال سریع، شخصیسازیشده و مستقیم پیامک با متن دلخواه به یک مشتری خاص از داخل جدول کاربران پنل ادمین بدون نیاز به پنل پیامک مجزا.',
|
|
},
|
|
{
|
|
settingKey: 'has_page_gift_card',
|
|
titleFa: 'کارت هدیه',
|
|
description:
|
|
'ماژول پیشرفته صدور و فعالسازی کدهای کارت هدیه طلا (وزنی) یا ریالی در اپلیکیشن. مناسب کمپینهای تبلیغاتی، مناسبتها و هدایای ارزشمند سازمانی.',
|
|
},
|
|
{
|
|
settingKey: 'permision__enabled',
|
|
titleFa: 'نمایش منوی مجوزها',
|
|
description:
|
|
'صفحه رسمی و معتبر برای نمایش پروانههای کسب اتحادیه طلا و جواهر، نماد اعتماد الکترونیکی (اینماد) و مدارک قانونی در اپلیکیشن جهت جلب اعتماد حداکثری خریداران.',
|
|
},
|
|
{
|
|
settingKey: 'show_to_users_chat',
|
|
titleFa: 'نمایش چت به کاربران',
|
|
description:
|
|
'سیستم گفتگوی زنده و پشتیبانی آنلاین بلادرنگ درون اپلیکیشن با امکان ارسال تصویر و فیش واریز بدون نیاز به پیامرسانهای خارجی.',
|
|
},
|
|
{
|
|
settingKey: 'has_page_notification',
|
|
titleFa: 'اعلان داخل اپ',
|
|
description:
|
|
'سیستم نوتیفیکیشن درونبرنامهای برای ارسال پیامهای سیستمی، وضعیت سفارشات و اخبار صرافی بدون هزینه پیامک و با زنگوله اعلان اختصاصی.',
|
|
},
|
|
{
|
|
settingKey: 'has_page_price_trigger',
|
|
titleFa: 'هشدار قیمت',
|
|
description:
|
|
'ابزار هوشمند تنظیم آلارم قیمت طلا توسط کاربران؛ اطلاعرسانی آنی پیامکی و درونبرنامهای در لحظه رسیدن بازار به مظنه هدف کاربر.',
|
|
},
|
|
{
|
|
settingKey: 'jibit_enabled',
|
|
titleFa: 'احراز هویت جیبیت',
|
|
description:
|
|
'سرویس یکپارچه جیبیت جهت انطباق خودکار کدملی با شماره موبایل (سامانه شاهکار) و استعلام آنی شماره شبا و نام دارنده کارت بانکی بدون دخالت دست.',
|
|
},
|
|
{
|
|
settingKey: 'has_page_earn_money',
|
|
titleFa: 'صفحه کسب درآمد',
|
|
description:
|
|
'باشگاه دعوت از دوستان با لینک و کد معرف اختصاصی، گزارش تعداد زیرمجموعهها و پاداشهای واریز شده جهت رشد ویروسی کاربران.',
|
|
},
|
|
{
|
|
settingKey: 'has_landing',
|
|
titleFa: 'لندینگ وبسایت',
|
|
description:
|
|
'وبسایت مدرن و سئو شده برای معرفی برند، نمایش مظنه زنده طلا، ماشین حساب محاسبه کارمزد و جذب مستقیم مشتریان از موتورهای جستجو.',
|
|
},
|
|
{
|
|
settingKey: 'has_charts',
|
|
titleFa: 'نمودارها',
|
|
description:
|
|
'چارت تعاملی و پیشرفته تحلیل تکنیکال روند قیمت طلا و مظنه در تایمفریمهای متنوع به همراه دکمههای سریع خرید و فروش همزمان.',
|
|
},
|
|
{
|
|
settingKey: 'enable_conditional_order',
|
|
titleFa: 'سفارش شرطی',
|
|
description:
|
|
'ثبت سفارشات خودکار خرید و فروش طلا در قیمت هدف (Limit Order)؛ انجام قطعی معامله در هر ساعت از شبانهروز بلافاصله پس از لمس قیمت بازار.',
|
|
},
|
|
{
|
|
settingKey: 'enable_remittance',
|
|
titleFa: 'حواله',
|
|
description:
|
|
'انتقال آنی وزن طلا یا موجودی ریالی بین کاربران سامانه با شماره موبایل یا کارت مجازی ۱۶ رقمی داخلی (پیشوند ۷۷۷) بدون کارمزد و محدودیت بانکی.',
|
|
},
|
|
{
|
|
settingKey: 'enable_gold_credit',
|
|
titleFa: 'اعتبار طلایی',
|
|
description:
|
|
'اعطای خط اعتباری و تسهیلات معامله طلا به مشتریان معتمد و بنکداران جهت انجام معاملات مدتدار و اقساطی با محاسبه خودکار ریسک و تضمین.',
|
|
},
|
|
{
|
|
settingKey: 'enable_automation',
|
|
titleFa: 'اتوماسیون',
|
|
description:
|
|
'موتور هوشمند هجینگ و اتصال خودکار به بازار همکار جهت پوشش بلادرنگ معاملات سنگین و صفر کردن ریسک نوسانات بازار برای صرافی.',
|
|
},
|
|
{
|
|
settingKey: 'enable_product_funds',
|
|
titleFa: 'قلک محصول',
|
|
description:
|
|
'صندوق پسانداز خرد طلایی برای کاربران جهت تبدیل مداوم مبالغ اندک روزانه به طلا با تعیین هدف، نامگذاری و نوار پیشرفت بصری.',
|
|
},
|
|
];
|
|
|
|
export function daysToPlanMonths(days: number): 0 | 1 | 3 | 6 | 12 {
|
|
if (days === 0) return 0;
|
|
if (days === 90) return 3;
|
|
if (days === 180) return 6;
|
|
if (days === 360) return 12;
|
|
return 1;
|
|
}
|
|
|
|
export function pluginStoreDurationLabel(days: number): string {
|
|
if (Number(days) === 0) return 'یکبار پرداخت';
|
|
if (days === 30) return '۳۰ روزه';
|
|
if (days === 90) return '۹۰ روزه';
|
|
if (days === 180) return '۱۸۰ روزه';
|
|
if (days === 360) return '۳۶۰ روزه';
|
|
return `${days} روزه`;
|
|
}
|
|
|
|
export function inferSettingKeyFromName(name: string): string | null {
|
|
const n = String(name || '').trim();
|
|
if (!n) return null;
|
|
const rules: Array<[RegExp, string]> = [
|
|
[/جیبیت/, 'jibit_enabled'],
|
|
[/اعتبار طلایی/, 'enable_gold_credit'],
|
|
[/اتوماسیون/, 'enable_automation'],
|
|
[/پیامک گروهی/, 'group_sms'],
|
|
[/پیامک تکی/, 'customer_direct_sms'],
|
|
[/اعلان/, 'has_page_notification'],
|
|
[/کسب درآمد/, 'has_page_earn_money'],
|
|
[/سود.*معرف|معرف/, 'enable_customer_level_profit'],
|
|
[/سفارش شرطی/, 'enable_conditional_order'],
|
|
[/کارت هدیه/, 'has_page_gift_card'],
|
|
[/قیمت ویژه/, 'customer_special_pricing'],
|
|
[/قلک/, 'enable_product_funds'],
|
|
[/هشدار قیمت/, 'has_page_price_trigger'],
|
|
[/نمایش چت|چت به کاربر/, 'show_to_users_chat'],
|
|
[/لندینگ/, 'has_landing'],
|
|
[/مجوز/, 'permision__enabled'],
|
|
[/نمودار/, 'has_charts'],
|
|
[/حواله/, 'enable_remittance'],
|
|
];
|
|
for (const [re, key] of rules) {
|
|
if (re.test(n)) return key;
|
|
}
|
|
const seed = PLUGIN_CATALOG_SEED.find((row) => row.titleFa === n);
|
|
return seed?.settingKey ?? null;
|
|
}
|