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:
2026-09-01 21:38:19 +03:30
co-authored by Cursor
parent cae41e72b8
commit 91a2dab440
8 changed files with 368 additions and 31 deletions
+82 -9
View File
@@ -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';