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-07-18 22:22:01 +03:30
-- • value / is_active ردیفهای موجود هرگز دست نخورده — فقط INSERT برای کلید جدید
-- • can_edit / title_fa / description / type هر deploy از این فایل بهروز میشوند
2026-06-15 12:13:04 +03:30
-- • schema (جدول/ستون) فقط با migrate — نه این فایل
--
2026-07-18 22:22:01 +03:30
-- ⚠️ هرگز UPDATE روی `value` برای ردیف موجود ننویس (مگر شرط خالی بودن صریح و مستند).
-- ادمین/کارفرما مقدار را در پنل تنظیم میکند؛ این فایل فقط کلید جدید با default میسازد.
--
2026-06-15 12:13:04 +03:30
-- قبل از اجرا: 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-07-24 16:49:42 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'show_home_price_when_closed' , 'false' , 'نمایش قیمت صفحه اصلی خارج از ساعت کاری' , 1 , 1 ,
'روشن: وقتی فروشگاه خارج از ساعت کاری است، قیمت صفحه اصلی اپ همچنان نمایش داده میشود و پیام «فروشگاه بسته است» نشان داده نمیشود. خرید/فروش همچنان بسته میماند. خاموش: مثل قبل، خارج از ساعت پیام بسته بودن و قیمت صفر نشان داده میشود.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_home_price_when_closed' LIMIT 1 );
2026-07-26 14:15:26 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'show_product_details' , 'true' , 'نمایش جزئیات اطلاعات محصول' , 1 , 1 ,
'روشن: بعد از انتخاب محصول در صفحه خرید/فروش، متن توضیح محصول نمایش داده میشود. خاموش: توضیح نشان داده نمیشود.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_product_details' LIMIT 1 );
2026-07-29 20:21:06 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'products_site_link_enabled' , 'false' , 'دکمه لینک خارجی در خرید/فروش' , 1 , 1 ,
'روشن: در صفحه خرید/فروش (بالای تب دستهها) یک دکمه تمامعرض نشان داده میشود که با کلیک، لینک تنظیمشده را در تب جدید مرورگر باز میکند. خاموش: دکمه مخفی است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'products_site_link_enabled' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'products_site_link_url' , '' , 'آدرس لینک دکمه خرید/فروش' , 1 , 1 ,
'آدرس کامل سایت یا صفحه خارجی (مثلاً https://example.com). با کلیک روی دکمه در اپ کاربر، همین آدرس در تب جدید مرورگر باز میشود. اگر خالی باشد، با وجود روشن بودن سوییچ، دکمه کاری انجام نمیدهد.' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'products_site_link_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'products_site_link_text' , '' , 'متن دکمه لینک خرید/فروش' , 1 , 1 ,
'متنی که روی دکمه لینک خارجی در صفحه خرید/فروش نمایش داده میشود. اگر خالی باشد، پیشفرض «ورود به سایت» همراه آیکون کره زمین نشان داده میشود.' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'products_site_link_text' LIMIT 1 );
2026-07-29 14:58:33 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'show_product_trade_status' , 'false' , 'نمایش خرید/فروش باز روی کارت محصول' , 1 , 1 ,
'روشن: روی کارت محصول برچسب خرید باز/بسته و فروش باز/بسته نمایش داده میشود. خاموش: مخفی است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_product_trade_status' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'show_product_card_meta' , 'true' , 'نمایش دسته و تحویل و مقدار روی کارت محصول' , 1 , 1 ,
'روشن: روی کارت محصول دستهبندی، وضعیت تحویل فیزیکی و مقدار/وزن نمایش داده میشود. خاموش: مخفی است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_product_card_meta' 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 );
2026-07-27 21:01:18 +03:30
-- montzar_price حذف شد — منبع همکار فقط با price_provider=montzar
2026-06-15 12:13:04 +03:30
-- 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 ` )
2026-07-19 15:53:05 +03:30
SELECT 'tracking_systems' , '[]' , 'سایتهای ریگیری' , 1 , 1 ,
'JSON لیست سایتهای ریگیری — هر مورد: id، name، url. از منوی «سایتهای ریگیری» ویرایش میشود.' , 'longtext'
2026-07-12 18:31:17 +03:30
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 ` )
2026-07-19 15:53:05 +03:30
SELECT 'tracking_systems_enabled' , 'false' , 'نمایش سایتهای ریگیری' , 1 , 1 ,
'روشن: منوی «سایتهای ریگیری» در ادمین و اپ مشتری نمایش داده میشود. خاموش: مخفی است.' , 'switch'
2026-07-12 18:35:53 +03:30
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 ` )
2026-07-18 22:22:01 +03:30
SELECT 'charge_notif' , 'true' , 'پیامک شارژ ادمین' , 1 , 1 , NULL
2026-06-15 12:13:04 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'charge_notif' LIMIT 1 );
2026-07-18 22:22:01 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'customer_direct_sms' , 'false' , 'پیامک تکی به مشتری از لیست' , 0 , 1 ,
'روشن: در لیست مشتریان دکمه ارسال پیامک تکی نمایش داده میشود. خاموش: مخفی است. فقط از صفحه دیپلوی قابل تغییر است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'customer_direct_sms' LIMIT 1 );
2026-07-21 21:23:26 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'enable_conditional_order' , 'false' , 'سفارش شرطی' , 0 , 1 ,
'روشن: قابلیت سفارش شرطی سراسری فعال است. خاموش: منو و ارزیابی اجرا نمیشود. فقط از دیپلوی قابل تغییر است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'enable_conditional_order' LIMIT 1 );
2026-08-01 17:30:14 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'enable_product_funds' , 'false' , 'قلک محصول' , 0 , 1 ,
'روشن: ساخت و مدیریت قلک per-product در اپ مشتری فعال است (یک محصول در هر قلک؛ انتقال بدون سند حسابداری). خاموش: منو و API ساخت قلک جدید در دسترس نیست. فقط از دیپلوی قابل تغییر است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'enable_product_funds' LIMIT 1 );
2026-07-23 21:41:51 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-23 22:24:39 +03:30
SELECT 'has_page_price_trigger' , 'true' , 'هشدار قیمت' , 0 , 1 ,
'روشن: منوی هشدار قیمت در اپ کاربر نمایش داده میشود. خاموش: منو و صفحه مخفی است. فقط از دیپلوی قابل تغییر است.' ,
2026-07-23 21:41:51 +03:30
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'has_page_price_trigger' LIMIT 1 );
2026-07-23 22:24:39 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-28 21:01:42 +03:30
SELECT 'has_page_notification' , 'true' , 'اعلان داخل اپ' , 0 , 1 ,
2026-07-23 22:24:39 +03:30
'روشن: زنگوله اعلان در اپ کاربر و منوی ثبت اعلان در ادمین فعال است. خاموش: مخفی است. فقط از دیپلوی قابل تغییر است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'has_page_notification' LIMIT 1 );
2026-07-22 01:05:00 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'jibit_enabled' , 'true' , 'احراز هویت جیبیت' , 0 , 1 ,
'روشن: سرویس احراز هویت جیبیت (تطبیق کد ملی/موبایل و کارت بانکی) فعال است. خاموش: هیچ فراخوانی به جیبیت انجام نمیشود و احراز هویت خودکار کار نمیکند. فقط از صفحه دیپلوی قابل تغییر است.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'jibit_enabled' LIMIT 1 );
2026-07-21 21:23:26 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'fee_conditional_order' , '0' , 'کارمزد سفارش شرطی' , 1 , 1 ,
'مبلغ ریالی که با هر بار ثبت تریگر از کیف پول ریالی مشتری کم میشود. صفر = رایگان.' ,
'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'fee_conditional_order' LIMIT 1 );
2026-07-18 22:22:01 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_order_admin' , 'true' , 'پیامک خرید/فروش به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_order_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_order_customer' , 'true' , 'پیامک خرید/فروش به مشتری' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_order_customer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_withdraw_admin' , 'true' , 'پیامک درخواست برداشت به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_withdraw_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_withdraw_otp' , 'true' , 'پیامک رمز برداشت' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_withdraw_otp' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_login_otp' , 'true' , 'پیامک رمز ورود' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_login_otp' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_gateway_charge_admin' , 'true' , 'پیامک شارژ درگاه به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_gateway_charge_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_register_customer' , 'true' , 'پیامک خوشآمد ثبتنام' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_register_customer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_register_admin' , 'true' , 'پیامک ثبتنام به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_register_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_jibit_admin' , 'true' , 'پیامک احراز هویت به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_jibit_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_bank_card_admin' , 'true' , 'پیامک کارت بانکی به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_bank_card_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_bank_card_customer' , 'true' , 'پیامک تایید کارت به مشتری' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_bank_card_customer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_fund_withdraw_admin' , 'true' , 'پیامک برداشت قلک به ادمین' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_fund_withdraw_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_fund_withdraw_customer' , 'true' , 'پیامک برداشت قلک به مشتری' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_fund_withdraw_customer' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_price_trigger' , 'true' , 'پیامک هشدار قیمت' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_price_trigger' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_wallet_alert' , 'true' , 'پیامک هشدار اعتبار پنل پیامک' , 1 , 1 , NULL
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_wallet_alert' LIMIT 1 );
2026-08-04 18:59:38 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
SELECT 'sms_notif_support_admin' , 'true' , 'پیامک پیام پشتیبانی به ادمین' , 1 , 1 ,
'روشن: وقتی مشتری اولین پیام خواندهنشده را در چت پشتیبانی میفرستد و ادمین همان اتاق را باز و visible ندارد، پیامک به ادمینهای دارای «ارسال پیامک» میرود. خاموش: اعلان پیامک چت نمیرود.'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'sms_notif_support_admin' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chat_webhook_secret' , '' , 'رمز وبهوک چت' , 0 , 1 ,
'رمز مشترک بین لاراول و سرور چت برای اعلان پیام پشتیبانی. فقط سرور؛ در صورت خالی بودن بهصورت خودکار ساخته میشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chat_webhook_secret' LIMIT 1 );
2026-06-15 12:13:04 +03:30
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-08-03 11:51:16 +03:30
-- default: true — وقتی montzar روشن است پاداش معرفی از همکار خرید میشود؛ خاموش = واریز محلی مثل قبل
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'referral_gift_buy_from_montzar' , 'true' , 'خرید پاداش معرفی از همکار' , 1 , 1 ,
'روشن: اگر منبع قیمت montzar باشد، قبل از واریز پاداش معرف/معرفشونده همان وزن از همکار خرید میشود؛ شکست خرید = واریز نمیشود. خاموش: مثل قبل فقط به کیف واریز میشود بدون خرید از همکار.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'referral_gift_buy_from_montzar' 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 ` )
2026-07-23 20:24:58 +03:30
SELECT 'accounting_provider' , 'none' , 'سیستم حسابداری' , 0 , 1 , 'none,pargar,tahesab,zarin'
2026-07-05 16:43:34 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'accounting_provider' LIMIT 1 );
2026-07-23 20:24:58 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'zarin_api' , '' , 'آدرس API زرین' , 0 , 1 , 'آدرس پایه وبسرویس زرین (بدون /ZarrinService/accounting).' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_api' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'zarin_token' , '' , 'توکن زرین' , 0 , 1 , 'توکن مکمل API زرین که در نرمافزار زرین تعریف میشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_token' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-28 19:08:04 +03:30
SELECT 'zarin_noe_kar' , '16' , 'نوع کار پیشفرض زرین' , 0 , 1 , 'کد noeKar هنگام ساخت کار ساخته در زرین. مقدار ۱۶ معمولاً گرمی است و برای sabtSanadTedadi مناسب نیست.' , 'number'
2026-07-23 20:24:58 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_noe_kar' LIMIT 1 );
2026-07-28 19:08:04 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'zarin_noe_kar_tedadi' , '17' , 'نوع کار تعدادی زرین' , 0 , 1 , 'noeKar برای سند تعدادی (سکه/شمش/گوی/مکعب). روی زرین معمولاً ۱۷=سکه-تعدادی یا ۱۸=اجرت تعدادی. اگر خالی/نامعتبر باشد کد از ۱۷ استفاده میکند.' , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_noe_kar_tedadi' LIMIT 1 );
2026-07-23 20:24:58 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'zarin_gorohe_kar' , '52' , 'گروه کار پیشفرض زرین' , 0 , 1 , 'کد gorooheKar هنگام ساخت/جستجوی کار در زرین. برای جداسازی چند پنل روی یک زرین، برای هر پنل مقدار متفاوت بگذارید.' , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_gorohe_kar' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-28 14:02:23 +03:30
SELECT 'zarin_name_g' , 'مشتری نقدی (خریدار)' , 'نام گروه حساب مشتریان زرین' , 0 , 1 , 'پارامتر nameG در addhesab — گروه حساب زرین. برای اپ خانگی: مشتری نقدی (خریدار) = گروه ۶. گروه همکار استفاده نشود (مظنه متفاوت است).' , 'text'
2026-07-23 20:24:58 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_name_g' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'zarin_uid_prefix' , '' , 'پیشوند عددی uid زرین' , 0 , 1 , 'فقط عدد. وقتی چند پنل یک زرین دارند باید متفاوت باشد تا uid تکراری نشود.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'zarin_uid_prefix' LIMIT 1 );
2026-07-05 16:43:34 +03:30
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-07-20 15:52:42 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'pargar_item_id_rial' , '0' , 'کد کالای ریال پرگار' , 0 , 1 ,
'کد کالا برای اسناد واریز/برداشت ریالی در پرگار. صفر = استفاده از کد طلا با وزن صفر.' , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'pargar_item_id_rial' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'pargar_item_id_gold' , '11' , 'کد کالای طلا پرگار' , 0 , 1 ,
'کد کالای طلا (کیف اصلی / آبشده) در پرگار برای اسناد وزندار.' , 'number'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'pargar_item_id_gold' 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 );
-- ===========================================================================
-- ارسال قیمت به کانالهای پیامرسان (بله / تلگرام / روبیکا)
2026-08-03 11:51:16 +03:30
-- • دسترسی (can_edit=0): price_channel_access — تا روشن نشود، گروه کانال در تنظیمات عادی مخفی است
2026-07-07 14:34:00 +03:30
-- • محتوا (can_edit=1): روشن/خاموش، انتخاب پیامرسان، اختلاف، خطوط پایانی، فاصله
-- • سیستمی (can_edit=0): مقصد ارسال هر پیامرسان (آیدی چنل/گروه)
-- • توکنها همان bale_bot_token / telegram_bot_token / rubika_bot_token (can_edit=0)
-- ===========================================================================
2026-08-03 11:51:16 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'price_channel_access' , 'false' , 'دسترسی ارسال قیمت به کانال' , 0 , 1 ,
'روشن: گروه «ارسال قیمت به کانال» در تنظیمات عادی پنل دیده میشود. خاموش: مخفی است (فقط از تنظیمات پیشرفته).' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'price_channel_access' 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_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-07-30 15:46:11 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'show_to_users_chat' , 'deactivate' , 'نمایش چت به کاربران' , 0 , 1 ,
2026-07-30 20:42:56 +03:30
'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیشنیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است و سوییچ «چت پشتیبانی» (has_chat) از تنظیمات عادی هم برداشته میشود.' , 'switch'
2026-07-30 15:46:11 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'show_to_users_chat' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chat_api' , '' , 'API چت' , 0 , 1 ,
'هاست سرور چت جدا (بدون https)، مثلاً chat.example.ir — برای WS و ساخت روم.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chat_api' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chat_api_key' , '' , 'کلید API چت' , 0 , 1 ,
'کلید API سرور چت جدا.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chat_api_key' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chat_upload_url' , '' , 'آدرس آپلود فایل چت' , 0 , 1 ,
'URL کامل آپلود مدیا برای چت پشتیبانی.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chat_upload_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'chat_download_url' , '' , 'آدرس دانلود فایل چت' , 0 , 1 ,
'پایهٔ URL دانلود/نمایش فایلهای چت پشتیبانی.' , 'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'chat_download_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'has_chat' , 'true' , 'چت پشتیبانی' , 1 , 1 ,
2026-07-30 20:42:56 +03:30
'روشن: چت پشتیبانی در اپ مشتری نمایش داده میشود (فقط وقتی show_to_users_chat هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.' , 'switch'
2026-07-30 15:46:11 +03:30
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'has_chat' 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-08-01 16:47:26 +03:30
-- ---------------------------------------------------------------------------
-- درگاه شارژ آنلاین (Montify / external_payment) — فقط تنظیمات پیشرفته (can_edit=0)
-- پیشفرض enabled خاموش؛ value ردیف موجود دست نخورده میماند.
-- ---------------------------------------------------------------------------
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_enabled' , 'false' , 'فعالسازی شارژ آنلاین' , 0 , 1 ,
'روشن: در صورت کامل بودن BASE_URL و client_id و client_secret و gateway، دکمه پرداخت آنلاین در اپ نمایش داده میشود. خاموش: فقط واریز دستی.' ,
'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_enabled' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'wallet_payment_provider' , 'none' , 'نوع درگاه شارژ آنلاین' , 0 , 1 ,
'none=خاموش، montify=پارتنر Montify|none,montify' ,
'select'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'wallet_payment_provider' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_base_url' , '' , 'آدرس API درگاه (BASE_URL)' , 0 , 1 ,
'آدرس پایه API سرویس Montify (بدون اسلش انتهایی)، مثلاً https://node.example.com — فقط سرور؛ در اپ کاربر ارسال نمیشود.' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_base_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_client_id' , '' , 'شناسه کلاینت (client_id)' , 0 , 1 ,
'شناسه partner (client_id) — فقط سرور؛ در اپ کاربر یا پاسخ get_settings عمومی نیست.' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_client_id' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_client_secret' , '' , 'رمز کلاینت (client_secret)' , 0 , 1 ,
'رمز مخفی partner (client_secret) — فقط سرور. در فرانت و Network تب کاربر دیده نمیشود.' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_client_secret' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_gateway' , 'zarinpall' , 'نام درگاه داخل Montify' , 0 , 1 ,
'نام درگاه فعال داخل Montify: zarinpall، zibal، payping یا sepal|zarinpall,zibal,payping,sepal' ,
'select'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_gateway' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_return_url' , '' , 'آدرس برگشت (return_url)' , 0 , 1 ,
'آدرس صفحه فرانت بعد از پرداخت. خالی = دامنه سایت + /wallet/payment-result' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_return_url' LIMIT 1 );
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'external_payment_webhook_url' , '' , 'آدرس Webhook' , 0 , 1 ,
'آدرس بکاند برای webhook (شارژ قطعی کیف). خالی = مسیر پیشفرض سرور.' ,
'text'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'external_payment_webhook_url' LIMIT 1 );
2026-06-15 12:13:04 +03:30
-- درگاه — کلیدهای اختیاری payping
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` )
2026-08-01 16:47:26 +03:30
SELECT 'payping_fin_sync_enabled' , 'false' , 'همگامسازی fin' , 0 , 1 , NULL
2026-06-15 12:13:04 +03:30
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 );
2026-07-28 10:33:11 +03:30
-- fee_single حذف شد — اختلاف فقط buy_fee / sell_fee (خالی = صفر)
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 '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 );
2026-07-19 15:53:05 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
SELECT 'min_deposit' , '1000000' , 'حداقل واریز کیف پول (ریال)' , 1 , 1 ,
'حداقل مبلغ واریز به کیف پول (ریال). مبالغ کمتر در اپ و درگاه پذیرفته نمیشوند.' ,
'price'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'min_deposit' 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_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 ` )
2026-07-23 11:55:18 +03:30
SELECT 'referral_bonus_amount' , '' , 'مقدار پاداش معرف' , 0 , 1 , NULL , 'text'
2026-06-15 12:13:04 +03:30
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 ` ) = '' );
2026-07-23 22:24:39 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'هشدار قیمت' WHERE ` key ` = 'has_page_price_trigger' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
2026-06-15 12:13:04 +03:30
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 ` ) = '' );
2026-07-19 15:53:05 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'حداقل واریز کیف پول (ریال)' WHERE ` key ` = 'min_deposit' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
2026-06-15 12:13:04 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'حداقل اولین خرید (ریال)' WHERE ` key ` = 'min_first_buy' AND ( ` title_fa ` IS NULL OR TRIM ( ` title_fa ` ) = '' );
2026-07-19 15:53:05 +03:30
UPDATE ` settings ` SET ` value ` = '1000000' WHERE ` key ` = 'min_deposit' AND ( ` value ` IS NULL OR TRIM ( ` value ` ) = '' );
2026-06-15 12:13:04 +03:30
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 ` = '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-23 20:24:58 +03:30
UPDATE ` settings ` SET ` type ` = 'select' , ` description ` = 'none,pargar,tahesab,zarin' 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' ,
2026-07-22 01:05:00 +03:30
'jibit_enabled' , 'jibit_verification' , 'register_jibit_verify' , 'open_register' , 'auto_active_customer' ,
2026-07-26 14:15:26 +03:30
'close_price' , 'show_last_price' , 'show_gold_ounce_price' , 'show_home_price_when_closed' , 'show_product_details' ,
2026-07-29 14:58:33 +03:30
'show_product_trade_status' , 'show_product_card_meta' ,
2026-07-29 20:21:06 +03:30
'products_site_link_enabled' ,
2026-07-01 22:27:51 +03:30
'fee_deduct_from_gold' ,
2026-07-20 21:29:30 +03:30
'require_zero_main_gold_before_other_buy' ,
2026-07-05 16:43:34 +03:30
'profit_gold_api_enabled' , 'payping_round_toman' , 'payping_strict_failed_withdraw' ,
2026-07-23 22:24:39 +03:30
'has_page_earn_money' , 'has_page_price_trigger' , 'has_page_notification' , 'charge_notif' , 'group_sms' , 'sms_panel' , 'customer_direct_sms' ,
2026-08-01 17:30:14 +03:30
'enable_conditional_order' , 'enable_product_funds' ,
2026-07-18 22:22:01 +03:30
'sms_notif_order_admin' , 'sms_notif_order_customer' ,
'sms_notif_withdraw_admin' , 'sms_notif_withdraw_otp' , 'sms_notif_login_otp' ,
'sms_notif_gateway_charge_admin' , 'sms_notif_register_customer' , 'sms_notif_register_admin' ,
'sms_notif_jibit_admin' , 'sms_notif_bank_card_admin' , 'sms_notif_bank_card_customer' ,
'sms_notif_fund_withdraw_admin' , 'sms_notif_fund_withdraw_customer' ,
2026-08-04 18:59:38 +03:30
'sms_notif_price_trigger' , 'sms_notif_wallet_alert' , 'sms_notif_support_admin' ,
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-08-03 11:51:16 +03:30
'referral_gift_on_first_order' , 'referral_gift_buy_from_montzar' ,
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-28 10:33:11 +03:30
'buy_fee' , 'sell_fee' ,
2026-07-19 15:53:05 +03:30
'min_withdraw' , 'min_deposit' , '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-07-20 15:52:42 +03:30
'deposit_sms_support_number' ,
'pargar_item_id_rial' , 'pargar_item_id_gold'
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-07-20 15:52:42 +03:30
'pargar_item_id_rial' , 'pargar_item_id_gold' ,
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-29 20:21:06 +03:30
'liman_token' ,
'products_site_link_url' , 'products_site_link_text'
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-07-20 21:29:30 +03:30
INSERT INTO ` settings ` ( ` key ` , ` value ` , ` title_fa ` , ` can_edit ` , ` is_active ` , ` description ` , ` type ` )
2026-07-21 12:36:59 +03:30
SELECT 'require_zero_main_gold_before_other_buy' , 'true' , 'الزام صفر بودن کیف اصلی قبل از خرید محصول دیگر' , 1 , 1 ,
2026-07-20 21:29:30 +03:30
'روشن: اگر مانده طلای کیف اصلی صفر یا زیر صفر باشد (بدهی)، مشتری ابتدا باید آبشده/مانده کیف اصلی را صفر کند و بعد میتواند محصول دیگر بخرد. خاموش: بدون این محدودیت. معامله خودِ محصولات کیف اصلی همیشه مجاز است.' , 'switch'
WHERE NOT EXISTS ( SELECT 1 FROM ` settings ` WHERE ` key ` = 'require_zero_main_gold_before_other_buy' 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 ` )
2026-07-19 15:53:05 +03:30
SELECT 'banner_enabled' , 'true' , 'نمایش بنرها' , 1 , 1 ,
'روشن: منوی «بنرها» در ادمین و اسلایدر صفحه اصلی اپ مشتری نمایش داده میشود. خاموش: مخفی است (محتوای بنر از همان منو مدیریت میشود).' , 'switch'
2026-06-22 01:31:47 +03:30
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' ,
2026-07-23 21:41:51 +03:30
'has_page_fund' , 'has_page_permission' , 'has_page_physical_gold' ,
2026-07-30 15:46:11 +03:30
'product_update_price_on_list' , 'product_auto_close_open_on_list' ,
2026-06-15 12:13:04 +03:30
'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' ,
2026-07-27 21:01:18 +03:30
'montzar_price' ,
2026-07-28 10:33:11 +03:30
'fee_single' ,
2026-07-01 15:47:24 +03:30
'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%' ;
2026-07-27 21:01:18 +03:30
UPDATE ` settings ` SET ` description ` = 'منبع فعال قیمت. montzar = همکار|montzar,zaarbox,main_product'
2026-06-15 12:13:04 +03:30
WHERE ` key ` = 'price_provider' ;
UPDATE ` settings ` SET
` type ` = 'switch' ,
` title_fa ` = 'کد معرف اجباری' ,
` description ` = 'روشن = اجباری در ثبتنام | خاموش = اختیاری'
WHERE ` key ` = 'referral_id' ;
UPDATE ` settings ` SET ` type ` = 'switch'
2026-08-03 11:51:16 +03:30
WHERE ` key ` IN ( 'register_referral_sms_to_referrer' , 'register_referral_bonus_message' , 'referral_gift_on_first_order' , 'referral_gift_buy_from_montzar' );
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' ;
2026-07-18 22:22:01 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از ثبتنام کاربر میتواند وارد اپ شود (بدون تأیید دستی ادمین). خاموش: ورود فقط بعد از فعالسازی دستی در پنل. این سوییچ اجازهٔ خرید/فروش نمیدهد — معامله فقط بعد از احراز هویت ممکن است.' WHERE ` key ` = 'auto_active_customer' ;
UPDATE ` settings ` SET ` title_fa ` = 'فعالسازی خودکار پس از ثبتنام' WHERE ` key ` = 'auto_active_customer' ;
2026-06-15 12:13:04 +03:30
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' ;
2026-07-27 21:01:18 +03:30
UPDATE ` settings ` SET ` description ` = 'منبع دریافت قیمت لحظهای برای اپ کاربر و همگامسازی محصولات. مقدار montzar = قیمت از همکار (Montzar).|montzar,zaarbox,main_product' WHERE ` key ` = 'price_provider' ;
2026-06-15 12:13:04 +03:30
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-07-24 16:49:42 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی فروشگاه خارج از ساعت کاری است، قیمت صفحه اصلی اپ همچنان نمایش داده میشود و پیام «فروشگاه بسته است» نشان داده نمیشود. خرید/فروش همچنان بسته میماند. خاموش: مثل قبل، خارج از ساعت پیام بسته بودن و قیمت صفر نشان داده میشود.' WHERE ` key ` = 'show_home_price_when_closed' ;
2026-07-26 14:15:26 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از انتخاب محصول در صفحه خرید/فروش، متن توضیح محصول نمایش داده میشود. خاموش: توضیح نشان داده نمیشود.' WHERE ` key ` = 'show_product_details' ;
2026-07-29 20:21:06 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: در صفحه خرید/فروش (بالای تب دستهها) یک دکمه تمامعرض نشان داده میشود که با کلیک، لینک تنظیمشده را در تب جدید مرورگر باز میکند. خاموش: دکمه مخفی است.' WHERE ` key ` = 'products_site_link_enabled' ;
UPDATE ` settings ` SET ` description ` = 'آدرس کامل سایت یا صفحه خارجی (مثلاً https://example.com). با کلیک روی دکمه در اپ کاربر، همین آدرس در تب جدید مرورگر باز میشود. اگر خالی باشد، با وجود روشن بودن سوییچ، دکمه کاری انجام نمیدهد.' WHERE ` key ` = 'products_site_link_url' ;
UPDATE ` settings ` SET ` description ` = 'متنی که روی دکمه لینک خارجی در صفحه خرید/فروش نمایش داده میشود. اگر خالی باشد، پیشفرض «ورود به سایت» همراه آیکون کره زمین نشان داده میشود.' WHERE ` key ` = 'products_site_link_text' ;
2026-07-29 14:58:33 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: روی کارت محصول برچسب خرید باز/بسته و فروش باز/بسته نمایش داده میشود. خاموش: مخفی است.' WHERE ` key ` = 'show_product_trade_status' ;
UPDATE ` settings ` SET ` description ` = 'روشن: روی کارت محصول دستهبندی، وضعیت تحویل فیزیکی و مقدار/وزن نمایش داده میشود. خاموش: مخفی است.' WHERE ` key ` = 'show_product_card_meta' ;
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-28 10:33:11 +03:30
UPDATE ` settings ` SET ` description ` = 'مبلغ اضافه (ریال) روی قیمت پایه برای سمت خرید. خالی یا صفر = بدون اختلاف.' WHERE ` key ` = 'buy_fee' ;
UPDATE ` settings ` SET ` description ` = 'مبلغ کسر (ریال) از قیمت پایه برای سمت فروش. خالی یا صفر = بدون اختلاف.' WHERE ` key ` = 'sell_fee' ;
2026-06-30 21:44:39 +03:30
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' ;
2026-07-19 15:53:05 +03:30
UPDATE ` settings ` SET ` description ` = 'حداقل مبلغ واریز به کیف پول (ریال). مبالغ کمتر در اپ و درگاه پذیرفته نمیشوند.' WHERE ` key ` = 'min_deposit' ;
2026-06-15 12:13:04 +03:30
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 ` = 'متن کامل قوانین و مقررات استفاده از اپ که در صفحه قوانین به کاربر نشان داده میشود. HTML ساده مجاز است.' WHERE ` key ` = 'text_rule' ;
UPDATE ` settings ` SET ` description ` = 'متن «درباره ما» شامل معرفی مجموعه، راههای ارتباطی و توضیح خدمات. در صفحه مربوطه در اپ کاربر نمایش داده میشود.' WHERE ` key ` = 'text_about' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وارد کردن کد معرف در ثبتنام اجباری است. خاموش: کد معرف اختیاری است.' WHERE ` key ` = 'referral_id' ;
2026-08-03 11:51:16 +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-08-03 11:51:16 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'خرید پاداش معرفی از همکار' ,
` can_edit ` = 1 ,
` type ` = 'switch' ,
` description ` = 'روشن: اگر منبع قیمت montzar باشد، قبل از واریز پاداش معرف/معرفشونده همان وزن از همکار خرید میشود؛ شکست خرید = واریز نمیشود. خاموش: مثل قبل فقط به کیف واریز میشود بدون خرید از همکار.'
WHERE ` key ` = 'referral_gift_buy_from_montzar' ;
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' ;
2026-07-23 22:24:39 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: منوی هشدار قیمت در اپ کاربر نمایش داده میشود. خاموش: منو و صفحه مخفی است. فقط از دیپلوی قابل تغییر است.' WHERE ` key ` = 'has_page_price_trigger' ;
UPDATE ` settings ` SET ` description ` = 'روشن: زنگوله اعلان در اپ کاربر و منوی ثبت اعلان در ادمین فعال است. خاموش: مخفی است. فقط از دیپلوی قابل تغییر است.' WHERE ` key ` = 'has_page_notification' ;
UPDATE ` settings ` SET ` title_fa ` = 'اعلان داخل اپ' WHERE ` key ` = 'has_page_notification' ;
2026-08-03 11:51:16 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'دسترسی ارسال قیمت به کانال' ,
` type ` = 'switch' ,
` can_edit ` = 0 ,
` description ` = 'روشن: گروه «ارسال قیمت به کانال» در تنظیمات عادی پنل دیده میشود. خاموش: مخفی است (فقط از تنظیمات پیشرفته).'
WHERE ` key ` = 'price_channel_access' ;
2026-07-28 21:01:42 +03:30
-- محصول: اعلان داخل اپ پیشفرض روشن برای همه دیپلویها (can_edit=0؛ فقط از دیپلوی)
UPDATE ` settings ` SET ` value ` = 'true' WHERE ` key ` = 'has_page_notification' ;
2026-06-15 12:13:04 +03:30
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' ;
2026-07-19 15:53:05 +03:30
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-19 15:53:05 +03:30
UPDATE ` settings ` SET ` description ` = 'JSON لیست سایتهای ریگیری — هر مورد: id، name، url. از منوی «سایتهای ریگیری» ویرایش میشود.' WHERE ` key ` = 'tracking_systems' ;
UPDATE ` settings ` SET ` description ` = 'روشن: منوی «سایتهای ریگیری» در ادمین و اپ مشتری نمایش داده میشود. خاموش: مخفی است.' 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' ;
2026-07-18 22:22:01 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از شارژ یا کسر کیف توسط ادمین، پیامک به مشتری و ادمینهای دارای «ارسال پیامک» میرود. خاموش: هیچکدام ارسال نمیشود.' WHERE ` key ` = 'charge_notif' ;
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از خرید یا فروش موفق، پیامک خلاصه معامله به ادمینهای دارای «ارسال پیامک» میرود. خاموش: ادمین پیامک معامله نمیگیرد.' WHERE ` key ` = 'sms_notif_order_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از خرید یا فروش موفق، پیامک رسید (مقدار، مبلغ، موجودی) به مشتری میرود. خاموش: مشتری پیامک معامله نمیگیرد.' WHERE ` key ` = 'sms_notif_order_customer' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی مشتری درخواست برداشت ریالی میدهد، پیامک به ادمینهای دارای «ارسال پیامک» میرود. خاموش: اعلان برداشت به ادمین نمیرود.' WHERE ` key ` = 'sms_notif_withdraw_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: رمز یکبارمصرف برداشت برای مشتری پیامک میشود. خاموش: رمز پیامک نمیشود (برداشت با OTP عملاً کار نمیکند). خاموش کردن توصیه نمیشود.' WHERE ` key ` = 'sms_notif_withdraw_otp' ;
UPDATE ` settings ` SET ` description ` = 'روشن: رمز یکبارمصرف ورود برای کاربر/مشتری پیامک میشود. خاموش: ورود با OTP ممکن نیست. خاموش کردن توصیه نمیشود.' WHERE ` key ` = 'sms_notif_login_otp' ;
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از شارژ موفق کیف از درگاه پرداخت، پیامک به ادمینهای دارای «ارسال پیامک» میرود. خاموش: اعلان شارژ درگاه نمیرود.' WHERE ` key ` = 'sms_notif_gateway_charge_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از ثبتنام، پیامک خوشآمد (نام کاربری و لینک ورود) به مشتری میرود. خاموش: پیامک خوشآمد ارسال نمیشود.' WHERE ` key ` = 'sms_notif_register_customer' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی کسی با کد معرف ثبتنام میکند و پیامک به معرف خاموش است، اعلان ثبتنام به ادمین میرود. خاموش: این اعلان ادمین نمیرود.' WHERE ` key ` = 'sms_notif_register_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: نتیجه احراز هویت جیبیت در ثبتنام برای ادمینهای دارای «ارسال پیامک» پیامک میشود. خاموش: اعلان جیبیت نمیرود.' WHERE ` key ` = 'sms_notif_jibit_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی مشتری کارت بانکی جدید ثبت میکند یا احراز کارت ناموفق است، پیامک به ادمین میرود. خاموش: اعلان کارت به ادمین نمیرود.' WHERE ` key ` = 'sms_notif_bank_card_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از تایید کارت بانکی توسط ادمین، پیامک تایید به مشتری میرود. خاموش: مشتری از تایید کارت پیامک نمیگیرد.' WHERE ` key ` = 'sms_notif_bank_card_customer' ;
UPDATE ` settings ` SET ` description ` = 'روشن: برداشت از قلک (ریالی یا طلایی) برای ادمینهای دارای «ارسال پیامک» پیامک میشود. خاموش: اعلان برداشت قلک به ادمین نمیرود.' WHERE ` key ` = 'sms_notif_fund_withdraw_admin' ;
UPDATE ` settings ` SET ` description ` = 'روشن: بعد از برداشت از قلک، پیامک رسید به مشتری میرود. خاموش: مشتری پیامک برداشت قلک نمیگیرد.' WHERE ` key ` = 'sms_notif_fund_withdraw_customer' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی هشدار قیمت مشتری (اقدام=پیامک) فعال میشود، پیامک به مشتری میرود. خاموش: هشدار قیمت پیامک نمیفرستد.' WHERE ` key ` = 'sms_notif_price_trigger' ;
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی اعتبار کیف پول پنل پیامک صفر یا منفی شود، هشدار به سوپرادمین و ادمینهای دارای «ارسال پیامک» میرود. خاموش: این هشدار نمیرود.' WHERE ` key ` = 'sms_notif_wallet_alert' ;
2026-08-04 18:59:38 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: وقتی مشتری اولین پیام خواندهنشده را در چت پشتیبانی میفرستد و ادمین همان اتاق را باز و visible ندارد، پیامک به ادمینهای دارای «ارسال پیامک» میرود. خاموش: اعلان پیامک چت نمیرود.' WHERE ` key ` = 'sms_notif_support_admin' ;
UPDATE ` settings ` SET ` description ` = 'رمز مشترک بین لاراول و سرور چت برای اعلان پیام پشتیبانی. فقط سرور؛ در صورت خالی بودن بهصورت خودکار ساخته میشود.' WHERE ` key ` = 'chat_webhook_secret' ;
2026-07-18 22:22:01 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: در لیست مشتریان دکمه ارسال پیامک تکی نمایش داده میشود و ادمین میتواند برای هر مشتری متن دلخواه بفرستد. خاموش: دکمه مخفی است. فقط از صفحه دیپلوی تغییر میکند.' WHERE ` key ` = 'customer_direct_sms' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک تکی به مشتری از لیست' WHERE ` key ` = 'customer_direct_sms' ;
2026-07-22 01:05:00 +03:30
UPDATE ` settings ` SET ` description ` = 'روشن: سرویس احراز هویت جیبیت (تطبیق کد ملی/موبایل و کارت بانکی) فعال است. خاموش: هیچ فراخوانی به جیبیت انجام نمیشود و احراز هویت خودکار کار نمیکند. فقط از صفحه دیپلوی قابل تغییر است.' WHERE ` key ` = 'jibit_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'احراز هویت جیبیت' WHERE ` key ` = 'jibit_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'سفارش شرطی' WHERE ` key ` = 'enable_conditional_order' ;
2026-08-01 17:30:14 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'قلک محصول' WHERE ` key ` = 'enable_product_funds' ;
UPDATE ` settings ` SET ` description ` = 'روشن: ساخت و مدیریت قلک per-product در اپ مشتری فعال است (یک محصول در هر قلک؛ انتقال بدون سند حسابداری). خاموش: منو و API ساخت قلک جدید در دسترس نیست. فقط از دیپلوی قابل تغییر است.' WHERE ` key ` = 'enable_product_funds' ;
2026-06-15 12:13:04 +03:30
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-07-20 21:29:30 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'الزام صفر بودن کیف اصلی قبل از خرید محصول دیگر' ,
` type ` = 'switch' ,
2026-07-21 12:36:59 +03:30
` can_edit ` = 1 ,
2026-07-20 21:29:30 +03:30
` description ` = 'روشن: اگر مانده طلای کیف اصلی صفر یا زیر صفر باشد (بدهی)، مشتری ابتدا باید آبشده/مانده کیف اصلی را صفر کند و بعد میتواند محصول دیگر بخرد. خاموش: بدون این محدودیت. معامله خودِ محصولات کیف اصلی همیشه مجاز است.'
WHERE ` key ` = 'require_zero_main_gold_before_other_buy' ;
UPDATE ` settings ` SET ` title_fa ` = 'الزام صفر بودن کیف اصلی قبل از خرید محصول دیگر' WHERE ` key ` = 'require_zero_main_gold_before_other_buy' ;
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' ;
2026-07-18 22:22:01 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'فعالسازی خودکار پس از ثبتنام' WHERE ` key ` = 'auto_active_customer' ;
2026-06-28 16:02:15 +03:30
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' ;
2026-07-18 22:22:01 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'پیامک خرید/فروش به ادمین' WHERE ` key ` = 'sms_notif_order_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک خرید/فروش به مشتری' WHERE ` key ` = 'sms_notif_order_customer' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک درخواست برداشت به ادمین' WHERE ` key ` = 'sms_notif_withdraw_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک رمز برداشت' WHERE ` key ` = 'sms_notif_withdraw_otp' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک رمز ورود' WHERE ` key ` = 'sms_notif_login_otp' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک شارژ درگاه به ادمین' WHERE ` key ` = 'sms_notif_gateway_charge_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک خوشآمد ثبتنام' WHERE ` key ` = 'sms_notif_register_customer' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک ثبتنام به ادمین' WHERE ` key ` = 'sms_notif_register_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک احراز هویت به ادمین' WHERE ` key ` = 'sms_notif_jibit_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک کارت بانکی به ادمین' WHERE ` key ` = 'sms_notif_bank_card_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک تایید کارت به مشتری' WHERE ` key ` = 'sms_notif_bank_card_customer' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک برداشت قلک به ادمین' WHERE ` key ` = 'sms_notif_fund_withdraw_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک برداشت قلک به مشتری' WHERE ` key ` = 'sms_notif_fund_withdraw_customer' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک هشدار قیمت' WHERE ` key ` = 'sms_notif_price_trigger' ;
UPDATE ` settings ` SET ` title_fa ` = 'پیامک هشدار اعتبار پنل پیامک' WHERE ` key ` = 'sms_notif_wallet_alert' ;
2026-08-04 18:59:38 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'پیامک پیام پشتیبانی به ادمین' WHERE ` key ` = 'sms_notif_support_admin' ;
UPDATE ` settings ` SET ` title_fa ` = 'رمز وبهوک چت' WHERE ` key ` = 'chat_webhook_secret' ;
2026-06-28 16:02:15 +03:30
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 ` = '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-07-30 15:46:11 +03:30
UPDATE ` settings ` SET
` title_fa ` = 'چت پشتیبانی' ,
` type ` = 'switch' ,
` can_edit ` = 1 ,
2026-07-30 20:42:56 +03:30
` description ` = 'روشن: چت پشتیبانی در اپ مشتری نمایش داده میشود (فقط وقتی show_to_users_chat هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.'
2026-07-30 15:46:11 +03:30
WHERE ` key ` = 'has_chat' ;
UPDATE ` settings ` SET
` title_fa ` = 'نمایش چت به کاربران' ,
` type ` = 'switch' ,
2026-07-30 20:42:56 +03:30
` description ` = 'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیشنیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است و سوییچ «چت پشتیبانی» (has_chat) از تنظیمات عادی هم برداشته میشود.' ,
2026-07-30 15:46:11 +03:30
` can_edit ` = 0
WHERE ` key ` = 'show_to_users_chat' ;
UPDATE ` settings ` SET ` title_fa ` = 'API چت' , ` type ` = 'text' , ` can_edit ` = 0
WHERE ` key ` = 'chat_api' ;
UPDATE ` settings ` SET ` title_fa ` = 'کلید API چت' , ` type ` = 'text' , ` can_edit ` = 0
WHERE ` key ` = 'chat_api_key' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس آپلود فایل چت' , ` type ` = 'text' , ` can_edit ` = 0
WHERE ` key ` = 'chat_upload_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس دانلود فایل چت' , ` type ` = 'text' , ` can_edit ` = 0
WHERE ` key ` = 'chat_download_url' ;
2026-06-28 16:02:15 +03:30
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' ;
2026-07-23 22:24:39 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'هشدار قیمت' WHERE ` key ` = 'has_page_price_trigger' ;
2026-06-28 16:02:15 +03:30
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' ;
2026-07-20 21:29:30 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'الزام صفر بودن کیف اصلی قبل از خرید محصول دیگر' WHERE ` key ` = 'require_zero_main_gold_before_other_buy' ;
2026-06-28 16:02:15 +03:30
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' ;
2026-07-19 15:53:05 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'حداقل واریز کیف پول (ریال)' WHERE ` key ` = 'min_deposit' ;
UPDATE ` settings ` SET ` can_edit ` = 1 WHERE ` key ` = 'min_deposit' ;
2026-06-28 16:02:15 +03:30
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 ` = 'کد محصول همکار' 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-08-03 11:51:16 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'خرید پاداش معرفی از همکار' WHERE ` key ` = 'referral_gift_buy_from_montzar' ;
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-07-24 16:49:42 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نمایش قیمت صفحه اصلی خارج از ساعت کاری' WHERE ` key ` = 'show_home_price_when_closed' ;
2026-07-26 14:15:26 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نمایش جزئیات اطلاعات محصول' WHERE ` key ` = 'show_product_details' ;
2026-07-29 20:21:06 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'دکمه لینک خارجی در خرید/فروش' WHERE ` key ` = 'products_site_link_enabled' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس لینک دکمه خرید/فروش' WHERE ` key ` = 'products_site_link_url' ;
UPDATE ` settings ` SET ` title_fa ` = 'متن دکمه لینک خرید/فروش' WHERE ` key ` = 'products_site_link_text' ;
2026-07-29 14:58:33 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نمایش خرید/فروش باز روی کارت محصول' WHERE ` key ` = 'show_product_trade_status' ;
UPDATE ` settings ` SET ` title_fa ` = 'نمایش دسته و تحویل و مقدار روی کارت محصول' WHERE ` key ` = 'show_product_card_meta' ;
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-19 15:53:05 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'سایتهای ریگیری' WHERE ` key ` = 'tracking_systems' ;
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' ,
2026-07-19 15:53:05 +03:30
'bale_bot_token' ,
2026-06-22 01:31:47 +03:30
'chart_id' , 'chart_use_local_data' ,
'external_order_api_enabled' ,
2026-08-01 16:47:26 +03:30
'external_payment_enabled' ,
'external_payment_base_url' ,
'external_payment_client_id' ,
'external_payment_client_secret' ,
'external_payment_gateway' ,
'external_payment_return_url' ,
'external_payment_webhook_url' ,
'wallet_payment_provider' ,
2026-07-12 12:00:29 +03:30
'fee_deduct_from_gold' ,
2026-07-23 11:55:18 +03:30
'referral_bonus_amount' ,
2026-07-01 15:47:24 +03:30
'group_sms' ,
2026-07-18 22:22:01 +03:30
'customer_direct_sms' ,
2026-07-22 01:05:00 +03:30
'enable_conditional_order' ,
2026-08-01 17:30:14 +03:30
'enable_product_funds' ,
2026-07-23 21:41:51 +03:30
'has_page_price_trigger' ,
2026-07-23 22:24:39 +03:30
'has_page_notification' ,
2026-07-22 01:05:00 +03:30
'jibit_enabled' ,
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' ,
'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' ,
2026-08-03 11:51:16 +03:30
'price_channel_access' ,
2026-07-07 14:34:00 +03:30
'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-07-30 15:46:11 +03:30
'zaarbox_api_url' ,
2026-08-04 18:59:38 +03:30
'show_to_users_chat' , 'chat_api' , 'chat_api_key' , 'chat_upload_url' , 'chat_download_url' , 'chat_webhook_secret'
2026-06-22 01:31:47 +03:30
);
-- قابل ویرایش در پنل (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-21 12:36:59 +03:30
'require_zero_main_gold_before_other_buy' ,
2026-07-18 22:22:01 +03:30
'sms_notif_order_admin' , 'sms_notif_order_customer' ,
'sms_notif_withdraw_admin' , 'sms_notif_withdraw_otp' , 'sms_notif_login_otp' ,
'sms_notif_gateway_charge_admin' , 'sms_notif_register_customer' , 'sms_notif_register_admin' ,
'sms_notif_jibit_admin' , 'sms_notif_bank_card_admin' , 'sms_notif_bank_card_customer' ,
'sms_notif_fund_withdraw_admin' , 'sms_notif_fund_withdraw_customer' ,
2026-08-04 18:59:38 +03:30
'sms_notif_price_trigger' , 'sms_notif_wallet_alert' , 'sms_notif_support_admin' ,
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-23 11:55:18 +03:30
'fee_free' , 'fee_service_charge_percentage' ,
2026-06-22 01:31:47 +03:30
'gift_for_referral' , 'gift_for_referrer' ,
'invite_link_text' ,
'jibit_verification' ,
'main_product_price' ,
2026-07-19 15:53:05 +03:30
'min_first_buy' , 'min_withdraw' , 'min_deposit' , 'minimum_sell' ,
2026-06-22 01:31:47 +03:30
'montzar_mobile' , 'montzar_open_buy' , 'montzar_open_sell' ,
2026-07-27 21:01:18 +03:30
'montzar_password' , 'montzar_product_id' ,
2026-06-22 01:31:47 +03:30
'open_register' ,
2026-08-03 11:51:16 +03:30
'referral_id' , 'referral_limit' , 'referral_gift_on_first_order' , 'referral_gift_buy_from_montzar' ,
2026-06-22 01:31:47 +03:30
'register_jibit_verify' , 'register_referral_bonus_message' , 'register_referral_sms_to_referrer' ,
2026-07-29 14:58:33 +03:30
'sell_fee' , 'show_last_price' , 'show_home_price_when_closed' , 'show_gold_ounce_price' , 'show_product_details' ,
2026-07-29 20:21:06 +03:30
'show_product_trade_status' , 'show_product_card_meta' ,
'products_site_link_enabled' , 'products_site_link_url' , 'products_site_link_text' ,
'startDay' ,
2026-07-30 15:46:11 +03:30
'support_messenger' , 'support_messenger_id' , 'support_messenger_text' , 'support_messengers' ,
'has_chat' ,
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-19 15:53:05 +03:30
'price_channel_footer_link' , 'change_mesghal' ,
'tracking_systems' , 'tracking_systems_enabled' ,
'banner_enabled' ,
'zaarbox_price_key'
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-28 10:33:11 +03:30
'buy_fee' , 'sell_fee' ,
2026-07-19 15:53:05 +03:30
'min_withdraw' , 'min_deposit' , 'min_first_buy' , 'minimum_sell' ,
2026-06-22 19:14:24 +03:30
'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' ,
2026-07-20 15:52:42 +03:30
'deposit_sms_support_number' ,
'pargar_item_id_rial' , 'pargar_item_id_gold'
2026-06-22 19:14:24 +03:30
);
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' ,
2026-07-28 19:08:04 +03:30
'zarin_api' , 'zarin_token' , 'zarin_noe_kar' , 'zarin_noe_kar_tedadi' , 'zarin_gorohe_kar' , 'zarin_name_g' , 'zarin_uid_prefix' ,
2026-07-20 15:52:42 +03:30
'pargar_username' , 'pargar_password' , 'pargar_api_token' ,
'pargar_item_id_rial' , 'pargar_item_id_gold'
2026-07-05 16:43:34 +03:30
);
2026-07-23 20:24:58 +03:30
UPDATE ` settings ` SET ` can_edit ` = 0 , ` is_active ` = 1 WHERE ` key ` LIKE 'zarin_%' ;
UPDATE ` settings ` SET ` type ` = 'text' , ` can_edit ` = 0 WHERE ` key ` IN ( 'zarin_api' , 'zarin_token' , 'zarin_name_g' , 'zarin_uid_prefix' );
2026-07-28 19:08:04 +03:30
UPDATE ` settings ` SET ` type ` = 'number' , ` can_edit ` = 0 WHERE ` key ` IN ( 'zarin_noe_kar' , 'zarin_noe_kar_tedadi' , 'zarin_gorohe_kar' );
2026-08-01 16:47:26 +03:30
-- درگاه شارژ آنلاین (Montify) — متادیتا + can_edit=0 (value دست نخورده)
UPDATE ` settings ` SET
` title_fa ` = 'فعالسازی شارژ آنلاین' ,
` type ` = 'switch' ,
` can_edit ` = 0 ,
` description ` = 'روشن: در صورت کامل بودن BASE_URL و client_id و client_secret و gateway، دکمه پرداخت آنلاین در اپ نمایش داده میشود. خاموش: فقط واریز دستی.'
WHERE ` key ` = 'external_payment_enabled' ;
UPDATE ` settings ` SET
` title_fa ` = 'نوع درگاه شارژ آنلاین' ,
` type ` = 'select' ,
` can_edit ` = 0 ,
` description ` = 'none=خاموش، montify=پارتنر Montify|none,montify'
WHERE ` key ` = 'wallet_payment_provider' ;
UPDATE ` settings ` SET
` title_fa ` = 'آدرس API درگاه (BASE_URL)' ,
` type ` = 'text' ,
` can_edit ` = 0 ,
` description ` = 'آدرس پایه API سرویس Montify (بدون اسلش انتهایی)، مثلاً https://node.example.com — فقط سرور؛ در اپ کاربر ارسال نمیشود.'
WHERE ` key ` = 'external_payment_base_url' ;
UPDATE ` settings ` SET
` title_fa ` = 'شناسه کلاینت (client_id)' ,
` type ` = 'text' ,
` can_edit ` = 0 ,
` description ` = 'شناسه partner (client_id) — فقط سرور؛ در اپ کاربر یا پاسخ get_settings عمومی نیست.'
WHERE ` key ` = 'external_payment_client_id' ;
UPDATE ` settings ` SET
` title_fa ` = 'رمز کلاینت (client_secret)' ,
` type ` = 'text' ,
` can_edit ` = 0 ,
` description ` = 'رمز مخفی partner (client_secret) — فقط سرور. در فرانت و Network تب کاربر دیده نمیشود.'
WHERE ` key ` = 'external_payment_client_secret' ;
UPDATE ` settings ` SET
` title_fa ` = 'نام درگاه داخل Montify' ,
` type ` = 'select' ,
` can_edit ` = 0 ,
` description ` = 'نام درگاه فعال داخل Montify: zarinpall، zibal، payping یا sepal|zarinpall,zibal,payping,sepal'
WHERE ` key ` = 'external_payment_gateway' ;
UPDATE ` settings ` SET
` title_fa ` = 'آدرس برگشت (return_url)' ,
` type ` = 'text' ,
` can_edit ` = 0 ,
` description ` = 'آدرس صفحه فرانت بعد از پرداخت. خالی = دامنه سایت + /wallet/payment-result'
WHERE ` key ` = 'external_payment_return_url' ;
UPDATE ` settings ` SET
` title_fa ` = 'آدرس Webhook' ,
` type ` = 'text' ,
` can_edit ` = 0 ,
` description ` = 'آدرس بکاند برای webhook (شارژ قطعی کیف). خالی = مسیر پیشفرض سرور.'
WHERE ` key ` = 'external_payment_webhook_url' ;
-- فقط برای ردیف تازه/خالی: پیشفرض خاموش (value موجود ادمین حفظ میشود)
UPDATE ` settings ` SET ` value ` = 'false'
WHERE ` key ` = 'external_payment_enabled' AND ( ` value ` IS NULL OR TRIM ( ` value ` ) = '' );
UPDATE ` settings ` SET ` value ` = 'none'
WHERE ` key ` = 'wallet_payment_provider' AND ( ` value ` IS NULL OR TRIM ( ` value ` ) = '' );
2026-07-23 20:24:58 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'سیستم حسابداری' , ` type ` = 'select' , ` description ` = 'none,pargar,tahesab,zarin'
2026-07-05 16:43:34 +03:30
WHERE ` key ` = 'accounting_provider' ;
2026-07-23 20:24:58 +03:30
UPDATE ` settings ` SET ` description ` = 'سیستم حسابداری: none=هیچکدام، pargar=API پرگار، tahesab=ارسال خودکار تهحساب، zarin=ارسال خودکار زرین.' WHERE ` key ` = 'accounting_provider' ;
UPDATE ` settings ` SET ` title_fa ` = 'آدرس API زرین' , ` description ` = 'آدرس پایه وبسرویس زرین (بدون /ZarrinService/accounting).' WHERE ` key ` = 'zarin_api' ;
UPDATE ` settings ` SET ` title_fa ` = 'توکن زرین' , ` description ` = 'توکن مکمل API زرین که در نرمافزار زرین تعریف میشود.' WHERE ` key ` = 'zarin_token' ;
2026-07-28 19:08:04 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نوع کار پیشفرض زرین' , ` type ` = 'number' , ` description ` = 'noeKar عمومی. مقدار ۱۶ معمولاً گرمی است و برای sabtSanadTedadi مناسب نیست؛ سند تعدادی از zarin_noe_kar_tedadi استفاده میکند.' WHERE ` key ` = 'zarin_noe_kar' ;
UPDATE ` settings ` SET ` title_fa ` = 'نوع کار تعدادی زرین' , ` type ` = 'number' , ` description ` = 'noeKar برای سند تعدادی (سکه/شمش/گوی/مکعب). معمولاً ۱۷=سکه-تعدادی یا ۱۸=اجرت تعدادی.' WHERE ` key ` = 'zarin_noe_kar_tedadi' ;
2026-07-23 20:24:58 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'گروه کار پیشفرض زرین' , ` type ` = 'number' , ` description ` = 'کد gorooheKar هنگام ساخت/جستجوی کار در زرین. برای جداسازی چند پنل روی یک زرین، برای هر پنل مقدار متفاوت بگذارید.' WHERE ` key ` = 'zarin_gorohe_kar' ;
2026-07-28 14:02:23 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'نام گروه حساب مشتریان زرین' , ` type ` = 'text' , ` description ` = 'پارامتر nameG در addhesab — گروه حساب زرین. برای اپ خانگی: مشتری نقدی (خریدار) = گروه ۶. گروه همکار استفاده نشود (مظنه متفاوت است).' WHERE ` key ` = 'zarin_name_g' ;
-- فقط اگر خالی است، پیشفرض گروه ۶ را بگذار (value موجود دست نخورده)
UPDATE ` settings ` SET ` value ` = 'مشتری نقدی (خریدار)' WHERE ` key ` = 'zarin_name_g' AND ( ` value ` IS NULL OR TRIM ( ` value ` ) = '' );
2026-07-23 20:24:58 +03:30
UPDATE ` settings ` SET ` title_fa ` = 'پیشوند عددی uid زرین' , ` type ` = 'text' , ` description ` = 'فقط عدد. وقتی چند پنل یک زرین دارند باید متفاوت باشد تا uid تکراری نشود.' WHERE ` key ` = 'zarin_uid_prefix' ;
2026-07-05 16:43:34 +03:30
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`;