fix(sms): keep charge deposit defaults and unlock referral bonus
Empty SuperAdmin chargeInfo was wiping sms_charge_* on header refresh. Seed those keys only when empty, and move referral_bonus_amount to can_edit=1. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -36,13 +36,49 @@ class SmsPanelController extends Controller
|
||||
private function depositFromChargeInfo(array $chargeInfo): array
|
||||
{
|
||||
return [
|
||||
'card_number' => (string) ($chargeInfo['card'] ?? ''),
|
||||
'sheba' => (string) ($chargeInfo['iban'] ?? ''),
|
||||
'account_holder' => (string) ($chargeInfo['account_holder'] ?? ''),
|
||||
'note' => (string) ($chargeInfo['instruction'] ?? ''),
|
||||
'card_number' => trim((string) ($chargeInfo['card'] ?? $chargeInfo['card_number'] ?? '')),
|
||||
'sheba' => trim((string) ($chargeInfo['iban'] ?? $chargeInfo['sheba'] ?? '')),
|
||||
'account_holder' => trim((string) ($chargeInfo['account_holder'] ?? $chargeInfo['accountHolder'] ?? '')),
|
||||
'note' => trim((string) ($chargeInfo['instruction'] ?? $chargeInfo['note'] ?? '')),
|
||||
];
|
||||
}
|
||||
|
||||
/** @param array<string, string> $deposit */
|
||||
private function depositHasAny(array $deposit): bool
|
||||
{
|
||||
foreach (['card_number', 'sheba', 'account_holder', 'note'] as $field) {
|
||||
if (trim((string) ($deposit[$field] ?? '')) !== '') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* اگر سوپرادمین کارت/شبا خالی بدهد، دیفالت محلی را نگه دار — وگرنه هر رفرش هدر تنظیمات را خالی میکند.
|
||||
*
|
||||
* @param array<string, mixed>|null $chargeInfo
|
||||
* @return array{card_number: string, sheba: string, account_holder: string, note: string}
|
||||
*/
|
||||
private function resolveDeposit(?array $chargeInfo): array
|
||||
{
|
||||
$fromSa = is_array($chargeInfo) ? $this->depositFromChargeInfo($chargeInfo) : [
|
||||
'card_number' => '',
|
||||
'sheba' => '',
|
||||
'account_holder' => '',
|
||||
'note' => '',
|
||||
];
|
||||
$local = SmsWalletService::getDepositInfo();
|
||||
$out = [];
|
||||
foreach (['card_number', 'sheba', 'account_holder', 'note'] as $field) {
|
||||
$saVal = trim((string) ($fromSa[$field] ?? ''));
|
||||
$out[$field] = $saVal !== '' ? $saVal : $local[$field];
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, mixed> $data
|
||||
*/
|
||||
@@ -79,10 +115,15 @@ class SmsPanelController extends Controller
|
||||
app(SmsWalletService::class)->mirrorFromSuperAdmin($balance, $price, $blocked);
|
||||
|
||||
if (isset($data['charge_info']) && is_array($data['charge_info'])) {
|
||||
SmsWalletService::setDepositInfo($this->depositFromChargeInfo($data['charge_info']));
|
||||
$fromCharge = $this->depositFromChargeInfo($data['charge_info']);
|
||||
if ($this->depositHasAny($fromCharge)) {
|
||||
SmsWalletService::setDepositInfo($fromCharge);
|
||||
}
|
||||
}
|
||||
if (isset($data['deposit']) && is_array($data['deposit'])) {
|
||||
SmsWalletService::setDepositInfo($data['deposit']);
|
||||
if ($this->depositHasAny($data['deposit'])) {
|
||||
SmsWalletService::setDepositInfo($data['deposit']);
|
||||
}
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
report($e);
|
||||
@@ -98,7 +139,7 @@ class SmsPanelController extends Controller
|
||||
}
|
||||
|
||||
$charge = is_array($data['charge_info'] ?? null) ? $data['charge_info'] : [];
|
||||
$data['deposit'] = $this->depositFromChargeInfo($charge);
|
||||
$data['deposit'] = $this->resolveDeposit($charge);
|
||||
$this->mirrorLocalFromSa($data);
|
||||
|
||||
return response()->json($data);
|
||||
@@ -162,12 +203,9 @@ class SmsPanelController extends Controller
|
||||
$charge = $this->sa()->chargeInfo();
|
||||
|
||||
if ($balanceData !== null) {
|
||||
$deposit = is_array($charge)
|
||||
? $this->depositFromChargeInfo($charge)
|
||||
: SmsWalletService::getDepositInfo();
|
||||
$deposit = $this->resolveDeposit(is_array($charge) ? $charge : null);
|
||||
|
||||
$this->mirrorLocalFromSa(array_merge($balanceData, [
|
||||
'charge_info' => is_array($charge) ? $charge : [],
|
||||
'deposit' => $deposit,
|
||||
]));
|
||||
|
||||
|
||||
@@ -52,6 +52,10 @@ class SettingsRuntimeCanEditSync
|
||||
'payping_gateway_name',
|
||||
'payping_fin_customer_id',
|
||||
'payping_fin_url',
|
||||
'sms_charge_card_number',
|
||||
'sms_charge_sheba',
|
||||
'sms_charge_account_holder',
|
||||
'sms_charge_note',
|
||||
];
|
||||
|
||||
/** @return list<string> */
|
||||
|
||||
@@ -29,7 +29,7 @@ class SmsWalletService
|
||||
/** مقادیر پیشفرض اطلاعات واریز. */
|
||||
public const DEPOSIT_DEFAULTS = [
|
||||
'card_number' => '6219861961033817',
|
||||
'sheba' => 'IR080560611828005603604401',
|
||||
'sheba' => 'IR080560611828005603604201',
|
||||
'account_holder' => 'حسین منتظر',
|
||||
'note' => 'لطفا مبلغ مورد نظر خود جهت شارژ سامانه پیامکی را به شماره کارت یا حساب زیر واریز نمایید و تصویر فیش پرداختی را برای پشتیبانی بفرستید.',
|
||||
];
|
||||
@@ -331,7 +331,14 @@ class SmsWalletService
|
||||
}
|
||||
|
||||
$setting = Setting::firstOrNew(['key' => $key]);
|
||||
$setting->value = (string) ($data[$field] ?? '');
|
||||
$incoming = trim((string) ($data[$field] ?? ''));
|
||||
if ($incoming === '') {
|
||||
if ($setting->exists && trim((string) $setting->value) !== '') {
|
||||
continue;
|
||||
}
|
||||
$incoming = self::DEPOSIT_DEFAULTS[$field];
|
||||
}
|
||||
$setting->value = $incoming;
|
||||
|
||||
if ($setting->title_fa === null || $setting->title_fa === '') {
|
||||
$setting->title_fa = self::depositFieldTitle($field);
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
/**
|
||||
* مقدار پاداش معرف — can_edit=1 در تنظیمات عادی (معرف و پاداش).
|
||||
* value ردیف موجود را تغییر نمیدهد.
|
||||
*/
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
$key = 'referral_bonus_amount';
|
||||
$meta = [
|
||||
'title_fa' => 'مقدار پاداش معرف',
|
||||
'description' => 'مبلغ یا مقدار پاداش معرف برای نمایش در پیامکها و متنهای دعوت.',
|
||||
'type' => 'text',
|
||||
];
|
||||
|
||||
$exists = DB::table('settings')->where('key', $key)->exists();
|
||||
if (! $exists) {
|
||||
$row = [
|
||||
'key' => $key,
|
||||
'value' => '',
|
||||
'title_fa' => $meta['title_fa'],
|
||||
'can_edit' => 1,
|
||||
'is_active' => 1,
|
||||
'description' => $meta['description'],
|
||||
'type' => $meta['type'],
|
||||
];
|
||||
if (Schema::hasColumn('settings', 'menu')) {
|
||||
$row['menu'] = 'referral';
|
||||
}
|
||||
DB::table('settings')->insert($row);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$update = [
|
||||
'title_fa' => $meta['title_fa'],
|
||||
'description' => $meta['description'],
|
||||
'type' => $meta['type'],
|
||||
'can_edit' => 1,
|
||||
'is_active' => 1,
|
||||
];
|
||||
if (Schema::hasColumn('settings', 'menu')) {
|
||||
$update['menu'] = 'referral';
|
||||
}
|
||||
DB::table('settings')->where('key', $key)->update($update);
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
// کلید را حذف نمیکنیم
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
/**
|
||||
* اطلاعات واریز شارژ سامانه پیامک — INSERT اگر نبود؛ value فقط اگر خالی باشد.
|
||||
*/
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
$rows = [
|
||||
'sms_charge_card_number' => [
|
||||
'value' => '6219861961033817',
|
||||
'title_fa' => 'شماره کارت شارژ پیامک',
|
||||
'description' => 'شماره کارت برای واریز شارژ سامانه پیامکی (مودال اعتبار پیامک).',
|
||||
'type' => 'text',
|
||||
],
|
||||
'sms_charge_sheba' => [
|
||||
'value' => 'IR080560611828005603604201',
|
||||
'title_fa' => 'شماره شبا شارژ پیامک',
|
||||
'description' => 'شماره شبا برای واریز شارژ سامانه پیامکی.',
|
||||
'type' => 'text',
|
||||
],
|
||||
'sms_charge_account_holder' => [
|
||||
'value' => 'حسین منتظر',
|
||||
'title_fa' => 'نام صاحب حساب شارژ پیامک',
|
||||
'description' => 'نام صاحب حساب واریز شارژ سامانه پیامکی.',
|
||||
'type' => 'text',
|
||||
],
|
||||
'sms_charge_note' => [
|
||||
'value' => 'لطفا مبلغ مورد نظر خود جهت شارژ سامانه پیامکی را به شماره کارت یا حساب زیر واریز نمایید و تصویر فیش پرداختی را برای پشتیبانی بفرستید.',
|
||||
'title_fa' => 'متن راهنمای شارژ پیامک',
|
||||
'description' => 'متن راهنمای مودال شارژ اعتبار پیامک در پنل ادمین.',
|
||||
'type' => 'longtext',
|
||||
],
|
||||
];
|
||||
|
||||
$hasMenu = Schema::hasColumn('settings', 'menu');
|
||||
|
||||
foreach ($rows as $key => $meta) {
|
||||
$exists = DB::table('settings')->where('key', $key)->exists();
|
||||
if (! $exists) {
|
||||
$row = [
|
||||
'key' => $key,
|
||||
'value' => $meta['value'],
|
||||
'title_fa' => $meta['title_fa'],
|
||||
'can_edit' => 0,
|
||||
'is_active' => 1,
|
||||
'description' => $meta['description'],
|
||||
'type' => $meta['type'],
|
||||
];
|
||||
if ($hasMenu) {
|
||||
$row['menu'] = 'sms_charge';
|
||||
}
|
||||
DB::table('settings')->insert($row);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$update = [
|
||||
'title_fa' => $meta['title_fa'],
|
||||
'description' => $meta['description'],
|
||||
'type' => $meta['type'],
|
||||
'can_edit' => 0,
|
||||
'is_active' => 1,
|
||||
];
|
||||
if ($hasMenu) {
|
||||
$update['menu'] = 'sms_charge';
|
||||
}
|
||||
DB::table('settings')->where('key', $key)->update($update);
|
||||
|
||||
DB::table('settings')
|
||||
->where('key', $key)
|
||||
->where(function ($q) {
|
||||
$q->whereNull('value')->orWhereRaw("TRIM(`value`) = ''");
|
||||
})
|
||||
->update(['value' => $meta['value']]);
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
// کلید را حذف نمیکنیم
|
||||
}
|
||||
};
|
||||
@@ -64,6 +64,9 @@ SET @deposit_guide_desc = CONCAT(
|
||||
'فاصله بعد از % اختیاری است.', CHAR(10),
|
||||
'خالی = متن پیشفرض اپ.'
|
||||
);
|
||||
SET @sms_charge_note = 'لطفا مبلغ مورد نظر خود جهت شارژ سامانه پیامکی را به شماره کارت یا حساب زیر واریز نمایید و تصویر فیش پرداختی را برای پشتیبانی بفرستید.';
|
||||
SET @sms_charge_note_desc = 'متن راهنمای مودال شارژ اعتبار پیامک در پنل ادمین.';
|
||||
|
||||
SET @deposit_support_msg_desc = CONCAT(
|
||||
'متن پیام هنگام کلیک «پیام به پشتیبانی» در مودال واریز.', CHAR(10),
|
||||
CHAR(10),
|
||||
@@ -915,6 +918,37 @@ SELECT 'deposit_sheba', '', 'شبا واریز', 1, 1,
|
||||
'شماره شبا واریز — در متنها با ٪شبا یا %شبا جایگزین میشود.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'deposit_sheba' LIMIT 1);
|
||||
|
||||
-- شارژ سامانه پیامکی (مودال اعتبار پیامک) — can_edit=0
|
||||
-- value ردیف موجود فقط اگر خالی باشد پر میشود (ویجت هدر نباید مقدار خالی سوپرادمین را نگه دارد)
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_card_number', '6219861961033817', 'شماره کارت شارژ پیامک', 0, 1,
|
||||
'شماره کارت برای واریز شارژ سامانه پیامکی (مودال اعتبار پیامک).', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_card_number' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_sheba', 'IR080560611828005603604201', 'شماره شبا شارژ پیامک', 0, 1,
|
||||
'شماره شبا برای واریز شارژ سامانه پیامکی.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_sheba' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_account_holder', 'حسین منتظر', 'نام صاحب حساب شارژ پیامک', 0, 1,
|
||||
'نام صاحب حساب واریز شارژ سامانه پیامکی.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_account_holder' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_note', @sms_charge_note, 'متن راهنمای شارژ پیامک', 0, 1,
|
||||
@sms_charge_note_desc, 'longtext'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_note' LIMIT 1);
|
||||
|
||||
UPDATE `settings` SET `value` = '6219861961033817'
|
||||
WHERE `key` = 'sms_charge_card_number' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
UPDATE `settings` SET `value` = 'IR080560611828005603604201'
|
||||
WHERE `key` = 'sms_charge_sheba' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
UPDATE `settings` SET `value` = 'حسین منتظر'
|
||||
WHERE `key` = 'sms_charge_account_holder' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
UPDATE `settings` SET `value` = @sms_charge_note
|
||||
WHERE `key` = 'sms_charge_note' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
|
||||
-- روشهای واریز (قابل ویرایش؛ کارت به کارت پیشفرض روشن)
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'deposit_method_card_to_card', 'true', 'فعالسازی کارت به کارت', 1, 1,
|
||||
@@ -1124,7 +1158,7 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'minimum_sell' LIMIT 1)
|
||||
|
||||
-- [super-admin can_edit=0]
|
||||
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
-- SELECT 'referral_bonus_amount', '', 'مقدار پاداش معرف', 0, 1, NULL, 'text'
|
||||
-- SELECT 'referral_bonus_amount', '', 'مقدار پاداش معرف', 1, 1, NULL, 'text'
|
||||
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'referral_bonus_amount' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
@@ -1289,7 +1323,8 @@ WHERE `key` = 'main_product';
|
||||
UPDATE `settings` SET `type` = 'longtext' WHERE `key` IN (
|
||||
'text_rule', 'text_about', 'about_software', 'support_messenger_text', 'invite_link_text',
|
||||
'deposit_support_message_text', 'price_channel_message_text',
|
||||
'montzar_order_response', 'montzar_last_product_log', 'tracking_systems'
|
||||
'montzar_order_response', 'montzar_last_product_log', 'tracking_systems',
|
||||
'sms_charge_note'
|
||||
);
|
||||
|
||||
-- select (+ گزینهها در description)
|
||||
@@ -1364,7 +1399,8 @@ UPDATE `settings` SET `type` = 'text' WHERE `key` IN (
|
||||
'tahesab_bank_account', 'telegram_bot_token', 'bale_bot_token', 'support_messenger_id',
|
||||
'referral_bonus_amount', 'balance_report_exclude_customer_id', 'metal_type', 'main_metal', 'montify_name', 'price_extreme_date',
|
||||
'liman_token',
|
||||
'products_site_link_url', 'products_site_link_text'
|
||||
'products_site_link_url', 'products_site_link_text',
|
||||
'sms_charge_card_number', 'sms_charge_sheba', 'sms_charge_account_holder'
|
||||
);
|
||||
|
||||
-- پیشفرض برای ردیفهای بدون type
|
||||
@@ -1602,6 +1638,34 @@ UPDATE `settings` SET
|
||||
`description` = 'شماره شبا واریز — در متنها با ٪شبا یا %شبا جایگزین میشود.'
|
||||
WHERE `key` = 'deposit_sheba';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'شماره کارت شارژ پیامک',
|
||||
`type` = 'text',
|
||||
`can_edit` = 0,
|
||||
`description` = 'شماره کارت برای واریز شارژ سامانه پیامکی (مودال اعتبار پیامک).'
|
||||
WHERE `key` = 'sms_charge_card_number';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'شماره شبا شارژ پیامک',
|
||||
`type` = 'text',
|
||||
`can_edit` = 0,
|
||||
`description` = 'شماره شبا برای واریز شارژ سامانه پیامکی.'
|
||||
WHERE `key` = 'sms_charge_sheba';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'نام صاحب حساب شارژ پیامک',
|
||||
`type` = 'text',
|
||||
`can_edit` = 0,
|
||||
`description` = 'نام صاحب حساب واریز شارژ سامانه پیامکی.'
|
||||
WHERE `key` = 'sms_charge_account_holder';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'متن راهنمای شارژ پیامک',
|
||||
`type` = 'longtext',
|
||||
`can_edit` = 0,
|
||||
`description` = @sms_charge_note_desc
|
||||
WHERE `key` = 'sms_charge_note';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'متن دعوتنامه اشتراکگذاری',
|
||||
`type` = 'longtext',
|
||||
@@ -1768,8 +1832,12 @@ UPDATE `settings` SET
|
||||
`description` = 'روشن: اگر منبع قیمت montzar باشد، قبل از واریز پاداش معرف/معرفشونده همان وزن از همکار خرید میشود؛ شکست خرید = واریز نمیشود. خاموش: مثل قبل فقط به کیف واریز میشود بدون خرید از همکار.'
|
||||
WHERE `key` = 'referral_gift_buy_from_montzar';
|
||||
UPDATE `settings` SET `description` = 'حداکثر تعداد دعوتهای مجاز برای هر کاربر. خالی = بدون محدودیت.' WHERE `key` = 'referral_limit';
|
||||
-- [super-admin can_edit=0]
|
||||
-- UPDATE `settings` SET `description` = 'مبلغ یا مقدار پاداش معرف (متن آزاد — بسته به پیادهسازی پیامک/اعتبار). برای نمایش در پیامها.' WHERE `key` = 'referral_bonus_amount';
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'مقدار پاداش معرف',
|
||||
`can_edit` = 1,
|
||||
`type` = 'text',
|
||||
`description` = 'مبلغ یا مقدار پاداش معرف برای نمایش در پیامکها و متنهای دعوت.'
|
||||
WHERE `key` = 'referral_bonus_amount';
|
||||
UPDATE `settings` SET `description` = 'روشن: تطبیق شماره کارت بانکی کاربر با سرویس احراز هویت جیبیت هنگام ثبت/ویرایش کارت.' WHERE `key` = 'jibit_verification';
|
||||
UPDATE `settings` SET `description` = 'روشن: تطبیق کد ملی و موبایل در فرآیند ثبتنام از طریق سرویس جیبیت.' WHERE `key` = 'register_jibit_verify';
|
||||
-- [super-admin can_edit=0]
|
||||
@@ -2195,6 +2263,10 @@ UPDATE `settings` SET `title_fa` = 'نام صاحب حساب واریز' WHERE `
|
||||
UPDATE `settings` SET `title_fa` = 'شماره کارت واریز' WHERE `key` = 'deposit_card_number';
|
||||
UPDATE `settings` SET `title_fa` = 'شماره حساب واریز' WHERE `key` = 'deposit_account_number';
|
||||
UPDATE `settings` SET `title_fa` = 'شبا واریز' WHERE `key` = 'deposit_sheba';
|
||||
UPDATE `settings` SET `title_fa` = 'شماره کارت شارژ پیامک' WHERE `key` = 'sms_charge_card_number';
|
||||
UPDATE `settings` SET `title_fa` = 'شماره شبا شارژ پیامک' WHERE `key` = 'sms_charge_sheba';
|
||||
UPDATE `settings` SET `title_fa` = 'نام صاحب حساب شارژ پیامک' WHERE `key` = 'sms_charge_account_holder';
|
||||
UPDATE `settings` SET `title_fa` = 'متن راهنمای شارژ پیامک' WHERE `key` = 'sms_charge_note';
|
||||
UPDATE `settings` SET `title_fa` = 'فعالسازی کارت به کارت' WHERE `key` = 'deposit_method_card_to_card';
|
||||
UPDATE `settings` SET `title_fa` = 'فعالسازی درگاه پرداخت' WHERE `key` = 'deposit_method_gateway';
|
||||
UPDATE `settings` SET `title_fa` = 'فعالسازی شناسه واریز' WHERE `key` = 'deposit_method_identified';
|
||||
@@ -2254,7 +2326,6 @@ UPDATE `settings` SET `title_fa` = 'شناسه ردیف تابلو (key یا UUI
|
||||
-- 'external_payment_webhook_url',
|
||||
-- 'wallet_payment_provider',
|
||||
-- 'fee_deduct_from_gold',
|
||||
-- 'referral_bonus_amount',
|
||||
-- 'group_sms',
|
||||
-- 'customer_special_pricing',
|
||||
-- 'customer_direct_sms',
|
||||
@@ -2317,7 +2388,7 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'montzar_password', 'montzar_product_id',
|
||||
'montzar_account_zarin', 'montzar_account_tahesab', 'montzar_account_pargar',
|
||||
'open_register',
|
||||
'referral_id', 'referral_show', 'referral_limit', 'referral_gift_on_first_order', 'referral_gift_buy_from_montzar',
|
||||
'referral_id', 'referral_show', 'referral_limit', 'referral_gift_on_first_order', 'referral_gift_buy_from_montzar', 'referral_bonus_amount',
|
||||
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
|
||||
'sell_fee', 'show_last_price', 'show_home_price_when_closed', 'show_gold_ounce_price', 'show_product_details',
|
||||
'show_product_trade_status', 'show_product_card_meta',
|
||||
@@ -2348,7 +2419,8 @@ UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url',
|
||||
'sms_charge_card_number', 'sms_charge_sheba', 'sms_charge_account_holder', 'sms_charge_note'
|
||||
);
|
||||
|
||||
-- کلید runtime باقیمانده — can_edit=1
|
||||
@@ -2529,7 +2601,8 @@ UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url',
|
||||
'sms_charge_card_number', 'sms_charge_sheba', 'sms_charge_account_holder', 'sms_charge_note'
|
||||
);
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` = 'chart_use_local_data';
|
||||
|
||||
|
||||
@@ -42,6 +42,9 @@ SET @invite_link_desc = 'متن پیام اشتراکگذاری دعوت در
|
||||
SET @deposit_guide_desc = 'متن راهنمای واریز در مودال شارژ حساب. متغیرها: ٪نام یا %نام = نام صاحب حساب؛ ٪کارت یا %کارت = شماره کارت؛ ٪شبا یا %شبا = شبا. فاصله بعد از ٪ اختیاری است. اگر خالی باشد از متن پیشفرض اپ استفاده میشود.';
|
||||
SET @deposit_support_msg_desc = 'متن پیام هنگام کلیک روی «پیام به پشتیبانی» و «پیام به پشتیبانی (sms)» در مودال واریز. فقط متغیر ٪نام یا %نام = نام صاحب حساب (deposit_account_holder). پیشفرض: «شماره حساب».';
|
||||
|
||||
SET @sms_charge_note = 'لطفا مبلغ مورد نظر خود جهت شارژ سامانه پیامکی را به شماره کارت یا حساب زیر واریز نمایید و تصویر فیش پرداختی را برای پشتیبانی بفرستید.';
|
||||
SET @sms_charge_note_desc = 'متن راهنمای مودال شارژ اعتبار پیامک در پنل ادمین.';
|
||||
|
||||
SET @price_channel_message_desc = CONCAT(
|
||||
'متن پیامی که با تغییر قیمت به کانال فرستاده میشود. هر متغیر را دقیقاً همینطور بنویسید (با ٪ یا %).', CHAR(10),
|
||||
CHAR(10),
|
||||
@@ -663,6 +666,37 @@ SELECT 'deposit_sheba', '', 'شبا واریز', 1, 1,
|
||||
'شماره شبا واریز — در متنها با ٪شبا یا %شبا جایگزین میشود.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'deposit_sheba' LIMIT 1);
|
||||
|
||||
-- شارژ سامانه پیامکی (مودال اعتبار پیامک) — can_edit=0
|
||||
-- value ردیف موجود فقط اگر خالی باشد پر میشود
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_card_number', '6219861961033817', 'شماره کارت شارژ پیامک', 0, 1,
|
||||
'شماره کارت برای واریز شارژ سامانه پیامکی (مودال اعتبار پیامک).', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_card_number' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_sheba', 'IR080560611828005603604201', 'شماره شبا شارژ پیامک', 0, 1,
|
||||
'شماره شبا برای واریز شارژ سامانه پیامکی.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_sheba' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_account_holder', 'حسین منتظر', 'نام صاحب حساب شارژ پیامک', 0, 1,
|
||||
'نام صاحب حساب واریز شارژ سامانه پیامکی.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_account_holder' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'sms_charge_note', @sms_charge_note, 'متن راهنمای شارژ پیامک', 0, 1,
|
||||
@sms_charge_note_desc, 'longtext'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sms_charge_note' LIMIT 1);
|
||||
|
||||
UPDATE `settings` SET `value` = '6219861961033817'
|
||||
WHERE `key` = 'sms_charge_card_number' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
UPDATE `settings` SET `value` = 'IR080560611828005603604201'
|
||||
WHERE `key` = 'sms_charge_sheba' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
UPDATE `settings` SET `value` = 'حسین منتظر'
|
||||
WHERE `key` = 'sms_charge_account_holder' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
UPDATE `settings` SET `value` = @sms_charge_note
|
||||
WHERE `key` = 'sms_charge_note' AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'deposit_support_message_text', 'شماره حساب', 'متن پیام به پشتیبانی (واریز)', 1, 1, @deposit_support_msg_desc, 'longtext'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'deposit_support_message_text' LIMIT 1);
|
||||
@@ -790,7 +824,7 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'minimum_sell' LIMIT 1)
|
||||
|
||||
-- [super-admin can_edit=0]
|
||||
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
-- SELECT 'referral_bonus_amount', '', 'مقدار پاداش معرف', 0, 1, NULL, 'text'
|
||||
-- SELECT 'referral_bonus_amount', '', 'مقدار پاداش معرف', 1, 1, NULL, 'text'
|
||||
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'referral_bonus_amount' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
@@ -955,7 +989,7 @@ WHERE `key` = 'main_product';
|
||||
-- =============================================================================
|
||||
|
||||
-- longtext
|
||||
UPDATE `settings` SET `type` = 'longtext' WHERE `key` IN ('text_rule', 'text_about', 'support_messenger_text', 'invite_link_text', 'deposit_support_message_text', 'montzar_order_response', 'tracking_systems');
|
||||
UPDATE `settings` SET `type` = 'longtext' WHERE `key` IN ('text_rule', 'text_about', 'support_messenger_text', 'invite_link_text', 'deposit_support_message_text', 'montzar_order_response', 'tracking_systems', 'sms_charge_note');
|
||||
|
||||
-- select (+ گزینهها در description)
|
||||
-- [super-admin can_edit=0]
|
||||
@@ -1018,7 +1052,8 @@ UPDATE `settings` SET `type` = 'text' WHERE `key` IN (
|
||||
'sse_path',
|
||||
'tahesab_bank_account', 'telegram_bot_token', 'bale_bot_token', 'support_messenger_id',
|
||||
'referral_bonus_amount', 'balance_report_exclude_customer_id', 'metal_type', 'main_metal', 'montify_name', 'price_extreme_date',
|
||||
'liman_token'
|
||||
'liman_token',
|
||||
'sms_charge_card_number', 'sms_charge_sheba', 'sms_charge_account_holder'
|
||||
);
|
||||
|
||||
-- پیشفرض برای ردیفهای بدون type
|
||||
@@ -1221,6 +1256,34 @@ UPDATE `settings` SET
|
||||
`description` = 'شماره شبا واریز — در متنها با ٪شبا یا %شبا جایگزین میشود.'
|
||||
WHERE `key` = 'deposit_sheba';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'شماره کارت شارژ پیامک',
|
||||
`type` = 'text',
|
||||
`can_edit` = 0,
|
||||
`description` = 'شماره کارت برای واریز شارژ سامانه پیامکی (مودال اعتبار پیامک).'
|
||||
WHERE `key` = 'sms_charge_card_number';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'شماره شبا شارژ پیامک',
|
||||
`type` = 'text',
|
||||
`can_edit` = 0,
|
||||
`description` = 'شماره شبا برای واریز شارژ سامانه پیامکی.'
|
||||
WHERE `key` = 'sms_charge_sheba';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'نام صاحب حساب شارژ پیامک',
|
||||
`type` = 'text',
|
||||
`can_edit` = 0,
|
||||
`description` = 'نام صاحب حساب واریز شارژ سامانه پیامکی.'
|
||||
WHERE `key` = 'sms_charge_account_holder';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'متن راهنمای شارژ پیامک',
|
||||
`type` = 'longtext',
|
||||
`can_edit` = 0,
|
||||
`description` = @sms_charge_note_desc
|
||||
WHERE `key` = 'sms_charge_note';
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'متن دعوتنامه اشتراکگذاری',
|
||||
`type` = 'longtext',
|
||||
@@ -1424,8 +1487,12 @@ UPDATE `settings` SET
|
||||
`description` = 'روشن: اگر منبع قیمت montzar باشد، قبل از واریز پاداش معرف/معرفشونده همان وزن از همکار خرید میشود؛ شکست خرید = واریز نمیشود. خاموش: مثل قبل فقط به کیف واریز میشود بدون خرید از همکار.'
|
||||
WHERE `key` = 'referral_gift_buy_from_montzar';
|
||||
UPDATE `settings` SET `description` = 'حداکثر تعداد دعوتهای مجاز برای هر کاربر. خالی = بدون محدودیت.' WHERE `key` = 'referral_limit';
|
||||
-- [super-admin can_edit=0]
|
||||
-- UPDATE `settings` SET `description` = 'مبلغ یا مقدار پاداش معرف (متن آزاد — بسته به پیادهسازی پیامک/اعتبار). برای نمایش در پیامها.' WHERE `key` = 'referral_bonus_amount';
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'مقدار پاداش معرف',
|
||||
`can_edit` = 1,
|
||||
`type` = 'text',
|
||||
`description` = 'مبلغ یا مقدار پاداش معرف برای نمایش در پیامکها و متنهای دعوت.'
|
||||
WHERE `key` = 'referral_bonus_amount';
|
||||
UPDATE `settings` SET `description` = 'روشن: تطبیق شماره کارت بانکی کاربر با سرویس احراز هویت جیبیت هنگام ثبت/ویرایش کارت.' WHERE `key` = 'jibit_verification';
|
||||
UPDATE `settings` SET `description` = 'روشن: تطبیق کد ملی و موبایل در فرآیند ثبتنام از طریق سرویس جیبیت.' WHERE `key` = 'register_jibit_verify';
|
||||
-- [super-admin can_edit=0]
|
||||
@@ -1613,7 +1680,6 @@ WHERE `key` IN ('text_rule', 'text_about', 'support_messenger_text', 'invite_lin
|
||||
-- 'bale_bot_token',
|
||||
-- 'chart_id', 'chart_use_local_data',
|
||||
-- 'external_order_api_enabled',
|
||||
-- 'referral_bonus_amount',
|
||||
-- 'group_sms',
|
||||
-- 'customer_special_pricing',
|
||||
-- 'customer_direct_sms',
|
||||
@@ -1671,7 +1737,7 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'montzar_mobile', 'montzar_open_buy', 'montzar_open_sell',
|
||||
'montzar_password', 'montzar_product_id',
|
||||
'open_register',
|
||||
'referral_id', 'referral_show', 'referral_limit', 'referral_gift_on_first_order', 'referral_gift_buy_from_montzar',
|
||||
'referral_id', 'referral_show', 'referral_limit', 'referral_gift_on_first_order', 'referral_gift_buy_from_montzar', 'referral_bonus_amount',
|
||||
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
|
||||
'sell_fee', 'show_last_price', 'show_home_price_when_closed', 'show_product_details',
|
||||
'show_product_trade_status', 'show_product_card_meta',
|
||||
@@ -1697,7 +1763,8 @@ UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url',
|
||||
'sms_charge_card_number', 'sms_charge_sheba', 'sms_charge_account_holder', 'sms_charge_note'
|
||||
);
|
||||
|
||||
-- کلید runtime باقیمانده
|
||||
@@ -1784,7 +1851,8 @@ UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url',
|
||||
'sms_charge_card_number', 'sms_charge_sheba', 'sms_charge_account_holder', 'sms_charge_note'
|
||||
);
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` = 'chart_use_local_data';
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ UPDATE `settings` SET `menu` = CASE
|
||||
WHEN `key` LIKE 'montzar_%' OR `key` = 'display_montzar' THEN 'montzar'
|
||||
WHEN `key` LIKE 'sms_notif_%'
|
||||
OR `key` IN ('charge_notif', 'register_referral_sms_to_referrer') THEN 'notifications'
|
||||
WHEN `key` LIKE 'sms_charge_%' THEN 'sms_charge'
|
||||
WHEN `key` LIKE 'price_channel_%' OR `key` = 'change_mesghal' THEN 'price_channel'
|
||||
WHEN `key` LIKE 'telegram_bot%' OR `key` LIKE 'bale_bot%' OR `key` LIKE 'rubika_bot%' THEN 'bots'
|
||||
WHEN `key` LIKE 'referral_%'
|
||||
|
||||
Reference in New Issue
Block a user