2026-06-15 12:13:04 +03:30
-- =============================================================================
-- deploy_settings_const.sql — آپدیت settings + const (بدون تغییر schema)
--
-- workflow deploy (DB موجود):
-- 0) بکاپ
-- 1) mysql ... < database/sql/baseline_migrations.sql ← حتماً قبل از migrate
-- 2) php artisan migrate
-- 3) mysql ... < database/sql/deploy_settings_const.sql
--
-- workflow نصب از صفر (DB خالی):
-- 1) php artisan migrate ← schema dump + incremental
-- 2) mysql ... < database/sql/deploy_settings_const.sql
--
-- اصول:
-- • چند بار قابل اجرا (idempotent)
2026-06-22 01:31:47 +03:30
-- • value / is_active ردیفهای موجود دست نخورده
2026-06-28 16:02:15 +03:30
-- • can_edit / title_fa / description هر deploy از این فایل override میشوند (استاندارد مشترک)
-- • فقط INSERT برای کلیدهای جدید + بهروز type
2026-06-15 12:13:04 +03:30
-- • schema (جدول/ستون) فقط با migrate — نه این فایل
--
-- قبل از اجرا: USE `نام_دیتابیس`; + بکاپ
-- =============================================================================
START TRANSACTION ;
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci ;
SET @ db = DATABASE ();
2026-06-17 21:26:08 +03:30
-- متن پیشفرض invite_link_text (تکخطی با CHAR(10) — سازگار با همه کلاینتهای SQL)
SET @ invite_link_default_text = CONCAT (
'⭐️الان طلا بخر؛ آخر ماه سودشو ببر!' , CHAR ( 10 ),
'با خرید طلای آبشده در مقدارهای کم ولی مستمر، سود بیشتری ببر!' , CHAR ( 10 ),
CHAR ( 10 ),
'این دعوت نامه از طرف "٪نام" عزیز برای شما ارسال شده تا شما هم از بازار طلای ما جا نمونید.' , CHAR ( 10 ),
'روی لینک زیر کلیک کنید و ثبت نام خود را تکمیل کنید.' , CHAR ( 10 ),
CHAR ( 10 ),
'٪لینک'
);
2026-07-08 16:19:59 +03:30
SET @ invite_link_desc = CONCAT (
'متن پیام اشتراکگذاری دعوت در اپ کاربر (دکمه «اشتراک با دوستان»، پروفایل، کسب درآمد و مودال اشتراک).' , CHAR ( 10 ),
CHAR ( 10 ),
'متغیرها:' , CHAR ( 10 ),
'• %نام یا ٪نام = نام کامل کاربر دعوتکننده' , CHAR ( 10 ),
'• %لینک یا ٪لینک = آدرس ثبتنام با کد معرف' , CHAR ( 10 ),
CHAR ( 10 ),
'فاصله اختیاری بعد از % مجاز است (مثلاً % نام).' , CHAR ( 10 ),
'خالی = متن پیشفرض اپ.'
);
2026-06-17 21:26:08 +03:30
2026-07-08 16:19:59 +03:30
SET @ deposit_guide_desc = CONCAT (
'متن راهنمای واریز در مودال شارژ حساب.' , CHAR ( 10 ),
CHAR ( 10 ),
'متغیرها:' , CHAR ( 10 ),
'• %نام یا ٪نام = نام صاحب حساب' , CHAR ( 10 ),
'• %کارت یا ٪کارت = شماره کارت' , CHAR ( 10 ),
'• %شبا یا ٪شبا = شماره شبا' , CHAR ( 10 ),
CHAR ( 10 ),
'فاصله بعد از % اختیاری است.' , CHAR ( 10 ),
'خالی = متن پیشفرض اپ.'
);
SET @ deposit_support_msg_desc = CONCAT (
'متن پیام هنگام کلیک «پیام به پشتیبانی» در مودال واریز.' , CHAR ( 10 ),
CHAR ( 10 ),
'متغیر:' , CHAR ( 10 ),
'• %نام یا ٪نام = نام صاحب حساب' , CHAR ( 10 ),
CHAR ( 10 ),
2026-07-08 17:40:04 +03:30
'پیشفرض اپ: باسلام، %نام هستم. کدپیگیری و مبلغ واریزی من:'
2026-07-08 16:19:59 +03:30
);
2026-07-08 11:09:11 +03:30
2026-07-08 15:51:20 +03:30
SET @ price_channel_message_desc = CONCAT (
2026-07-08 16:19:59 +03:30
'متن پیامی که با تغییر قیمت به کانال فرستاده میشود.' , CHAR ( 10 ),
'هر متغیر را عیناً در قالب بنویسید (با % یا ٪).' , CHAR ( 10 ),
2026-07-08 15:51:20 +03:30
CHAR ( 10 ),
'قیمت تابلو — مثل اپ:' , CHAR ( 10 ),
2026-07-08 16:19:59 +03:30
'• %گرم_فروش = عدد بزرگ صفحهٔ اصلی (فروش هر گرم)' , CHAR ( 10 ),
2026-07-08 15:51:20 +03:30
'• %گرم_خرید = خرید هر گرم' , CHAR ( 10 ),
'• %مثقال_فروش = فروش هر مثقال' , CHAR ( 10 ),
'• %مثقال_خرید = خرید هر مثقال' , CHAR ( 10 ),
CHAR ( 10 ),
2026-07-08 16:19:59 +03:30
'زمان ارسال:' , CHAR ( 10 ),
'• %تاریخ = تاریخ شمسی' , CHAR ( 10 ),
'• %ساعت = ساعت' , CHAR ( 10 ),
CHAR ( 10 ),
'نام فروشگاه:' , CHAR ( 10 ),
'• %نام = فقط نام فروشگاه' , CHAR ( 10 ),
'• %عنوان = خط آماده: 📊 قیمت لحظهای + نام' , CHAR ( 10 ),
CHAR ( 10 ),
'تماس (از فیلدهای پایین همین بخش):' , CHAR ( 10 ),
'• %شماره = شماره تماس' , CHAR ( 10 ),
'• %آیدی = آیدی کانال' , CHAR ( 10 ),
'• %لینک = لینک' , CHAR ( 10 ),
CHAR ( 10 ),
'اختیاری:' , CHAR ( 10 ),
'• %محصولات = لیست همهٔ محصولات' , CHAR ( 10 ),
'• %فوتر = شماره + آیدی + لینک با هم' , CHAR ( 10 ),
2026-07-08 15:51:20 +03:30
CHAR ( 10 ),
'خالی = قالب پیشفرض.'
);
2026-07-08 12:45:14 +03:30
SET @ price_channel_default_text = CONCAT (
'سلام 👋' , CHAR ( 10 ),
'%عنوان' , CHAR ( 10 ),
'📅 %تاریخ 🕐 %ساعت' , CHAR ( 10 ),
CHAR ( 10 ),
'🔴 خرید گرم: %گرم_خرید' , CHAR ( 10 ),
'🟢 فروش گرم: %گرم_فروش' , CHAR ( 10 ),
'🔴 خرید مثقال: %مثقال_خرید' , CHAR ( 10 ),
'🟢 فروش مثقال: %مثقال_فروش' , CHAR ( 10 ),
CHAR ( 10 ),
'📞 %شماره' , CHAR ( 10 ),
'%آیدی' , CHAR ( 10 ),
'%لینک'
);
2026-06-15 12:13:04 +03:30
-- ستونهای اختیاری settings (بعضی DBهای قدیمی ندارند)
SET @ sql = IF (
( SELECT COUNT ( * ) FROM information_schema . COLUMNS
WHERE TABLE_SCHEMA = @ db AND TABLE_NAME = 'settings' AND COLUMN_NAME = 'is_exist' ) = 0 ,
'ALTER TABLE `settings` ADD COLUMN `is_exist` TINYINT(1) NOT NULL DEFAULT 0' ,
'SELECT 1'
);
PREPARE stmt FROM @ sql ; EXECUTE stmt ; DEALLOCATE PREPARE stmt ;
SET @ sql = IF (
( SELECT COUNT ( * ) FROM information_schema . COLUMNS
WHERE TABLE_SCHEMA = @ db AND TABLE_NAME = 'settings' AND COLUMN_NAME = 'type' ) = 0 ,
IF (
( SELECT COUNT ( * ) FROM information_schema . COLUMNS
WHERE TABLE_SCHEMA = @ db AND TABLE_NAME = 'settings' AND COLUMN_NAME = 'description' ) > 0 ,
'ALTER TABLE `settings` ADD COLUMN `type` VARCHAR(50) NULL DEFAULT NULL AFTER `description`' ,
'ALTER TABLE `settings` ADD COLUMN `type` VARCHAR(50) NULL DEFAULT NULL'
),
'SELECT 1'
);
PREPARE stmt FROM @ sql ; EXECUTE stmt ; DEALLOCATE PREPARE stmt ;
-- ---------------------------------------------------------------------------
-- charset — نمایش فارسی در پنل ادمین
-- ---------------------------------------------------------------------------
ALTER TABLE ` settings `
MODIFY COLUMN ` description ` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL ,
MODIFY COLUMN ` title_fa ` VARCHAR ( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL ,
MODIFY COLUMN ` type ` VARCHAR ( 50 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL ;
ALTER TABLE ` const `
MODIFY COLUMN ` title_fa ` VARCHAR ( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL ;
-- ---------------------------------------------------------------------------
-- اصلاح باگها / rename کلیدهای قدیمی
-- ---------------------------------------------------------------------------
UPDATE ` settings ` SET ` key ` = 'logo_login' WHERE ` key ` LIKE 'logo_login%' AND ` key ` <> 'logo_login' ;
DELETE s1 FROM ` settings ` s1
INNER JOIN ` settings ` s2 ON s1 . ` key ` = s2 . ` key ` AND s1 . ` id ` < s2 . ` id `
WHERE s1 . ` key ` = 'montzar_closed' ;
UPDATE ` settings ` SET ` key ` = 'support_messenger_id' WHERE ` key ` = 'bale_support_id' ;
UPDATE ` settings ` SET ` key ` = 'support_messenger_text' WHERE ` key ` = 'bale_support_text' ;
-- legacy is_requaire_referral → referral_id: فقط rename کلید؛ value/is_active دست نمیخورد
-- SETTINGS — کلیدهای جدید (INSERT فقط اگر key نبود)
-- =============================================================================
-- کلیدهای پایه برند (هر DB — value خالی؛ از پنل پر میشود)
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'name_fa' , '' , 'نام فارسی اپ' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'name_fa' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'app_url' , '' , 'آدرس اپ (کاربر)' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'app_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'admin_url' , '' , 'آدرس پنل ادمین' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'admin_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'logo_login' , '' , 'لوگوی صفحه ورود' , 0 , 0 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'logo_login' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'logo_register' , '' , 'لوگوی ثبتنام' , 0 , 0 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'logo_register' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'has_page_earn_money' , 'false' , 'صفحه کسب درآمد' , 1 , 1 , NULL , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'has_page_earn_money' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'montzar_order_response' , '[]' , 'پاسخ سفارش همکار' , 0 , 1 , NULL , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_order_response' LIMIT 1 );
2026-06-22 01:31:47 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'montzar_last_product_log' , '{}' , 'لاگ محصول همکار' , 0 , 1 , NULL , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_last_product_log' LIMIT 1 );
2026-06-15 12:13:04 +03:30
-- قیمت zaarbox (اگر از قبل دارید value دست نخورده)
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chart_use_local_data' , 'false' , 'نمودار از داده خود سایت' , 1 , 1 ,
'خاموش = Zaarbox (chart_id) | روشن = تاریخچه ذخیرهشده prices' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chart_use_local_data' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chart_id' , '' , 'UUID نمودار Zaarbox' , 1 , 1 , 'خالی = UUID پیشفرض سرویس' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chart_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'show_last_price' , 'true' , 'نمایش آخرین قیمت DB اگر API قطع شد' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_last_price' LIMIT 1 );
2026-07-12 14:08:16 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'show_gold_ounce_price' , 'false' , 'نمایش قیمت انس طلا' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_gold_ounce_price' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'main_product_price' , 'false' , 'قیمت از محصول (legacy)' , 1 , 1 , 'از price_provider استفاده کنید'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'main_product_price' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_price' , 'false' , 'قیمت از همکار (montzar)' , 1 , 1 , 'معمولاً false وقتی price_provider=zaarbox'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_price' LIMIT 1 );
-- Montzar — برای تعویض provider یا پر شدن خودکار توسط cron
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_mobile' , '' , 'موبایل API همکار' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_mobile' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_password' , '' , 'رمز API همکار' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_password' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_product_id' , '25' , 'کد محصول همکار' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_product_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_base_url' , 'https://limangold.ir' , 'آدرس سرور همکار' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_base_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_token' , '' , 'توکن همکار (خودکار)' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_token' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_open_buy' , 'true' , 'باز بودن خرید همکار' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_open_buy' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_open_sell' , 'true' , 'باز بودن فروش همکار' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_open_sell' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_diff' , '0' , 'اختلاف قیمت همکار' , 0 , 1 , 'سیستم پر میکند'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_diff' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_live_price' , '0' , 'قیمت لحظهای همکار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_live_price' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_mazaneh' , '0' , 'مظنه همکار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_mazaneh' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_truly_buy_mazaneh' , '0' , 'مظنه خرید همکار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_truly_buy_mazaneh' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'montzar_truly_sell_mazaneh' , '0' , 'مظنه فروش همکار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_truly_sell_mazaneh' LIMIT 1 );
-- API خارجی Node (HMAC)
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'node_client_id' , '' , 'شناسه کلاینت API خارجی (X-Client-Id)' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'node_client_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'node_shared_secret' , '' , 'کلید امضای HMAC API خارجی' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'node_shared_secret' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'external_order_api_enabled' , 'true' , 'فعالسازی API سفارش خارجی (get_wallet / order)' , 1 , 1 , 'true + node_client_id + node_shared_secret'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_order_api_enabled' LIMIT 1 );
2026-06-18 19:32:28 +03:30
-- SSE قیمت (last/list از لاراول)
2026-06-17 12:12:35 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-18 16:12:53 +03:30
SELECT 'wss_enabled' , 'true' , 'قیمت لحظهای (SSE)' , 0 , 1 , 'روشن: اپ به sse_path وصل میشود؛ خاموش: polling /api/price/last و /customer/product/list' , 'switch'
2026-06-17 12:12:35 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'wss_enabled' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-18 16:12:53 +03:30
SELECT 'sse_path' , '/api/price/stream' , 'مسیر SSE قیمت' , 0 , 1 , 'GET لاراول — استریم event:last و event:list با payload کامل' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sse_path' LIMIT 1 );
2026-07-12 18:31:17 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'tracking_systems' , '[]' , 'سامانههای ردیابی' , 0 , 1 ,
'JSON لیست آنالیتیکس — type: gtag|gtm|clarity|custom؛ id شناسه/کد؛ enabled روشن/خاموش' , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tracking_systems' LIMIT 1 );
2026-07-12 18:35:53 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'tracking_systems_enabled' , 'false' , 'نمایش سامانههای ردیابی' , 0 , 1 ,
'روشن: اسکریپتهای tracking_systems در اپ مشتری بارگذاری میشوند؛ خاموش: هیچ ردیابی فعال نیست' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tracking_systems_enabled' LIMIT 1 );
2026-06-22 01:31:47 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'montify_name' , '' , 'نام فروشگاه در درگاه' , 0 , 1 , NULL , 'text'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montify_name' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-05 16:43:34 +03:30
SELECT 'is_store' , 'false' , 'حالت فروشگاهی' , 0 , 1 , 'فعال = سبد خرید، دستهبندی، حواله، تخفیف' , 'switch'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'is_store' LIMIT 1 );
-- Jibit
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'jibit_verification' , 'true' , 'تأیید کارت بانکی با جیبیت' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'jibit_verification' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'register_jibit_verify' , 'true' , 'تأیید کدملی/موبایل در ثبتنام' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'register_jibit_verify' LIMIT 1 );
-- ساعات معامله
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'close_price' , 'false' , 'بستن قیمت در بازه زمانی' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'close_price' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'startDay' , '09:00' , 'شروع بازه معامله' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'startDay' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'endDay' , '22:00' , 'پایان بازه معامله' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'endDay' LIMIT 1 );
-- ثبتنام / معرف
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'auto_active_customer' , 'false' , 'فعالسازی خودکار کاربر' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'auto_active_customer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'fee_free' , '0' , 'تعداد سفارش اول بدون کارمزد' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'fee_free' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'charge_notif' , 'false' , 'پیامک شارژ ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'charge_notif' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'gift_for_referrer' , '0.005' , 'پاداش معرف' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'gift_for_referrer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'gift_for_referral' , '0' , 'پاداش معرفشونده' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'gift_for_referral' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'register_referral_sms_to_referrer' , 'false' , 'SMS به معرف هنگام ثبتنام' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'register_referral_sms_to_referrer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'register_referral_bonus_message' , 'false' , 'پیام پاداش در SMS ثبتنام' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'register_referral_bonus_message' LIMIT 1 );
2026-07-01 22:27:51 +03:30
-- default: false — value ردیف موجود در deploy عوض نمیشود (فقط INSERT اگر کلید نبود)
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'referral_gift_on_first_order' , 'false' , 'پاداش معرف پس از اولین سفارش' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'referral_gift_on_first_order' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'referral_limit' , '' , 'محدودیت دعوت' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'referral_limit' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'group_sms' , 'false' , 'پیامک گروهی' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'group_sms' LIMIT 1 );
2026-07-04 18:00:57 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'sms_panel' , 'true' , 'پنل پیامک (کیف پول)' , 0 , 1 , 'روشن: پنل پیامک و کیف پول billing فعال است. خاموش: پیامکها مثل قبل ارسال میشوند بدون billing.' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_panel' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-07-05 16:43:34 +03:30
SELECT 'tahesab_host' , '' , 'آدرس IP سرور تهحساب' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tahesab_host' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-06-17 21:26:08 +03:30
SELECT 'tahesab_port' , '' , 'پورت سرور تهحساب' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tahesab_port' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-07-05 16:43:34 +03:30
SELECT 'tahesab_token' , '' , 'توکن تهحساب' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tahesab_token' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-07-05 16:43:34 +03:30
SELECT 'tahesab_db' , '' , 'دیتابیس تهحساب' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tahesab_db' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-07-05 16:43:34 +03:30
SELECT 'tahesab_bank_account' , '' , 'حساب بانکی تهحساب' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'tahesab_bank_account' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-07-05 16:43:34 +03:30
SELECT 'send_to_tahesab' , 'false' , 'ارسال به تهحساب (قدیمی)' , 0 , 0 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'send_to_tahesab' LIMIT 1 );
2026-07-05 16:43:34 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'accounting_provider' , 'none' , 'سیستم حسابداری' , 0 , 1 , 'none,pargar,tahesab'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'accounting_provider' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'send_to_pargar' , 'false' , 'ارسال به پرگار (قدیمی)' , 0 , 0 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'send_to_pargar' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'pargar_username' , '' , 'نام کاربری API پرگار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'pargar_username' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'pargar_password' , '' , 'رمز عبور API پرگار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'pargar_password' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'pargar_api_token' , '' , 'توکن ثابت API پرگار' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'pargar_api_token' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'telegram_bot_token' , '' , 'توکن بات تلگرام' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'telegram_bot_token' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'bale_bot_token' , '' , 'توکن بات بله' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'bale_bot_token' LIMIT 1 );
2026-07-07 14:34:00 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'rubika_bot_token' , '' , 'توکن بات روبیکا' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'rubika_bot_token' LIMIT 1 );
-- ===========================================================================
-- ارسال قیمت به کانالهای پیامرسان (بله / تلگرام / روبیکا)
-- • محتوا (can_edit=1): روشن/خاموش، انتخاب پیامرسان، اختلاف، خطوط پایانی، فاصله
-- • سیستمی (can_edit=0): مقصد ارسال هر پیامرسان (آیدی چنل/گروه)
-- • توکنها همان bale_bot_token / telegram_bot_token / rubika_bot_token (can_edit=0)
-- ===========================================================================
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_enabled' , 'false' , 'ارسال قیمت به کانال' , 1 , 1 ,
'روشن: بعد از هر تغییر قیمت، مظنه به کانالهای پیامرسان انتخابشده ارسال میشود.' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_enabled' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_messengers' , '' , 'پیامرسانهای ارسال قیمت' , 1 , 1 ,
2026-07-07 16:14:11 +03:30
'کدام پیامرسانها قیمت بگیرند؟ میتوانید چند مورد را انتخاب کنید. گزینهها: بله، تلگرام، روبیکا.' , 'multiselect'
2026-07-07 14:34:00 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_messengers' LIMIT 1 );
2026-07-07 16:14:11 +03:30
-- نوع multiselect را روی ردیفهای موجود هم اعمال کن (نصبهایی که قبلاً text گرفته بودند)
UPDATE ` settings ` SET ` type ` = 'multiselect' WHERE ` key ` = 'price_channel_messengers' ;
2026-07-07 14:34:00 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_diff' , '0' , 'اختلاف قیمت کانال (ریال)' , 1 , 1 ,
'مبلغی که به قیمت خرید کانال اضافه و از قیمت فروش کم میشود (اسپرد اضافه فقط برای کانال).' , 'price'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_diff' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_min_seconds' , '120' , 'حداقل فاصله ارسال (ثانیه)' , 1 , 1 ,
'حداقل فاصله بین دو ارسال به کانال؛ جلوی سیل پیام را میگیرد. صفر = هر تغییر قیمت.' , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_min_seconds' LIMIT 1 );
2026-07-08 12:45:14 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_message_text' , @ price_channel_default_text , 'قالب متن پیام کانال' , 1 , 1 , @ price_channel_message_desc , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_message_text' LIMIT 1 );
2026-07-07 14:34:00 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_footer_id' , '' , 'آیدی کانال در پیام' , 1 , 1 ,
2026-07-08 16:19:59 +03:30
'آیدی/یوزرنیم کانال برای متغیر %آیدی در قالب پیام. خالی = خط خالی.' , 'text'
2026-07-07 14:34:00 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_footer_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_footer_phone' , '' , 'شماره تماس در پیام' , 1 , 1 ,
2026-07-08 16:19:59 +03:30
'شماره تماس برای متغیر %شماره در قالب پیام. خالی = خط خالی.' , 'text'
2026-07-07 14:34:00 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_footer_phone' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_footer_link' , '' , 'لینک در پیام' , 1 , 1 ,
2026-07-08 16:19:59 +03:30
'لینک برای متغیر %لینک در قالب پیام. خالی = خط خالی.' , 'text'
2026-07-07 14:34:00 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_footer_link' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_bale_to' , '' , 'مقصد ارسال بله' , 0 , 1 ,
'آیدی چنل/گروه بله برای ارسال قیمت (چند مقصد با ویرگول).' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_bale_to' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_telegram_to' , '' , 'مقصد ارسال تلگرام' , 0 , 1 ,
'آیدی چنل/گروه تلگرام برای ارسال قیمت (چند مقصد با ویرگول).' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_telegram_to' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_rubika_to' , '' , 'مقصد ارسال روبیکا' , 0 , 1 ,
'آیدی چنل/گروه روبیکا برای ارسال قیمت (چند مقصد با ویرگول).' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_rubika_to' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'change_mesghal' , '4.3318' , 'وزن مثقال (گرم)' , 1 , 1 ,
'ضریب تبدیل قیمت مثقال به گرم برای نمایش خط «هر گرم» در پیام کانال.' , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'change_mesghal' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'support_messenger_id' , '' , 'شناسه پشتیبانی پیامرسان' , 1 , 0 , 'یوزرنیم یا شماره تماس بسته به پیامرسان انتخابشده'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'support_messenger_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'support_messenger_text' , '' , 'متن پشتیبانی پیامرسان' , 1 , 0 , 'متن دکمه یا توضیح پشتیبانی در اپ کاربر'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'support_messenger_text' LIMIT 1 );
2026-06-17 16:13:18 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-17 21:26:08 +03:30
SELECT 'invite_link_text' , @ invite_link_default_text , 'متن دعوتنامه اشتراکگذاری' , 1 , 1 , @ invite_link_desc , 'longtext'
2026-06-17 16:13:18 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'invite_link_text' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'support_messenger' , '' , 'پیامرسان پشتیبانی' , 1 , 1 , 'bale,telegram,whatsapp,rubika,eitaa,soroush'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'support_messenger' LIMIT 1 );
2026-06-15 15:41:26 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-07 14:44:15 +03:30
SELECT 'deposit_sms_support_number' , '' , 'شماره تماس پشتیبانی' , 1 , 1 ,
'شماره تماس پشتیبانی که در صفحه واریز، درباره ما و قوانین به مشتری نشان داده میشود. با کلیک، تماس تلفنی برقرار میشود.' , 'number'
2026-06-15 15:41:26 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'deposit_sms_support_number' LIMIT 1 );
2026-07-08 11:09:11 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'deposit_account_holder' , '' , 'نام صاحب حساب واریز' , 1 , 1 ,
'نام صاحب حساب واریز — در متن راهنما و پیام پشتیبانی با ٪نام یا %نام جایگزین میشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'deposit_account_holder' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'deposit_card_number' , '' , 'شماره کارت واریز' , 1 , 1 ,
'شماره کارت واریز — در متنها با ٪کارت یا %کارت جایگزین میشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'deposit_card_number' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'deposit_sheba' , '' , 'شبا واریز' , 1 , 1 ,
'شماره شبا واریز — در متنها با ٪شبا یا %شبا جایگزین میشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'deposit_sheba' LIMIT 1 );
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 );
2026-06-15 12:13:04 +03:30
-- min/max قیمت روز (سیستم)
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'up_price' , '0' , 'بیشترین قیمت امروز' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'up_price' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'down_price' , '0' , 'کمترین قیمت امروز' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'down_price' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'price_extreme_date' , '' , 'تاریخ min/max روز' , 0 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_extreme_date' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-06-17 21:26:08 +03:30
SELECT 'metal_type' , 'طلای آبشده' , 'عنوان فلز در UI' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'metal_type' LIMIT 1 );
2026-06-23 20:35:13 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'main_metal' , 'طلا' , 'نام فلز اصلی (ادمین)' , 0 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'main_metal' LIMIT 1 );
2026-06-15 12:13:04 +03:30
-- درگاه — کلیدهای اختیاری payping
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'payping_fin_sync_enabled' , 'false' , 'همگامسازی fin' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_fin_sync_enabled' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'payping_fin_url' , 'https://limangold.ir/kernel/admin/fin' , 'URL fin' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_fin_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'payping_fin_token' , '' , 'توکن fin' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_fin_token' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'payping_fin_customer_id' , '23' , 'customer_id fin' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_fin_customer_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'payping_start_url' , 'https://payping.limangold.ir/payment/start' , 'آدرس شروع درگاه' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_start_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'payping_verify_url' , 'https://payping.limangold.ir/payment/verify' , 'آدرس تأیید درگاه' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_verify_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'payping_gateway_name' , '' , 'نام gateway درگاه' , 1 , 1 , 'sepal,' , 'select'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_gateway_name' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'payping_gateway_items' , '' , 'لیست item (چرخشی)' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_gateway_items' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'payping_round_toman' , 'false' , 'گرد کردن مبلغ به تومان' , 1 , 1 , NULL , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_round_toman' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'payping_strict_failed_withdraw' , 'false' , 'اولویت تراکنش ناموفق' , 1 , 1 , NULL , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'payping_strict_failed_withdraw' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'open_register' , 'true' , 'ثبتنام باز' , 1 , 1 , NULL , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'open_register' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'referral_id' , 'required' , 'کد معرف اجباری' , 1 , 1 , 'روشن = اجباری در ثبتنام | خاموش = اختیاری' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'referral_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-22 19:14:24 +03:30
SELECT 'fee_single' , '500000' , 'اختلاف پایه نمایش' , 1 , 1 , NULL , 'price'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'fee_single' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-22 19:14:24 +03:30
SELECT 'buy_fee' , '' , 'سود خرید نمایش' , 1 , 1 , NULL , 'price'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'buy_fee' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-22 19:14:24 +03:30
SELECT 'sell_fee' , '' , 'سود فروش نمایش' , 1 , 1 , NULL , 'price'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sell_fee' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'fee_service_charge_percentage' , '0.005' , 'درصد کارمزد سفارش' , 1 , 1 , NULL , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'fee_service_charge_percentage' LIMIT 1 );
2026-07-01 22:27:51 +03:30
-- fee_deduct_from_gold: value پیشفرض false فقط در INSERT اولیه؛ اجرای مجدد value/is_active را overwrite نمیکند
2026-07-01 20:59:24 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-12 12:00:29 +03:30
SELECT 'fee_deduct_from_gold' , 'false' , 'اعمال مبلغ دقیق در معامله مشتری' , 0 , 1 ,
2026-07-02 00:29:48 +03:30
'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت میکند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر میشود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه میشود. خاموش (پیشفرض): در فروش کارمزد از مبلغ ریالی واریزی کم میشود (مشتری مبلغ کمتری میگیرد). در خرید کارمزد از وزن طلای واریزی کم میشود (مشتری طلای کمتری میگیرد).' ,
'switch'
2026-07-01 20:59:24 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'fee_deduct_from_gold' LIMIT 1 );
2026-06-15 12:13:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-22 19:14:24 +03:30
SELECT 'min_withdraw' , '' , 'حداقل برداشت (ریال)' , 1 , 1 , NULL , 'price'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'min_withdraw' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-22 19:14:24 +03:30
SELECT 'min_first_buy' , '' , 'حداقل اولین خرید (ریال)' , 1 , 1 , NULL , 'price'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'min_first_buy' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-06-22 19:14:24 +03:30
SELECT 'minimum_sell' , '' , 'حداقل فروش' , 1 , 1 , NULL , 'price'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'minimum_sell' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
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 ` )
SELECT 'balance_report_exclude_customer_id' , '' , 'حذف مشتری از تراز' , 1 , 1 , NULL , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'balance_report_exclude_customer_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'montzar_closed' , 'false' , 'بسته بودن همکار' , 1 , 1 , NULL , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'montzar_closed' LIMIT 1 );
-- =============================================================================
2026-06-28 16:02:15 +03:30
-- عنوان فارسی — backfill اولیه (فقط اگر title_fa خالی باشد؛ override نهایی در انتهای فایل)
2026-06-15 12:13:04 +03:30
-- =============================================================================
-- backfill عنوان فارسی کلیدهای قدیمی (فقط اگر title_fa خالی/NULL باشد)
UPDATE ` settings ` SET ` title_fa ` = 'نام فارسی اپ' WHERE ` key ` = 'name_fa' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'نام انگلیسی اپ' WHERE ` key ` = 'name_en' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'آدرس اپ (کاربر)' WHERE ` key ` = 'app_url' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'آدرس پایه' WHERE ` key ` = 'bace_url' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'لوگوی صفحه ورود' WHERE ` key ` = 'logo_login' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'لوگوی ثبتنام' WHERE ` key ` = 'logo_register' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'آدرس پنل ادمین' WHERE ` key ` = 'admin_url' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'عنوان PWA' WHERE ` key ` = 'title_pwa' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'عنوان favicon' WHERE ` key ` = 'title_fav' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'متن قوانین' WHERE ` key ` = 'text_rule' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'متن درباره ما' WHERE ` key ` = 'text_about' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'صفحه کسب درآمد' WHERE ` key ` = 'has_page_earn_money' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'صفحه صندوق' WHERE ` key ` = 'has_page_fund' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'صفحه مجوزها' WHERE ` key ` = 'has_page_permission' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'صفحه هشدار قیمت' WHERE ` key ` = 'has_page_price_trigger' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'صفحه طلای فیزیکی' WHERE ` key ` = 'has_page_physical_gold' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'رنگ اصلی' WHERE ` key ` = 'color_primary' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'رنگ ثانویه' WHERE ` key ` = 'color_secondary' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'کارمزد (قدیمی — درصد)' WHERE ` key ` = 'fee' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'چت پشتیبانی' WHERE ` key ` = 'has_chat' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'آدرس API سرور' WHERE ` key ` = 'server_url' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'کلید داخلی اپ' WHERE ` key ` = 'key' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'تعداد معرف برای هدیه' WHERE ` key ` = 'referral_count_for_gift' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'مقدار پاداش معرف' WHERE ` key ` = 'referral_bonus_amount' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' OR ` title_fa ` = 'مبلغ پاداش معرف' );
UPDATE ` settings ` SET ` title_fa ` = 'حداقل برداشت (ریال)' WHERE ` key ` = 'min_withdraw' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'حداقل اولین خرید (ریال)' WHERE ` key ` = 'min_first_buy' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'حداقل فروش' WHERE ` key ` = 'minimum_sell' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'ثبتنام باز' WHERE ` key ` = 'open_register' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'ارسال به تهحساب' WHERE ` key ` = 'send_to_tahesab' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'گرد کردن تومان پیپینگ' WHERE ` key ` = 'payping_round_toman' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'برداشت ناموفق سختگیرانه' WHERE ` key ` = 'payping_strict_failed_withdraw' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'وضعیت فروشگاه' WHERE ` key ` = 'store_status' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'حالت فروشگاهی' WHERE ` key ` = 'is_store' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'محصولات متصل به کیف اصلی' WHERE ` key ` = 'main_wallet_products' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'واحد وزن' WHERE ` key ` = 'unit' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'کارمزد درصدی (alias)' WHERE ` key ` = 'service_charge_percentage' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = 'حذف مشتری از تراز' WHERE ` key ` = 'balance_report_exclude_customer_id' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'منبع قیمت' ),
` description ` = 'منبع فعال قیمت|montzar,zaarbox,main_product'
WHERE ` key ` = 'price_provider' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'محصول / UUID تابلو' )
WHERE ` key ` = 'main_product' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'آدرس API Zaarbox' )
WHERE ` key ` = 'zaarbox_api_url' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'شناسه ردیف Zaarbox' )
WHERE ` key ` = 'zaarbox_price_key' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'اختلاف پایه نمایش' )
WHERE ` key ` = 'fee_single' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'سود خرید نمایش' )
WHERE ` key ` = 'buy_fee' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'سود فروش نمایش' )
WHERE ` key ` = 'sell_fee' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'درصد کارمزد سفارش' )
WHERE ` key ` = 'fee_service_charge_percentage' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'تأیید کارت جیبیت' )
WHERE ` key ` = 'jibit_verification' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'تأیید ثبتنام جیبیت' )
WHERE ` key ` = 'register_jibit_verify' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'شناسه کلاینت API خارجی' )
WHERE ` key ` = 'node_client_id' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'کلید HMAC API خارجی' )
WHERE ` key ` = 'node_shared_secret' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'API سفارش خارجی' )
WHERE ` key ` = 'external_order_api_enabled' ;
2026-06-18 16:12:53 +03:30
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'قیمت لحظهای (SSE)' )
2026-06-17 12:12:35 +03:30
WHERE ` key ` = 'wss_enabled' ;
2026-06-18 16:12:53 +03:30
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'مسیر SSE قیمت' )
WHERE ` key ` = 'sse_path' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'بسته بودن همکار' )
WHERE ` key ` = 'montzar_closed' ;
UPDATE ` settings ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'نام فروشگاه در درگاه' )
WHERE ` key ` = 'montify_name' ;
-- =============================================================================
-- CONST — کلیدهای مورد استفاده کد
-- =============================================================================
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'jibit_counter' , '0' , 'شمارنده API جیبیت'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'jibit_counter' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'app_closed' , 'false' , 'بسته بودن اپ (ساعات)'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'app_closed' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'gram' , '1' , 'گرم هدیه ثبتنام'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'gram' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'price' , '[]' , 'لیست قیمت TGJU (JSON)'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'price' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'main_product' , '' , 'محصول آبشده (fallback)'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'main_product' LIMIT 1 );
UPDATE ` const ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'شمارنده جیبیت' )
WHERE ` key ` = 'jibit_counter' ;
UPDATE ` const ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'باز بودن درگاه' )
WHERE ` key ` = 'is_gateway_open' ;
UPDATE ` const ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'محصول آبشده (fallback)' )
WHERE ` key ` = 'main_product' ;
-- =============================================================================
-- نوع فیلد پنل ادمین (type) — value دست نخورده
-- =============================================================================
-- longtext
2026-06-22 01:31:47 +03:30
UPDATE ` settings ` SET ` type ` = 'longtext' WHERE ` key ` IN (
'text_rule' , 'text_about' , 'support_messenger_text' , 'invite_link_text' ,
2026-07-08 12:45:14 +03:30
'deposit_support_message_text' , 'price_channel_message_text' ,
2026-07-12 18:31:17 +03:30
'montzar_order_response' , 'montzar_last_product_log' , 'tracking_systems'
2026-06-22 01:31:47 +03:30
);
2026-06-15 12:13:04 +03:30
-- select (+ گزینهها در description)
2026-07-05 16:43:34 +03:30
UPDATE ` settings ` SET ` type ` = 'select' , ` description ` = 'none,pargar,tahesab' WHERE ` key ` = 'accounting_provider' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` type ` = 'select' , ` description ` = 'منبع فعال قیمت|montzar,zaarbox,main_product' WHERE ` key ` = 'price_provider' ;
UPDATE ` settings ` SET ` type ` = 'switch' , ` title_fa ` = 'کد معرف اجباری' , ` description ` = 'روشن = اجباری در ثبتنام | خاموش = اختیاری' WHERE ` key ` = 'referral_id' ;
UPDATE ` settings ` SET ` type ` = 'select' , ` description ` = 'sepal,' WHERE ` key ` = 'payping_gateway_name' ;
UPDATE ` settings ` SET ` type ` = 'select' , ` description ` = 'bale,telegram,whatsapp,rubika,eitaa,soroush' WHERE ` key ` = 'support_messenger' ;
-- switch
UPDATE ` settings ` SET ` type ` = 'switch' WHERE ` key ` IN (
'chart_use_local_data' ,
'jibit_verification' , 'register_jibit_verify' , 'open_register' , 'auto_active_customer' ,
2026-07-12 14:08:16 +03:30
'close_price' , 'show_last_price' , 'show_gold_ounce_price' ,
2026-07-01 22:27:51 +03:30
'fee_deduct_from_gold' ,
2026-07-05 16:43:34 +03:30
'profit_gold_api_enabled' , 'payping_round_toman' , 'payping_strict_failed_withdraw' ,
2026-07-04 18:00:57 +03:30
'has_page_earn_money' , 'charge_notif' , 'group_sms' , 'sms_panel' ,
2026-06-15 12:13:04 +03:30
'montzar_closed' , 'montzar_open_buy' , 'montzar_open_sell' ,
2026-07-12 18:35:53 +03:30
'payping_fin_sync_enabled' , 'external_order_api_enabled' , 'is_store' , 'wss_enabled' , 'tracking_systems_enabled' ,
2026-07-01 15:47:24 +03:30
'register_referral_sms_to_referrer' , 'register_referral_bonus_message' ,
2026-07-01 22:27:51 +03:30
'referral_gift_on_first_order' ,
2026-07-14 22:03:39 +03:30
'banner_enabled' , 'permision__enabled'
2026-06-15 12:13:04 +03:30
);
2026-06-22 19:14:24 +03:30
-- price (مبالغ ریالی)
UPDATE ` settings ` SET ` type ` = 'price' WHERE ` key ` IN (
2026-07-01 15:47:24 +03:30
'fee_single' , 'buy_fee' , 'sell_fee' ,
2026-06-15 12:13:04 +03:30
'min_withdraw' , 'min_first_buy' , 'minimum_sell' ,
2026-06-22 19:14:24 +03:30
'up_price' , 'down_price'
);
2026-06-26 22:37:27 +03:30
2026-06-22 19:14:24 +03:30
-- number (شماره، شناسه، درصد، تعداد — بدون جداکننده هزارگان)
UPDATE ` settings ` SET ` type ` = 'number' WHERE ` key ` IN (
'fee_service_charge_percentage' , 'fee_free' , 'service_charge_percentage' ,
'montzar_product_id' , 'gift_for_referrer' , 'gift_for_referral' ,
'payping_fin_customer_id' , 'tahesab_port' , 'referral_limit' ,
2026-06-15 15:41:26 +03:30
'deposit_sms_support_number'
2026-06-15 12:13:04 +03:30
);
-- text (بقیه — URL، توکن، کلید API، ساعت، ...)
UPDATE ` settings ` SET ` type ` = 'text' WHERE ` key ` IN (
'name_fa' , 'name_en' , 'app_url' , 'bace_url' , 'logo_login' , 'logo_register' , 'admin_url' , 'title_pwa' , 'title_fav' ,
'server_url' , 'key' , 'main_product' , 'zaarbox_api_url' , 'zaarbox_price_key' , 'chart_id' ,
'etehadie_api_url' , 'montzar_mobile' , 'montzar_password' , 'montzar_base_url' ,
'montzar_token' , 'montzar_diff' , 'montzar_live_price' , 'montzar_mazaneh' ,
'montzar_truly_buy_mazaneh' , 'montzar_truly_sell_mazaneh' , 'startDay' , 'endDay' ,
'payping_start_url' , 'payping_verify_url' , 'payping_gateway_items' , 'payping_fin_url' ,
2026-07-01 15:47:24 +03:30
'payping_fin_token' , 'tahesab_host' , 'tahesab_token' , 'tahesab_db' ,
2026-07-05 16:43:34 +03:30
'pargar_username' , 'pargar_password' , 'pargar_api_token' ,
2026-06-15 12:13:04 +03:30
'node_client_id' , 'node_shared_secret' ,
2026-06-18 19:32:28 +03:30
'sse_path' ,
2026-06-22 19:14:24 +03:30
'tahesab_bank_account' , 'telegram_bot_token' , 'bale_bot_token' , 'support_messenger_id' ,
2026-06-23 20:35:13 +03:30
'referral_bonus_amount' , 'balance_report_exclude_customer_id' , 'metal_type' , 'main_metal' , 'montify_name' , 'price_extreme_date' ,
2026-07-01 15:47:24 +03:30
'liman_token'
2026-06-15 12:13:04 +03:30
);
-- پیشفرض برای ردیفهای بدون type
UPDATE ` settings ` SET ` type ` = 'text' WHERE ` type ` IS NULL OR TRIM ( ` type ` ) = '' ;
-- =============================================================================
-- ---------------------------------------------------------------------------
-- کلیدهای modular اضافی (INSERT اگر نبود)
-- ---------------------------------------------------------------------------
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` , ` description ` )
SELECT 'price_provider' , 'منبع قیمت' , 'montzar' , 1 , 0 , 1 , 'select' , 'منبع فعال قیمت|montzar,zaarbox,main_product'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_provider' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'service_charge_percentage' , 'کارمزد درصدی (alias)' , COALESCE (
( SELECT ` value ` FROM ` settings ` WHERE ` key ` = 'fee_service_charge_percentage' LIMIT 1 ), '0.005'
), 0 , 0 , 1 , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'service_charge_percentage' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'title_pwa' , 'عنوان PWA' , '' , 0 , 0 , 0 , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'title_pwa' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'title_fav' , 'عنوان favicon' , '' , 0 , 0 , 0 , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'title_fav' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'text_rule' , 'متن قوانین' , '' , 1 , 0 , 1 , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'text_rule' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'text_about' , 'متن درباره ما' , '' , 1 , 0 , 1 , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'text_about' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'zaarbox_api_url' , 'آدرس API تابلو Zaarbox' , '' , 1 , 0 , 1 , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zaarbox_api_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'zaarbox_price_key' , 'شناسه ردیف تابلو (key یا UUID)' , '' , 1 , 0 , 1 , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zaarbox_price_key' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'main_product' , 'محصول آبشده' , '' , 1 , 0 , 1 , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'main_product' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` title_fa ` , ` value ` , ` can_edit ` , ` is_exist ` , ` is_active ` , ` type ` )
SELECT 'profit_gold_api_enabled' , 'API سود طلا' , 'false' , 1 , 0 , 0 , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'profit_gold_api_enabled' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'unit' , '' , 'واحد وزن دارایی و معاملات' , 1 , 1 ,
'واحد نمایش وزن فلز در داراییها، کیف پول و تراکنشها|گرم,کیلوگرم' , 'select'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'unit' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-07-01 22:27:51 +03:30
SELECT 'main_wallet_products' , '13' , 'محصولات متصل به کیف اصلی' , 0 , 1 ,
2026-07-01 15:47:24 +03:30
'محصولاتی که موجودیشان از کیف طلای اصلی خوانده میشود. چند محصول با کاما. پیشفرض: 13'
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'main_wallet_products' LIMIT 1 );
2026-06-22 01:31:47 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'apk_download_link' , '' , 'لینک دانلود اپ اندروید' , 0 , 1 ,
'آدرس کامل فایل APK اندروید (https). اگر خالی باشد لینک دانلود در اپ نمایش داده نمیشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'apk_download_link' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'banner_enabled' , 'true' , 'نمایش بنرها' , 0 , 1 ,
'روشن: اسلایدر بنر صفحه اصلی در اپ کاربر نمایش داده میشود. خاموش: بنرها مخفی میمانند (محتوای بنر از پنل «بنرها» مدیریت میشود).' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'banner_enabled' LIMIT 1 );
2026-07-14 22:03:39 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'permision__enabled' , 'false' , 'نمایش منوی مجوزها' , 0 , 1 ,
'روشن: آیتم «مجوز ها» در منوی تنظیمات اپ خانگی (تم جدید) نمایش داده میشود. خاموش: مخفی است.' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'permision__enabled' LIMIT 1 );
2026-06-15 12:13:04 +03:30
-- ---------------------------------------------------------------------------
-- const — کلیدهای اضافی
-- ---------------------------------------------------------------------------
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'is_gateway_open' , 'true' , 'باز بودن درگاه پرداخت'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'is_gateway_open' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'header_banner' , '' , 'بنر بالای صفحه'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'header_banner' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'last_order_log' , '' , 'لاگ آخرین سفارش همکار'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'last_order_log' LIMIT 1 );
INSERT INTO ` const ` ( ` key ` , ` value ` , ` title_fa ` )
SELECT 'liman' , '' , 'توکن fin (legacy)'
WHERE NOT EXISTS ( SELECT 1 FROM ` const ` WHERE ` key ` = 'liman' LIMIT 1 );
-- ---------------------------------------------------------------------------
-- پاکسازی کلیدهای legacy / تست
-- ---------------------------------------------------------------------------
DELETE FROM ` settings ` WHERE ` key ` IN (
'test' , 'test2' , 'test22' , 'test3' , 'test33' , 'longtest' , 'longtest2' , 'test*' ,
'is_requaire_referral' , 'send_to_goldir' , 'goldir_price' , 'liman_token' ,
'melted_product_id' , 'display_montzar' , 'tabanGohar_price' , 'etehadie_api_url' ,
'price_method' , 'price_primary_source' ,
'has_page_fund' , 'has_page_permission' , 'has_page_price_trigger' , 'has_page_physical_gold' ,
'has_chat' , 'product_update_price_on_list' , 'product_auto_close_open_on_list' ,
'referral_count_for_gift' , 'store_status' ,
2026-07-01 15:47:24 +03:30
'name_en' , 'bace_url' , 'server_url' , 'key' , 'color_primary' , 'color_secondary' ,
'price_from_nasiryan' ,
'goldir_base_url' , 'fee_cash' , 'default_vc_number' , 'payping_gateway_item' ,
'wss_path' , 'wss_link' , 'wss_trigger_path' ,
'wss_trigger_host' , 'wss_trigger_scheme' , 'wss_http_port' , 'wss_socket_port'
2026-06-15 12:13:04 +03:30
);
2026-07-01 15:47:24 +03:30
DELETE FROM ` const ` WHERE ` key ` = 'log' OR ` key ` LIKE 'goldir%' OR ` key ` IN (
2026-07-01 20:14:47 +03:30
'limited_price' ,
'first_customer_wallet_value' ,
2026-07-01 15:47:24 +03:30
'nasiryan' ,
'nasiryan_price' ,
'nasiryan_diff' ,
'nasiryan_mazaneh' ,
'nasiryan_truly_buy_mazaneh' ,
'nasiryan_truly_sell_mazaneh' ,
'nasiryan_closed'
);
2026-06-15 12:13:04 +03:30
-- ---------------------------------------------------------------------------
2026-06-22 01:31:47 +03:30
-- metadata — type / title_fa / description (value / is_active دست نمیخورند؛ can_edit در انتها)
2026-06-15 12:13:04 +03:30
-- ---------------------------------------------------------------------------
UPDATE ` settings ` SET ` description ` = NULL
WHERE LOWER ( TRIM ( COALESCE ( ` description ` , '' ))) IN ( 'true' , 'false' , '0' , '1' , 'yes' , 'no' , 'in server' )
OR TRIM ( COALESCE ( ` description ` , '' )) LIKE 'count of%' ;
UPDATE ` settings ` SET ` description ` = 'منبع فعال قیمت|montzar,zaarbox,main_product'
WHERE ` key ` = 'price_provider' ;
UPDATE ` settings ` SET
` type ` = 'switch' ,
` title_fa ` = 'کد معرف اجباری' ,
` description ` = 'روشن = اجباری در ثبتنام | خاموش = اختیاری'
WHERE ` key ` = 'referral_id' ;
UPDATE ` settings ` SET ` type ` = 'switch'
2026-07-01 22:27:51 +03:30
WHERE ` key ` IN ( 'register_referral_sms_to_referrer' , 'register_referral_bonus_message' , 'referral_gift_on_first_order' );
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET
` type ` = 'switch' ,
` title_fa ` = 'نمودار از داده خود سایت' ,
` description ` = 'خاموش = Zaarbox (chart_id) | روشن = تاریخچه prices'
WHERE ` key ` = 'chart_use_local_data' ;
UPDATE ` settings ` SET ` type ` = 'number' , ` title_fa ` = 'تعداد سفارش اول بدون کارمزد' , ` description ` = 'عدد — ۰ یعنی غیرفعال'
WHERE ` key ` = 'fee_free' ;
UPDATE ` settings ` SET ` description ` = 'تعداد سفارش اول بدون کارمزد' WHERE ` key ` = 'fee_free' ;
UPDATE ` settings ` SET ` description ` = 'id یا reading_method محصول آبشده' WHERE ` key ` = 'main_product' ;
UPDATE ` settings ` SET
` title_fa ` = 'شناسه پشتیبانی پیامرسان' ,
` type ` = 'text' ,
` description ` = 'یوزرنیم یا شماره تماس بسته به پیامرسان انتخابشده'
WHERE ` key ` = 'support_messenger_id' ;
UPDATE ` settings ` SET
2026-07-08 11:09:11 +03:30
` title_fa ` = 'متن راهنمای واریز' ,
2026-06-15 12:13:04 +03:30
` type ` = 'longtext' ,
2026-07-08 11:09:11 +03:30
` can_edit ` = 1 ,
` description ` = @ deposit_guide_desc
2026-06-15 12:13:04 +03:30
WHERE ` key ` = 'support_messenger_text' ;
2026-07-08 11:09:11 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'متن پیام به پشتیبانی (واریز)' ,
` type ` = 'longtext' ,
` can_edit ` = 1 ,
` description ` = @ deposit_support_msg_desc
WHERE ` key ` = 'deposit_support_message_text' ;
UPDATE ` settings ` SET
` title_fa ` = 'نام صاحب حساب واریز' ,
` type ` = 'text' ,
` can_edit ` = 1 ,
` description ` = 'نام صاحب حساب واریز — در متن راهنما و پیام پشتیبانی با ٪نام یا %نام جایگزین میشود.'
WHERE ` key ` = 'deposit_account_holder' ;
UPDATE ` settings ` SET
` title_fa ` = 'شماره کارت واریز' ,
` type ` = 'text' ,
` can_edit ` = 1 ,
` description ` = 'شماره کارت واریز — در متنها با ٪کارت یا %کارت جایگزین میشود.'
WHERE ` key ` = 'deposit_card_number' ;
UPDATE ` settings ` SET
` title_fa ` = 'شبا واریز' ,
` type ` = 'text' ,
` can_edit ` = 1 ,
` description ` = 'شماره شبا واریز — در متنها با ٪شبا یا %شبا جایگزین میشود.'
WHERE ` key ` = 'deposit_sheba' ;
2026-06-17 16:13:18 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'متن دعوتنامه اشتراکگذاری' ,
` type ` = 'longtext' ,
2026-06-17 21:26:08 +03:30
` description ` = @ invite_link_desc
2026-06-17 16:13:18 +03:30
WHERE ` key ` = 'invite_link_text' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'پیامرسان پشتیبانی' ,
` type ` = 'select' ,
` description ` = 'bale,telegram,whatsapp,rubika,eitaa,soroush'
WHERE ` key ` = 'support_messenger' ;
UPDATE ` settings ` SET
` title_fa ` = 'آدرس IP سرور تهحساب' ,
` type ` = 'text' ,
` description ` = NULL
WHERE ` key ` = 'tahesab_host' ;
UPDATE ` settings ` SET
` title_fa ` = 'پورت سرور تهحساب' ,
` type ` = 'number' ,
` description ` = NULL
WHERE ` key ` = 'tahesab_port' ;
UPDATE ` settings ` SET
` title_fa ` = 'نام دیتابیس تهحساب' ,
` type ` = 'text' ,
` description ` = 'مثال: TahesabDB'
WHERE ` key ` = 'tahesab_db' ;
UPDATE ` settings ` SET
` title_fa ` = 'حساب بانکی تهحساب' ,
` type ` = 'text' ,
` description ` = 'نام حساب بانکی در سند واریز'
WHERE ` key ` = 'tahesab_bank_account' ;
UPDATE ` settings ` SET ` title_fa ` = 'مقدار پاداش معرف' WHERE ` key ` = 'referral_bonus_amount' ;
UPDATE ` settings ` SET ` type ` = 'text' WHERE ` key ` = 'balance_report_exclude_customer_id' ;
-- پاکسازی title_fa / description از نام پروژه یا ارجاع کد
UPDATE ` settings ` SET ` title_fa ` = 'حالت فروشگاهی'
WHERE ` key ` = 'is_store' AND ( ` title_fa ` LIKE '%قطره%' OR ` title_fa ` LIKE '%کشکول%' );
UPDATE ` settings ` SET ` title_fa ` = 'همگامسازی fin'
WHERE ` key ` = 'payping_fin_sync_enabled' AND ` title_fa ` LIKE '%لیمان%' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام فروشگاه در درگاه' , ` description ` = 'نام فروشگاه که در درگاه پرداخت و رسید بانکی به کاربر نمایش داده میشود.'
WHERE ` key ` = 'montify_name' ;
-- descriptionهای قدیمی که عمداً NULL میشدند — در بلوک پایانی بازنویسی میشوند
UPDATE ` const ` SET ` title_fa ` = 'توکن fin (legacy)' WHERE ` key ` = 'liman' AND ` title_fa ` LIKE '%لیمان%' ;
UPDATE ` const ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'بنر بالای صفحه' ) WHERE ` key ` = 'header_banner' ;
UPDATE ` const ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'باز بودن درگاه' ) WHERE ` key ` = 'is_gateway_open' ;
UPDATE ` const ` SET ` title_fa ` = COALESCE ( NULLIF ( TRIM ( ` title_fa ` ), '' ), 'لاگ آخرین سفارش' ) WHERE ` key ` = 'last_order_log' ;
-- ---------------------------------------------------------------------------
-- راهنمای کامل تنظیمات (description) — برای نمایش در پنل ادمین
-- فرمت select: «متن راهنما|گزینه۱,گزینه۲»
-- ---------------------------------------------------------------------------
UPDATE ` settings ` SET ` description ` = 'نام فارسی برند که در پیامکها، عنوان صفحات و بخشهای عمومی اپ کاربر نمایش داده میشود.' WHERE ` key ` = 'name_fa' ;
UPDATE ` settings ` SET ` description ` = 'آدرس کامل وباپ کاربر (با https). در لینکهای پیامک، بازگشت از درگاه و ارجاعات داخلی استفاده میشود.' WHERE ` key ` = 'app_url' ;
UPDATE ` settings ` SET ` description ` = 'آدرس کامل پنل مدیریت (با https). برای لینکهای ادمین و تنظیمات CORS در صورت نیاز.' WHERE ` key ` = 'admin_url' ;
UPDATE ` settings ` SET ` description ` = 'آدرس تصویر لوگو در صفحه ورود. معمولاً از طریق دیپلوی یا آپلود فایل تنظیم میشود؛ در پنل قابل ویرایش نیست.' WHERE ` key ` = 'logo_login' ;
UPDATE ` settings ` SET ` description ` = 'آدرس تصویر لوگو در صفحه ثبتنام. معمولاً از طریق دیپلوی تنظیم میشود؛ در پنل قابل ویرایش نیست.' WHERE ` key ` = 'logo_register' ;
UPDATE ` settings ` SET ` description ` = 'عنوان کوتاه برای نصب PWA روی موبایل. از دیپلوی مدیریت میشود.' WHERE ` key ` = 'title_pwa' ;
UPDATE ` settings ` SET ` description ` = 'عنوان نمایشدادهشده در تب مرورگر (favicon). از دیپلوی مدیریت میشود.' WHERE ` key ` = 'title_fav' ;
2026-06-17 21:26:08 +03:30
UPDATE ` settings ` SET ` description ` = 'عنوان فلز اصلی در رابط کاربر (مثلاً «طلای آبشده» یا «کاتد مس»). در دارایی، کیف پول و برچسبهای معامله دیده میشود. فقط از دیپلوی/SQL تغییر میکند.' WHERE ` key ` = 'metal_type' ;
2026-06-23 20:35:13 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نام فلز اصلی (ادمین)' , ` description ` = 'نام کوتاه فلز برای برچسبهای پنل ادمین (مثلاً «مس» یا «طلا»). «تراز طلایی» میشود «تراز مس» — نه «تراز مسی». فقط از دیپلوی/SQL تغییر میکند.' WHERE ` key ` = 'main_metal' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'واحد نمایش وزن در داراییها، کیف پول و جزئیات معاملات|گرم,کیلوگرم' WHERE ` key ` = 'unit' ;
UPDATE ` settings ` SET ` description ` = 'روشن: کاربران جدید میتوانند ثبتنام کنند. خاموش: فقط ورود کاربران موجود مجاز است.' WHERE ` key ` = 'open_register' ;
UPDATE ` settings ` SET ` description ` = 'روشن: حساب کاربر بلافاصله پس از ثبتنام فعال میشود. خاموش: نیاز به تأیید دستی ادمین دارد.' WHERE ` key ` = 'auto_active_customer' ;
UPDATE ` settings ` SET ` description ` = 'نوع چیدمان اپ: روشن = حالت فروشگاهی (سبد، دستهبندی، حواله و …). خاموش = حالت معامله آبشده/محصولات کلاسیک. فقط از دیپلوی تغییر میکند.' WHERE ` key ` = 'is_store' ;
UPDATE ` settings ` SET ` description ` = 'روشن: نمودار قیمت از تاریخچه ذخیرهشده در دیتابیس خودتان. خاموش: از سرویس تابلو آنلاین (با شناسه chart_id) استفاده میشود.' WHERE ` key ` = 'chart_use_local_data' ;
UPDATE ` settings ` SET ` description ` = 'شناسه یکتا (UUID) نمودار در سرویس تابلو. اگر خالی باشد از شناسه پیشفرض سرویس استفاده میشود.' WHERE ` key ` = 'chart_id' ;
UPDATE ` settings ` SET ` description ` = 'منبع دریافت قیمت لحظهای برای اپ کاربر و همگامسازی محصولات|montzar,zaarbox,main_product' WHERE ` key ` = 'price_provider' ;
UPDATE ` settings ` SET ` description ` = 'شناسه عددی یا نام reading_method محصول آبشده مرجع. وقتی منبع قیمت روی main_product باشد برای محاسبه استفاده میشود.' WHERE ` key ` = 'main_product' ;
2026-07-12 22:13:46 +03:30
UPDATE ` settings ` SET ` description ` = 'آدرس سرور(های) فید قیمت (/api/free). تا ۵ آدرس (JSON آرایه) پشتیبانی میشود؛ اگر آدرس اول پاسخ ندهد بهترتیب سراغ بعدی میرود. مقدار تکی قبلی حفظ میشود.' WHERE ` key ` = 'zaarbox_api_url' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'کلید یا UUID ردیف قیمت در پاسخ API تابلو. باید با محصول/ردیف موردنظر در سرویس خارجی یکسان باشد.' WHERE ` key ` = 'zaarbox_price_key' ;
UPDATE ` settings ` SET ` description ` = 'روشن: اگر API قیمت در دسترس نباشد، آخرین قیمت ذخیرهشده در دیتابیس به کاربر نشان داده میشود. خاموش: در قطعی API ممکن است قیمت صفر نمایش داده شود.' WHERE ` key ` = 'show_last_price' ;
2026-07-12 14:08:16 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: اگر آدرس API تابلو (zaarbox_api_url) تنظیم شده باشد، قیمت انس طلا در اپ مشتری نمایش داده میشود. خاموش: نمایش داده نمیشود.' WHERE ` key ` = 'show_gold_ounce_price' ;
2026-06-30 21:44:39 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: خارج از بازه «ساعت شروع» تا «ساعت پایان» معامله و نمایش قیمت بسته میشود. خاموش: محدودیت ساعتی سراسری اعمال نمیشود.' WHERE ` key ` = 'close_price' ;
UPDATE ` settings ` SET ` description ` = 'ساعت شروع فعالیت روزانه. فقط وقتی «بستن خودکار خارج از ساعت کاری» روشن باشد اعمال میشود (مثلاً ۰۹:۰۰).' WHERE ` key ` = 'startDay' ;
UPDATE ` settings ` SET ` description ` = 'ساعت پایان فعالیت روزانه. فقط وقتی «بستن خودکار خارج از ساعت کاری» روشن باشد اعمال میشود (مثلاً ۲۲:۰۰).' WHERE ` key ` = 'endDay' ;
2026-07-02 01:26:26 +03:30
UPDATE ` settings ` SET ` description ` = 'اختلاف پایه (ریال) بین قیمت خرید و فروش روی مظنه. معمولاً نصف مجموع اختلاف قیمت خرید و فروش است.' WHERE ` key ` = 'fee_single' ;
2026-06-30 21:44:39 +03:30
UPDATE ` settings ` SET ` description ` = 'مبلغ اضافه (ریال) روی قیمت پایه برای سمت خرید. خالی = استفاده از «اختلاف پایه».' WHERE ` key ` = 'buy_fee' ;
UPDATE ` settings ` SET ` description ` = 'مبلغ کسر (ریال) از قیمت پایه برای سمت فروش. خالی = استفاده از «اختلاف پایه».' WHERE ` key ` = 'sell_fee' ;
UPDATE ` settings ` SET ` description ` = 'درصد کارمزد هر سفارش از مبلغ معامله (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).' WHERE ` key ` = 'fee_service_charge_percentage' ;
2026-07-01 22:27:51 +03:30
UPDATE ` settings ` SET
2026-07-02 00:29:48 +03:30
` title_fa ` = 'اعمال مبلغ دقیق در معامله مشتری' ,
2026-07-01 22:27:51 +03:30
` type ` = 'switch' ,
2026-07-12 12:00:29 +03:30
` can_edit ` = 0 ,
2026-07-01 23:59:59 +03:30
` description ` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت میکند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر میشود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه میشود. خاموش (پیشفرض): در فروش کارمزد از مبلغ ریالی واریزی کم میشود (مشتری مبلغ کمتری میگیرد). در خرید کارمزد از وزن طلای واریزی کم میشود (مشتری طلای کمتری میگیرد).'
2026-07-01 22:27:51 +03:30
WHERE ` key ` = 'fee_deduct_from_gold' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'تعداد اولین سفارشهای هر کاربر که از کارمزد معاف میشوند. ۰ = غیرفعال.' WHERE ` key ` = 'fee_free' ;
UPDATE ` settings ` SET ` description ` = 'حداقل مبلغ درخواست برداشت وجه (ریال). درخواستهای کمتر رد میشوند.' WHERE ` key ` = 'min_withdraw' ;
UPDATE ` settings ` SET ` description ` = 'حداقل مبلغ اولین خرید هر کاربر (ریال). برای فعالسازی کیف یا احراز سطح اول استفاده میشود.' WHERE ` key ` = 'min_first_buy' ;
UPDATE ` settings ` SET ` description ` = 'حداقل مقدار/مبلغ مجاز برای ثبت سفارش فروش. بسته به نوع محصول میتواند وزن یا ریال باشد.' WHERE ` key ` = 'minimum_sell' ;
UPDATE ` settings ` SET ` description ` = 'بیشترین قیمت ثبتشده در روز جاری (ریال). توسط سیستم بهروز میشود؛ دستی تغییر ندهید.' WHERE ` key ` = 'up_price' ;
UPDATE ` settings ` SET ` description ` = 'کمترین قیمت ثبتشده در روز جاری (ریال). توسط سیستم بهروز میشود؛ دستی تغییر ندهید.' WHERE ` key ` = 'down_price' ;
UPDATE ` settings ` SET ` description ` = 'تاریخ آخرین بهروزرسانی بیشترین/کمترین قیمت روز. توسط سیستم پر میشود.' WHERE ` key ` = 'price_extreme_date' ;
UPDATE ` settings ` SET ` description ` = 'شناسه عددی مشتری که از گزارش تراز و آمار تجمیعی حذف میشود (مثلاً حساب تست). چند id با کاما.' WHERE ` key ` = 'balance_report_exclude_customer_id' ;
UPDATE ` settings ` SET ` description ` = 'تنظیم legacy — از price_provider استفاده کنید. روشن بودن این گزینه دیگر توصیه نمیشود.' WHERE ` key ` = 'main_product_price' ;
UPDATE ` settings ` SET ` description ` = 'تنظیم legacy — از price_provider استفاده کنید. معمولاً خاموش بماند.' WHERE ` key ` = 'montzar_price' ;
UPDATE ` settings ` SET ` description ` = 'متن کامل قوانین و مقررات استفاده از اپ که در صفحه قوانین به کاربر نشان داده میشود. HTML ساده مجاز است.' WHERE ` key ` = 'text_rule' ;
UPDATE ` settings ` SET ` description ` = 'متن «درباره ما» شامل معرفی مجموعه، راههای ارتباطی و توضیح خدمات. در صفحه مربوطه در اپ کاربر نمایش داده میشود.' WHERE ` key ` = 'text_about' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وارد کردن کد معرف در ثبتنام اجباری است. خاموش: کد معرف اختیاری است.' WHERE ` key ` = 'referral_id' ;
2026-07-08 11:09:11 +03:30
UPDATE ` settings ` SET ` description ` = 'مقدار پاداش (معمولاً وزن فلز به گرم) که به کیف معرف واریز میشود. ۰ = بدون پاداش. زمان واریز بسته به «پاداش معرف پس از اولین سفارش» است.' WHERE ` key ` = 'gift_for_referrer' ;
UPDATE ` settings ` SET ` description ` = 'مقدار پاداش (معمولاً وزن فلز) که به معرفشونده واریز میشود. ۰ = بدون پاداش. زمان واریز بسته به «پاداش معرف پس از اولین سفارش» است.' WHERE ` key ` = 'gift_for_referral' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: پس از ثبتنام کاربر جدید، پیامک اطلاعرسانی برای معرف ارسال میشود.' WHERE ` key ` = 'register_referral_sms_to_referrer' ;
UPDATE ` settings ` SET ` description ` = 'روشن: متن پاداش معرف در پیامک خوشآمد ثبتنام گنجانده میشود.' WHERE ` key ` = 'register_referral_bonus_message' ;
2026-07-08 11:09:11 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: پاداش معرف (gift_for_referrer) و معرفشونده (gift_for_referral) پس از تکمیل اولین سفارش معرفشونده به کیف واریز میشود — فقط اگر مقدار هر پاداش بیشتر از صفر باشد. خاموش: پاداش بلافاصله پس از ثبتنام موفق یا تأیید احراز هویت واریز میشود (باز هم فقط برای مقادیر بیشتر از صفر).' WHERE ` key ` = 'referral_gift_on_first_order' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'حداکثر تعداد دعوتهای مجاز برای هر کاربر. خالی = بدون محدودیت.' WHERE ` key ` = 'referral_limit' ;
UPDATE ` settings ` SET ` description ` = 'مبلغ یا مقدار پاداش معرف (متن آزاد — بسته به پیادهسازی پیامک/اعتبار). برای نمایش در پیامها.' WHERE ` key ` = 'referral_bonus_amount' ;
UPDATE ` settings ` SET ` description ` = 'روشن: تطبیق شماره کارت بانکی کاربر با سرویس احراز هویت جیبیت هنگام ثبت/ویرایش کارت.' WHERE ` key ` = 'jibit_verification' ;
UPDATE ` settings ` SET ` description ` = 'روشن: تطبیق کد ملی و موبایل در فرآیند ثبتنام از طریق سرویس جیبیت.' WHERE ` key ` = 'register_jibit_verify' ;
UPDATE ` settings ` SET ` description ` = 'روشن: منوی «کسب درآمد / دعوت دوستان» در اپ کاربر نمایش داده میشود.' WHERE ` key ` = 'has_page_earn_money' ;
UPDATE ` settings ` SET ` description ` = 'شماره موبایل حساب API سرویس همکار قیمت. برای دریافت توکن و لیست محصولات.' WHERE ` key ` = 'montzar_mobile' ;
UPDATE ` settings ` SET ` description ` = 'رمز عبور حساب API سرویس همکار قیمت. محرمانه نگه دارید.' WHERE ` key ` = 'montzar_password' ;
UPDATE ` settings ` SET ` description ` = 'شناسه محصول آبشده در API همکار. باید با محصول مرجع در سرویس خارجی یکسان باشد.' WHERE ` key ` = 'montzar_product_id' ;
UPDATE ` settings ` SET ` description ` = 'آدرس پایه سرور API همکار (بدون اسلش انتهایی). مثال: https://example.com' WHERE ` key ` = 'montzar_base_url' ;
UPDATE ` settings ` SET ` description ` = 'توکن دسترسی API همکار. پس از ورود موفق توسط سیستم پر میشود؛ دستی ویرایش نکنید.' WHERE ` key ` = 'montzar_token' ;
UPDATE ` settings ` SET ` description ` = 'اختلاف قیمت دریافتی از همکار (ریال). توسط cron/همگامسازی پر میشود.' WHERE ` key ` = 'montzar_diff' ;
UPDATE ` settings ` SET ` description ` = 'آخرین قیمت لحظهای دریافتشده از همکار (ریال). فقط خواندنی — توسط سیستم بهروز میشود.' WHERE ` key ` = 'montzar_live_price' ;
UPDATE ` settings ` SET ` description ` = 'مظنه میانی دریافتشده از همکار. توسط سیستم بهروز میشود.' WHERE ` key ` = 'montzar_mazaneh' ;
UPDATE ` settings ` SET ` description ` = 'مظنه واقعی سمت خرید از همکار. توسط سیستم بهروز میشود.' WHERE ` key ` = 'montzar_truly_buy_mazaneh' ;
UPDATE ` settings ` SET ` description ` = 'مظنه واقعی سمت فروش از همکار. توسط سیستم بهروز میشود.' WHERE ` key ` = 'montzar_truly_sell_mazaneh' ;
UPDATE ` settings ` SET ` description ` = 'روشن: امکان ثبت سفارش خرید از طریق قیمت همکار باز است (طبق وضعیت سرویس خارجی).' WHERE ` key ` = 'montzar_open_buy' ;
UPDATE ` settings ` SET ` description ` = 'روشن: امکان ثبت سفارش فروش از طریق قیمت همکار باز است.' WHERE ` key ` = 'montzar_open_sell' ;
UPDATE ` settings ` SET ` description ` = 'روشن: سرویس همکار در حال حاضر بسته/غیرفعال گزارش شده است.' WHERE ` key ` = 'montzar_closed' ;
UPDATE ` settings ` SET ` description ` = 'پاسخ JSON آخرین سفارش ارسالی به همکار. برای عیبیابی؛ توسط سیستم پر میشود.' WHERE ` key ` = 'montzar_order_response' ;
2026-06-22 01:31:47 +03:30
UPDATE ` settings ` SET ` description ` = 'لاگ JSON آخرین محصول دریافتشده از API همکار. توسط سیستم پر میشود.' WHERE ` key ` = 'montzar_last_product_log' ;
UPDATE ` settings ` SET ` description ` = 'آدرس کامل فایل APK اندروید (https). اگر خالی باشد لینک دانلود در اپ نمایش داده نمیشود.' WHERE ` key ` = 'apk_download_link' ;
UPDATE ` settings ` SET ` description ` = 'روشن: اسلایدر بنر صفحه اصلی در اپ کاربر نمایش داده میشود. خاموش: بنرها مخفی میمانند (محتوای بنر از پنل «بنرها» مدیریت میشود).' WHERE ` key ` = 'banner_enabled' ;
2026-07-14 22:03:39 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: آیتم «مجوز ها» در منوی تنظیمات اپ خانگی (تم جدید) نمایش داده میشود. خاموش: مخفی است.' WHERE ` key ` = 'permision__enabled' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'شناسه کلاینت برای API سفارش خارجی (هدر X-Client-Id). باید با مقدار تنظیمشده در سرویس مقصد یکسان باشد.' WHERE ` key ` = 'node_client_id' ;
UPDATE ` settings ` SET ` description ` = 'کلید مشترک امضای HMAC برای احراز درخواستهای API سفارش خارجی. محرمانه نگه دارید.' WHERE ` key ` = 'node_shared_secret' ;
UPDATE ` settings ` SET ` description ` = 'روشن: API دریافت کیف پول و ثبت سفارش از سرویس فروشگاه خارجی فعال است. نیاز به node_client_id و node_shared_secret دارد.' WHERE ` key ` = 'external_order_api_enabled' ;
2026-06-18 16:12:53 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: اپ به SSE (sse_path) وصل میشود و last/list با payload میآید؛ خاموش: polling.' WHERE ` key ` = 'wss_enabled' ;
UPDATE ` settings ` SET ` description ` = 'مسیر GET لاراول برای استریم قیمت — پیشفرض /api/price/stream' WHERE ` key ` = 'sse_path' ;
2026-07-12 18:31:17 +03:30
UPDATE ` settings ` SET ` description ` = 'JSON لیست سامانههای آنالیتیکس — هر مورد: type (gtag|gtm|clarity|custom)، id، enabled. فقط دیپلوی.' WHERE ` key ` = 'tracking_systems' ;
2026-07-12 18:35:53 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: اسکریپتهای JSON در tracking_systems در اپ مشتری بارگذاری میشوند؛ خاموش: هیچ سامانه ردیابی فعال نیست.' WHERE ` key ` = 'tracking_systems_enabled' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'نام فروشگاه که در درگاه پرداخت و رسید بانکی به کاربر نمایش داده میشود.' WHERE ` key ` = 'montify_name' ;
UPDATE ` settings ` SET ` description ` = 'روشن: پس از واریز/برداشت، تراکنش به سامانه حسابداری fin همگامسازی میشود.' WHERE ` key ` = 'payping_fin_sync_enabled' ;
UPDATE ` settings ` SET ` description ` = 'آدرس کامل endpoint ثبت تراکنش در سامانه fin (POST).' WHERE ` key ` = 'payping_fin_url' ;
UPDATE ` settings ` SET ` description ` = 'توکن احراز هویت برای API سامانه fin.' WHERE ` key ` = 'payping_fin_token' ;
UPDATE ` settings ` SET ` description ` = 'شناسه مشتری/حساب در سامانه fin که تراکنشها به نام آن ثبت میشوند.' WHERE ` key ` = 'payping_fin_customer_id' ;
UPDATE ` settings ` SET ` description ` = 'آدرس API شروع پرداخت (redirect کاربر به درگاه).' WHERE ` key ` = 'payping_start_url' ;
UPDATE ` settings ` SET ` description ` = 'آدرس API تأیید و نهاییسازی پرداخت پس از بازگشت از درگاه.' WHERE ` key ` = 'payping_verify_url' ;
UPDATE ` settings ` SET ` description ` = 'نام درگاه پرداخت فعال که به سرویس واسط درگاه ارسال میشود|sepal,' WHERE ` key ` = 'payping_gateway_name' ;
2026-07-01 15:47:24 +03:30
UPDATE ` settings ` SET ` description ` = 'لیست کدهای item درگاه (با کاما) برای چرخش بین چند merchant.' WHERE ` key ` = 'payping_gateway_items' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: مبلغ پرداخت به نزدیکترین تومان گرد میشود. خاموش: مبلغ دقیق ریالی.' WHERE ` key ` = 'payping_round_toman' ;
UPDATE ` settings ` SET ` description ` = 'روشن: در صورت وجود برداشت ناموفق قبلی، تسویه جدید با احتیاط بیشتر انجام میشود.' WHERE ` key ` = 'payping_strict_failed_withdraw' ;
UPDATE ` settings ` SET ` description ` = 'آدرس IP یا hostname سرور نرمافزار تهحساب روی شبکه داخلی.' WHERE ` key ` = 'tahesab_host' ;
UPDATE ` settings ` SET ` description ` = 'شماره پورت اتصال به API تهحساب (معمولاً 8080 یا مقدار مستندات تهحساب).' WHERE ` key ` = 'tahesab_port' ;
UPDATE ` settings ` SET ` description ` = 'توکن/API Key اتصال به تهحساب. از پنل تهحساب دریافت میشود.' WHERE ` key ` = 'tahesab_token' ;
UPDATE ` settings ` SET ` description ` = 'نام دیتابیس یا شناسه پایگاه در تهحساب که سند به آن ارسال میشود.' WHERE ` key ` = 'tahesab_db' ;
UPDATE ` settings ` SET ` description ` = 'نام یا کد حساب بانکی در سند واریز/برداشت تهحساب.' WHERE ` key ` = 'tahesab_bank_account' ;
UPDATE ` settings ` SET ` description ` = 'روشن: واریز و برداشت مشتریان بهصورت خودکار به تهحساب ارسال میشود.' WHERE ` key ` = 'send_to_tahesab' ;
UPDATE ` settings ` SET ` description ` = 'نوع پیامرسان برای دکمه پشتیبانی در اپ کاربر|bale,telegram,whatsapp,rubika,eitaa,soroush' WHERE ` key ` = 'support_messenger' ;
UPDATE ` settings ` SET ` description ` = 'شناسه تماس پشتیبانی: یوزرنیم (تلگرام)، شماره (واتساپ/بله) یا آیدی بسته به پیامرسان انتخابشده.' WHERE ` key ` = 'support_messenger_id' ;
2026-07-08 11:09:11 +03:30
UPDATE ` settings ` SET ` description ` = @ deposit_guide_desc WHERE ` key ` = 'support_messenger_text' ;
UPDATE ` settings ` SET ` description ` = @ deposit_support_msg_desc WHERE ` key ` = 'deposit_support_message_text' ;
2026-07-08 12:45:14 +03:30
UPDATE ` settings ` SET ` description ` = @ price_channel_message_desc WHERE ` key ` = 'price_channel_message_text' ;
UPDATE ` settings ` SET
` title_fa ` = 'قالب متن پیام کانال' ,
` type ` = 'longtext' ,
` can_edit ` = 1 ,
` description ` = @ price_channel_message_desc
WHERE ` key ` = 'price_channel_message_text' ;
2026-07-08 16:19:59 +03:30
UPDATE ` settings ` SET ` description ` = @ invite_link_desc WHERE ` key ` = 'invite_link_text' ;
2026-07-15 12:50:45 +03:30
UPDATE ` settings ` SET ` description ` = 'شماره تماس پشتیبانی. اگر پر باشد، در منوی شناور پشتیبانی آیتمهای «تماس» و «پیام» اضافه میشود؛ متن پیام از «متن پیام به پشتیبانی (واریز)» خوانده میشود.' WHERE ` key ` = 'deposit_sms_support_number' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'توکن ربات تلگرام برای ارسال اعلانها. از BotFather دریافت میشود. محرمانه.' WHERE ` key ` = 'telegram_bot_token' ;
UPDATE ` settings ` SET ` description ` = 'توکن ربات بله برای ارسال اعلانها. محرمانه.' WHERE ` key ` = 'bale_bot_token' ;
UPDATE ` settings ` SET ` description ` = 'روشن: پس از شارژ کیف توسط ادمین، پیامک به مشتری ارسال میشود.' WHERE ` key ` = 'charge_notif' ;
UPDATE ` settings ` SET ` description ` = 'روشن: امکان ارسال پیامک گروهی از پنل ادمین فعال است.' WHERE ` key ` = 'group_sms' ;
2026-07-04 18:00:57 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: پنل پیامک و کیف پول billing فعال است. خاموش: پیامکها مثل قبل ارسال میشوند بدون billing.' WHERE ` key ` = 'sms_panel' ;
2026-06-15 12:13:04 +03:30
2026-07-01 15:47:24 +03:30
UPDATE ` settings ` SET ` description ` = 'محصولاتی که موجودیشان از کیف طلای اصلی خوانده میشود. چند محصول با کاما. پیشفرض: 13' WHERE ` key ` = 'main_wallet_products' ;
UPDATE ` settings ` SET ` value ` = '13' WHERE ` key ` = 'main_wallet_products' AND TRIM ( COALESCE ( ` value ` , '' )) = '' ;
2026-07-01 22:27:51 +03:30
UPDATE ` settings ` SET ` can_edit ` = 0 WHERE ` key ` = 'main_wallet_products' ;
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: API محاسبه سود طلا فعال است. در اکثر نصبها خاموش میماند.' WHERE ` key ` = 'profit_gold_api_enabled' ;
2026-06-17 21:26:08 +03:30
-- ---------------------------------------------------------------------------
-- ensure — کلیدهای longtext (INSERT نهایی + تثبیت type بعد از batchهای type=text)
-- ---------------------------------------------------------------------------
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'invite_link_text' , @ invite_link_default_text , 'متن دعوتنامه اشتراکگذاری' , 1 , 1 , @ invite_link_desc , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'invite_link_text' LIMIT 1 );
UPDATE ` settings ` SET
` title_fa ` = 'متن دعوتنامه اشتراکگذاری' ,
` type ` = 'longtext' ,
` description ` = @ invite_link_desc
WHERE ` key ` = 'invite_link_text' ;
2026-07-08 11:09:11 +03:30
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 );
UPDATE ` settings ` SET
` title_fa ` = 'متن پیام به پشتیبانی (واریز)' ,
` type ` = 'longtext' ,
` can_edit ` = 1 ,
` description ` = @ deposit_support_msg_desc
WHERE ` key ` = 'deposit_support_message_text' ;
2026-07-08 12:45:14 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_message_text' , @ price_channel_default_text , 'قالب متن پیام کانال' , 1 , 1 , @ price_channel_message_desc , 'longtext'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_message_text' LIMIT 1 );
UPDATE ` settings ` SET
` title_fa ` = 'قالب متن پیام کانال' ,
` type ` = 'longtext' ,
` can_edit ` = 1 ,
` description ` = @ price_channel_message_desc
WHERE ` key ` = 'price_channel_message_text' ;
2026-06-17 21:26:08 +03:30
UPDATE ` settings ` SET ` type ` = 'longtext'
2026-06-22 01:31:47 +03:30
WHERE ` key ` IN (
'text_rule' , 'text_about' , 'support_messenger_text' , 'invite_link_text' ,
2026-07-08 12:45:14 +03:30
'deposit_support_message_text' , 'price_channel_message_text' ,
2026-06-22 01:31:47 +03:30
'montzar_order_response' , 'montzar_last_product_log'
);
2026-06-28 16:02:15 +03:30
-- ---------------------------------------------------------------------------
-- title_fa — استاندارد مشترک (override؛ value / is_active دست نمیخورند)
-- ---------------------------------------------------------------------------
UPDATE ` settings ` SET ` title_fa ` = 'آدرس پنل ادمین' WHERE ` key ` = 'admin_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'لینک دانلود اپ اندروید' WHERE ` key ` = 'apk_download_link' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس اپ (کاربر)' WHERE ` key ` = 'app_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'فعالسازی خودکار کاربر' WHERE ` key ` = 'auto_active_customer' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس پایه' WHERE ` key ` = 'bace_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'حذف مشتری از تراز' WHERE ` key ` = 'balance_report_exclude_customer_id' ;
UPDATE ` settings ` SET ` title_fa ` = 'توکن بات بله' WHERE ` key ` = 'bale_bot_token' ;
UPDATE ` settings ` SET ` title_fa ` = 'نمایش بنرها' WHERE ` key ` = 'banner_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'سود خرید نمایش' WHERE ` key ` = 'buy_fee' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک شارژ ادمین' WHERE ` key ` = 'charge_notif' ;
UPDATE ` settings ` SET ` title_fa ` = 'UUID نمودار Zaarbox' WHERE ` key ` = 'chart_id' ;
UPDATE ` settings ` SET ` title_fa ` = 'نمودار از داده خود سایت' WHERE ` key ` = 'chart_use_local_data' ;
UPDATE ` settings ` SET ` title_fa ` = 'بستن خودکار خارج از ساعت کاری' WHERE ` key ` = 'close_price' ;
UPDATE ` settings ` SET ` title_fa ` = 'رنگ اصلی' WHERE ` key ` = 'color_primary' ;
UPDATE ` settings ` SET ` title_fa ` = 'رنگ ثانویه' WHERE ` key ` = 'color_secondary' ;
2026-07-07 14:44:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'شماره تماس پشتیبانی' WHERE ` key ` = 'deposit_sms_support_number' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'کمترین قیمت امروز' WHERE ` key ` = 'down_price' ;
UPDATE ` settings ` SET ` title_fa ` = 'ساعت پایان' WHERE ` key ` = 'endDay' ;
UPDATE ` settings ` SET ` title_fa ` = 'فعالسازی API سفارش خارجی (get_wallet / order)' WHERE ` key ` = 'external_order_api_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'کارمزد (قدیمی — درصد)' WHERE ` key ` = 'fee' ;
UPDATE ` settings ` SET ` title_fa ` = 'تعداد سفارش اول بدون کارمزد' WHERE ` key ` = 'fee_free' ;
UPDATE ` settings ` SET ` title_fa ` = 'درصد کارمزد سفارش' WHERE ` key ` = 'fee_service_charge_percentage' ;
2026-07-01 23:59:59 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'اعمال مبلغ دقیق در معامله مشتری' WHERE ` key ` = 'fee_deduct_from_gold' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'اختلاف پایه نمایش' WHERE ` key ` = 'fee_single' ;
UPDATE ` settings ` SET ` title_fa ` = 'پاداش معرفشونده' WHERE ` key ` = 'gift_for_referral' ;
UPDATE ` settings ` SET ` title_fa ` = 'پاداش معرف' WHERE ` key ` = 'gift_for_referrer' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک گروهی' WHERE ` key ` = 'group_sms' ;
2026-07-04 18:00:57 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'پنل پیامک (کیف پول)' WHERE ` key ` = 'sms_panel' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'چت پشتیبانی' WHERE ` key ` = 'has_chat' ;
UPDATE ` settings ` SET ` title_fa ` = 'صفحه کسب درآمد' WHERE ` key ` = 'has_page_earn_money' ;
UPDATE ` settings ` SET ` title_fa ` = 'صفحه صندوق' WHERE ` key ` = 'has_page_fund' ;
UPDATE ` settings ` SET ` title_fa ` = 'صفحه مجوزها' WHERE ` key ` = 'has_page_permission' ;
UPDATE ` settings ` SET ` title_fa ` = 'صفحه طلای فیزیکی' WHERE ` key ` = 'has_page_physical_gold' ;
UPDATE ` settings ` SET ` title_fa ` = 'صفحه هشدار قیمت' WHERE ` key ` = 'has_page_price_trigger' ;
UPDATE ` settings ` SET ` title_fa ` = 'متن دعوتنامه اشتراکگذاری' WHERE ` key ` = 'invite_link_text' ;
UPDATE ` settings ` SET ` title_fa ` = 'حالت فروشگاهی' WHERE ` key ` = 'is_store' ;
UPDATE ` settings ` SET ` title_fa ` = 'تأیید کارت بانکی با جیبیت' WHERE ` key ` = 'jibit_verification' ;
UPDATE ` settings ` SET ` title_fa ` = 'کلید داخلی اپ' WHERE ` key ` = 'key' ;
UPDATE ` settings ` SET ` title_fa ` = 'لوگوی صفحه ورود' WHERE ` key ` = 'logo_login' ;
UPDATE ` settings ` SET ` title_fa ` = 'لوگوی ثبتنام' WHERE ` key ` = 'logo_register' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام فلز اصلی (ادمین)' WHERE ` key ` = 'main_metal' ;
UPDATE ` settings ` SET ` title_fa ` = 'محصول آبشده' WHERE ` key ` = 'main_product' ;
UPDATE ` settings ` SET ` title_fa ` = 'قیمت از محصول (legacy)' WHERE ` key ` = 'main_product_price' ;
UPDATE ` settings ` SET ` title_fa ` = 'محصولات متصل به کیف اصلی' WHERE ` key ` = 'main_wallet_products' ;
UPDATE ` settings ` SET ` title_fa ` = 'عنوان فلز در UI' WHERE ` key ` = 'metal_type' ;
UPDATE ` settings ` SET ` title_fa ` = 'حداقل اولین خرید (ریال)' WHERE ` key ` = 'min_first_buy' ;
UPDATE ` settings ` SET ` title_fa ` = 'حداقل برداشت (ریال)' WHERE ` key ` = 'min_withdraw' ;
UPDATE ` settings ` SET ` title_fa ` = 'حداقل فروش' WHERE ` key ` = 'minimum_sell' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام فروشگاه در درگاه' WHERE ` key ` = 'montify_name' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس سرور همکار' WHERE ` key ` = 'montzar_base_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'بسته بودن همکار' WHERE ` key ` = 'montzar_closed' ;
UPDATE ` settings ` SET ` title_fa ` = 'اختلاف قیمت همکار' WHERE ` key ` = 'montzar_diff' ;
UPDATE ` settings ` SET ` title_fa ` = 'لاگ محصول همکار' WHERE ` key ` = 'montzar_last_product_log' ;
UPDATE ` settings ` SET ` title_fa ` = 'قیمت لحظهای همکار' WHERE ` key ` = 'montzar_live_price' ;
UPDATE ` settings ` SET ` title_fa ` = 'مظنه همکار' WHERE ` key ` = 'montzar_mazaneh' ;
UPDATE ` settings ` SET ` title_fa ` = 'موبایل API همکار' WHERE ` key ` = 'montzar_mobile' ;
UPDATE ` settings ` SET ` title_fa ` = 'باز بودن خرید همکار' WHERE ` key ` = 'montzar_open_buy' ;
UPDATE ` settings ` SET ` title_fa ` = 'باز بودن فروش همکار' WHERE ` key ` = 'montzar_open_sell' ;
UPDATE ` settings ` SET ` title_fa ` = 'پاسخ سفارش همکار' WHERE ` key ` = 'montzar_order_response' ;
UPDATE ` settings ` SET ` title_fa ` = 'رمز API همکار' WHERE ` key ` = 'montzar_password' ;
UPDATE ` settings ` SET ` title_fa ` = 'قیمت از همکار (montzar)' WHERE ` key ` = 'montzar_price' ;
UPDATE ` settings ` SET ` title_fa ` = 'کد محصول همکار' WHERE ` key ` = 'montzar_product_id' ;
UPDATE ` settings ` SET ` title_fa ` = 'توکن همکار (خودکار)' WHERE ` key ` = 'montzar_token' ;
UPDATE ` settings ` SET ` title_fa ` = 'مظنه خرید همکار' WHERE ` key ` = 'montzar_truly_buy_mazaneh' ;
UPDATE ` settings ` SET ` title_fa ` = 'مظنه فروش همکار' WHERE ` key ` = 'montzar_truly_sell_mazaneh' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام انگلیسی اپ' WHERE ` key ` = 'name_en' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام فارسی اپ' WHERE ` key ` = 'name_fa' ;
UPDATE ` settings ` SET ` title_fa ` = 'شناسه کلاینت API خارجی (X-Client-Id)' WHERE ` key ` = 'node_client_id' ;
UPDATE ` settings ` SET ` title_fa ` = 'کلید امضای HMAC API خارجی' WHERE ` key ` = 'node_shared_secret' ;
UPDATE ` settings ` SET ` title_fa ` = 'ثبتنام باز' WHERE ` key ` = 'open_register' ;
UPDATE ` settings ` SET ` title_fa ` = 'customer_id fin' WHERE ` key ` = 'payping_fin_customer_id' ;
UPDATE ` settings ` SET ` title_fa ` = 'همگامسازی fin' WHERE ` key ` = 'payping_fin_sync_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'توکن fin' WHERE ` key ` = 'payping_fin_token' ;
UPDATE ` settings ` SET ` title_fa ` = 'URL fin' WHERE ` key ` = 'payping_fin_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'لیست item (چرخشی)' WHERE ` key ` = 'payping_gateway_items' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام gateway درگاه' WHERE ` key ` = 'payping_gateway_name' ;
UPDATE ` settings ` SET ` title_fa ` = 'گرد کردن مبلغ به تومان' WHERE ` key ` = 'payping_round_toman' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس شروع درگاه' WHERE ` key ` = 'payping_start_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'برداشت ناموفق سختگیرانه' WHERE ` key ` = 'payping_strict_failed_withdraw' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس تأیید درگاه' WHERE ` key ` = 'payping_verify_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'تاریخ min/max روز' WHERE ` key ` = 'price_extreme_date' ;
UPDATE ` settings ` SET ` title_fa ` = 'منبع قیمت' WHERE ` key ` = 'price_provider' ;
UPDATE ` settings ` SET ` title_fa ` = 'API سود طلا' WHERE ` key ` = 'profit_gold_api_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'مقدار پاداش معرف' WHERE ` key ` = 'referral_bonus_amount' ;
UPDATE ` settings ` SET ` title_fa ` = 'تعداد معرف برای هدیه' WHERE ` key ` = 'referral_count_for_gift' ;
UPDATE ` settings ` SET ` title_fa ` = 'کد معرف اجباری' WHERE ` key ` = 'referral_id' ;
UPDATE ` settings ` SET ` title_fa ` = 'محدودیت دعوت' WHERE ` key ` = 'referral_limit' ;
UPDATE ` settings ` SET ` title_fa ` = 'تأیید کدملی/موبایل در ثبتنام' WHERE ` key ` = 'register_jibit_verify' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیام پاداش در SMS ثبتنام' WHERE ` key ` = 'register_referral_bonus_message' ;
UPDATE ` settings ` SET ` title_fa ` = 'SMS به معرف هنگام ثبتنام' WHERE ` key ` = 'register_referral_sms_to_referrer' ;
2026-07-01 22:27:51 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'پاداش معرف پس از اولین سفارش' WHERE ` key ` = 'referral_gift_on_first_order' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'سود فروش نمایش' WHERE ` key ` = 'sell_fee' ;
UPDATE ` settings ` SET ` title_fa ` = 'ارسال به تهحساب' WHERE ` key ` = 'send_to_tahesab' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس API سرور' WHERE ` key ` = 'server_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'کارمزد درصدی (alias)' WHERE ` key ` = 'service_charge_percentage' ;
UPDATE ` settings ` SET ` title_fa ` = 'نمایش آخرین قیمت ذخیرهشده' WHERE ` key ` = 'show_last_price' ;
2026-07-12 14:08:16 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نمایش قیمت انس طلا' WHERE ` key ` = 'show_gold_ounce_price' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'مسیر SSE قیمت' WHERE ` key ` = 'sse_path' ;
UPDATE ` settings ` SET ` title_fa ` = 'ساعت شروع' WHERE ` key ` = 'startDay' ;
UPDATE ` settings ` SET ` title_fa ` = 'وضعیت فروشگاه' WHERE ` key ` = 'store_status' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامرسان پشتیبانی' WHERE ` key ` = 'support_messenger' ;
UPDATE ` settings ` SET ` title_fa ` = 'شناسه پشتیبانی پیامرسان' WHERE ` key ` = 'support_messenger_id' ;
2026-07-08 11:09:11 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'متن راهنمای واریز' WHERE ` key ` = 'support_messenger_text' ;
UPDATE ` settings ` SET ` title_fa ` = 'متن پیام به پشتیبانی (واریز)' WHERE ` key ` = 'deposit_support_message_text' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام صاحب حساب واریز' WHERE ` key ` = 'deposit_account_holder' ;
UPDATE ` settings ` SET ` title_fa ` = 'شماره کارت واریز' WHERE ` key ` = 'deposit_card_number' ;
UPDATE ` settings ` SET ` title_fa ` = 'شبا واریز' WHERE ` key ` = 'deposit_sheba' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'حساب بانکی تهحساب' WHERE ` key ` = 'tahesab_bank_account' ;
UPDATE ` settings ` SET ` title_fa ` = 'نام دیتابیس تهحساب' WHERE ` key ` = 'tahesab_db' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس IP سرور تهحساب' WHERE ` key ` = 'tahesab_host' ;
UPDATE ` settings ` SET ` title_fa ` = 'پورت سرور تهحساب' WHERE ` key ` = 'tahesab_port' ;
UPDATE ` settings ` SET ` title_fa ` = 'توکن تهحساب' WHERE ` key ` = 'tahesab_token' ;
UPDATE ` settings ` SET ` title_fa ` = 'توکن بات تلگرام' WHERE ` key ` = 'telegram_bot_token' ;
UPDATE ` settings ` SET ` title_fa ` = 'متن درباره ما' WHERE ` key ` = 'text_about' ;
UPDATE ` settings ` SET ` title_fa ` = 'متن قوانین' WHERE ` key ` = 'text_rule' ;
UPDATE ` settings ` SET ` title_fa ` = 'عنوان favicon' WHERE ` key ` = 'title_fav' ;
UPDATE ` settings ` SET ` title_fa ` = 'عنوان PWA' WHERE ` key ` = 'title_pwa' ;
UPDATE ` settings ` SET ` title_fa ` = 'واحد وزن دارایی و معاملات' WHERE ` key ` = 'unit' ;
UPDATE ` settings ` SET ` title_fa ` = 'بیشترین قیمت امروز' WHERE ` key ` = 'up_price' ;
UPDATE ` settings ` SET ` title_fa ` = 'قیمت لحظهای (SSE)' WHERE ` key ` = 'wss_enabled' ;
2026-07-12 18:31:17 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'سامانههای ردیابی' WHERE ` key ` = 'tracking_systems' ;
2026-07-12 18:35:53 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نمایش سامانههای ردیابی' WHERE ` key ` = 'tracking_systems_enabled' ;
2026-07-14 22:03:39 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نمایش منوی مجوزها' WHERE ` key ` = 'permision__enabled' ;
2026-06-28 16:02:15 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'آدرس API تابلو Zaarbox' WHERE ` key ` = 'zaarbox_api_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'شناسه ردیف تابلو (key یا UUID)' WHERE ` key ` = 'zaarbox_price_key' ;
2026-06-22 01:31:47 +03:30
-- ---------------------------------------------------------------------------
-- can_edit — استاندارد مشترک (override؛ value دست نمیخورد)
-- ---------------------------------------------------------------------------
-- غیرقابل ویرایش در پنل (can_edit = 0)
UPDATE ` settings ` SET ` can_edit ` = 0 WHERE ` key ` IN (
'admin_url' , 'apk_download_link' , 'app_url' ,
'bale_bot_token' , 'banner_enabled' ,
'chart_id' , 'chart_use_local_data' ,
'external_order_api_enabled' ,
2026-07-12 12:00:29 +03:30
'fee_deduct_from_gold' ,
2026-07-01 15:47:24 +03:30
'group_sms' ,
2026-06-22 01:31:47 +03:30
'has_page_earn_money' ,
'is_store' ,
2026-07-04 18:00:57 +03:30
'sms_panel' ,
2026-06-22 01:31:47 +03:30
'logo_login' , 'logo_register' , 'title_pwa' , 'title_fav' ,
2026-07-01 22:27:51 +03:30
'main_product' , 'main_wallet_products' , 'metal_type' , 'main_metal' ,
2026-06-22 01:31:47 +03:30
'montify_name' ,
'montzar_base_url' , 'montzar_closed' ,
'montzar_diff' , 'montzar_last_product_log' , 'montzar_live_price' , 'montzar_mazaneh' ,
'montzar_order_response' , 'montzar_token' ,
'montzar_truly_buy_mazaneh' , 'montzar_truly_sell_mazaneh' ,
'node_client_id' , 'node_shared_secret' ,
'payping_fin_customer_id' , 'payping_fin_sync_enabled' , 'payping_fin_token' , 'payping_fin_url' ,
2026-07-01 15:47:24 +03:30
'payping_gateway_items' , 'payping_gateway_name' ,
2026-06-22 01:31:47 +03:30
'payping_round_toman' , 'payping_start_url' , 'payping_strict_failed_withdraw' , 'payping_verify_url' ,
2026-07-14 22:03:39 +03:30
'permision__enabled' ,
2026-06-22 01:31:47 +03:30
'price_extreme_date' , 'price_provider' , 'profit_gold_api_enabled' ,
'send_to_tahesab' , 'service_charge_percentage' ,
'sse_path' ,
2026-07-12 18:35:53 +03:30
'tracking_systems' , 'tracking_systems_enabled' ,
2026-06-22 01:31:47 +03:30
'tahesab_bank_account' , 'tahesab_db' , 'tahesab_host' , 'tahesab_port' , 'tahesab_token' ,
2026-07-07 14:34:00 +03:30
'telegram_bot_token' , 'rubika_bot_token' ,
'price_channel_bale_to' , 'price_channel_telegram_to' , 'price_channel_rubika_to' ,
2026-06-22 01:31:47 +03:30
'unit' ,
'up_price' , 'down_price' ,
2026-07-01 15:47:24 +03:30
'wss_enabled' ,
2026-06-22 01:31:47 +03:30
'zaarbox_api_url' , 'zaarbox_price_key'
);
-- قابل ویرایش در پنل (can_edit = 1)
UPDATE ` settings ` SET ` can_edit ` = 1 WHERE ` key ` IN (
'name_fa' ,
'auto_active_customer' , 'balance_report_exclude_customer_id' ,
'buy_fee' , 'charge_notif' , 'close_price' ,
2026-07-08 11:09:11 +03:30
'deposit_sms_support_number' , 'deposit_support_message_text' ,
'deposit_account_holder' , 'deposit_card_number' , 'deposit_sheba' ,
'endDay' ,
2026-07-12 12:00:29 +03:30
'fee_free' , 'fee_service_charge_percentage' , 'fee_single' ,
2026-06-22 01:31:47 +03:30
'gift_for_referral' , 'gift_for_referrer' ,
'invite_link_text' ,
'jibit_verification' ,
'main_product_price' ,
'min_first_buy' , 'min_withdraw' , 'minimum_sell' ,
'montzar_mobile' , 'montzar_open_buy' , 'montzar_open_sell' ,
'montzar_password' , 'montzar_price' , 'montzar_product_id' ,
'open_register' ,
2026-07-01 22:27:51 +03:30
'referral_bonus_amount' , 'referral_id' , 'referral_limit' , 'referral_gift_on_first_order' ,
2026-06-22 01:31:47 +03:30
'register_jibit_verify' , 'register_referral_bonus_message' , 'register_referral_sms_to_referrer' ,
2026-07-12 14:08:16 +03:30
'sell_fee' , 'show_last_price' , 'show_gold_ounce_price' , 'startDay' ,
2026-06-22 01:31:47 +03:30
'support_messenger' , 'support_messenger_id' , 'support_messenger_text' ,
2026-07-08 11:09:11 +03:30
'deposit_support_message_text' , 'deposit_account_holder' , 'deposit_card_number' , 'deposit_sheba' ,
2026-07-07 14:34:00 +03:30
'text_about' , 'text_rule' ,
'price_channel_enabled' , 'price_channel_messengers' , 'price_channel_diff' ,
2026-07-08 12:45:14 +03:30
'price_channel_min_seconds' , 'price_channel_message_text' ,
'price_channel_footer_id' , 'price_channel_footer_phone' ,
2026-07-07 14:34:00 +03:30
'price_channel_footer_link' , 'change_mesghal'
2026-06-22 01:31:47 +03:30
);
2026-06-17 21:26:08 +03:30
2026-06-22 19:14:24 +03:30
-- تفکیک نهایی type (بعد از همه batchها — override روی دیتابیس موجود)
UPDATE ` settings ` SET ` type ` = 'price' WHERE ` key ` IN (
2026-07-01 15:47:24 +03:30
'fee_single' , 'buy_fee' , 'sell_fee' ,
2026-06-22 19:14:24 +03:30
'min_withdraw' , 'min_first_buy' , 'minimum_sell' ,
'up_price' , 'down_price'
);
UPDATE ` settings ` SET ` type ` = 'number' WHERE ` key ` IN (
'fee_service_charge_percentage' , 'fee_free' , 'service_charge_percentage' ,
'montzar_product_id' , 'gift_for_referrer' , 'gift_for_referral' ,
'payping_fin_customer_id' , 'tahesab_port' , 'referral_limit' ,
'deposit_sms_support_number'
);
2026-07-02 00:29:48 +03:30
-- ---------------------------------------------------------------------------
-- تثبیت نهایی fee_deduct_from_gold — آخرین override قبل از COMMIT
-- (title_fa / description / type / can_edit — value و is_active دست نمیخورند)
-- ---------------------------------------------------------------------------
UPDATE ` settings ` SET
` title_fa ` = 'اعمال مبلغ دقیق در معامله مشتری' ,
` type ` = 'switch' ,
2026-07-12 12:00:29 +03:30
` can_edit ` = 0 ,
2026-07-02 00:29:48 +03:30
` description ` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت میکند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر میشود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه میشود. خاموش (پیشفرض): در فروش کارمزد از مبلغ ریالی واریزی کم میشود (مشتری مبلغ کمتری میگیرد). در خرید کارمزد از وزن طلای واریزی کم میشود (مشتری طلای کمتری میگیرد).'
WHERE ` key ` = 'fee_deduct_from_gold' ;
2026-07-05 16:43:34 +03:30
-- حسابداری: یک select مرکزی + can_edit=0
UPDATE ` settings ` SET ` can_edit ` = 0 , ` is_active ` = 0 WHERE ` key ` IN ( 'send_to_tahesab' , 'send_to_pargar' );
UPDATE ` settings ` SET ` can_edit ` = 0 WHERE ` key ` IN (
'accounting_provider' ,
'tahesab_host' , 'tahesab_port' , 'tahesab_token' , 'tahesab_db' , 'tahesab_bank_account' ,
'pargar_username' , 'pargar_password' , 'pargar_api_token'
);
UPDATE ` settings ` SET ` title_fa ` = 'سیستم حسابداری' , ` type ` = 'select' , ` description ` = 'none,pargar,tahesab'
WHERE ` key ` = 'accounting_provider' ;
UPDATE ` settings ` SET ` description ` = 'سیستم حسابداری: none=هیچکدام، pargar=API پرگار، tahesab=ارسال خودکار تهحساب.' WHERE ` key ` = 'accounting_provider' ;
UPDATE ` settings ` SET ` value ` = 'pargar'
WHERE ` key ` = 'accounting_provider'
AND TRIM ( COALESCE ( ` value ` , '' )) IN ( '' , 'none' )
AND EXISTS ( SELECT 1 FROM ( SELECT ` value ` FROM ` settings ` WHERE ` key ` = 'send_to_pargar' ) AS s WHERE s . ` value ` IN ( 'true' , '1' , 'yes' ));
UPDATE ` settings ` SET ` value ` = 'tahesab'
WHERE ` key ` = 'accounting_provider'
AND TRIM ( COALESCE ( ` value ` , '' )) IN ( '' , 'none' )
AND EXISTS ( SELECT 1 FROM ( SELECT ` value ` FROM ` settings ` WHERE ` key ` = 'send_to_tahesab' ) AS s WHERE s . ` value ` IN ( 'true' , '1' , 'yes' ));
2026-06-15 12:13:04 +03:30
COMMIT ;
SELECT 'deploy_settings_const.sql finished' AS status ;
2026-07-02 00:29:48 +03:30
-- بررسی fee_deduct_from_gold (desc_preview باید با «مشتری دقیقاً» شروع شود):
SELECT ` key ` , ` title_fa ` , LEFT ( ` description ` , 60 ) AS desc_preview , ` can_edit ` , ` type ` , ` value `
FROM ` settings `
WHERE ` key ` = 'fee_deduct_from_gold' ;
2026-06-15 12:13:04 +03:30
-- بعد از اجرا (اختیاری):
-- SELECT `key`, `title_fa`, `value`, `type`, `is_active` FROM `settings` ORDER BY `key`;
-- SELECT `key`, `value`, `title_fa` FROM `const` ORDER BY `key`;