khanegi setting and prices records 2

This commit is contained in:
2026-06-13 18:01:17 +03:30
parent 91a82c06e4
commit 596abbde05
+57 -91
View File
@@ -1,7 +1,7 @@
-- =============================================================================
-- deploy_settings_const.sql — آپدیت settings + const (بدون تغییر schema)
--
-- workflow deploy (DB موجود — abshode_rahimi, groosy, ...):
-- workflow deploy (DB موجود):
-- 0) بکاپ
-- 1) mysql ... < database/sql/baseline_migrations.sql ← حتماً قبل از migrate
-- 2) php artisan migrate
@@ -13,8 +13,8 @@
--
-- اصول:
-- • چند بار قابل اجرا (idempotent)
-- • value کلیدهای موجود دست نخورده (فقط INSERT اگر key نبود)
-- • title_fa / type / description / can_edit به‌روز می‌شود
-- • value / is_active / can_edit ردیف‌های موجود دست نخورده
-- • فقط INSERT برای کلیدهای جدید + به‌روز type / title_fa / description
-- • schema (جدول/ستون) فقط با migrate — نه این فایل
--
-- قبل از اجرا: USE `نام_دیتابیس`; + بکاپ
@@ -62,7 +62,7 @@ ALTER TABLE `const`
-- ---------------------------------------------------------------------------
-- اصلاح باگ‌ها / rename کلیدهای قدیمی
-- ---------------------------------------------------------------------------
UPDATE `settings` SET `key` = 'logo_login', `value` = 'logo_login' WHERE `key` LIKE 'logo_login%';
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`
@@ -71,21 +71,9 @@ 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';
UPDATE `settings` AS r
SET r.`value` = 'required', r.`is_active` = 1, r.`updated_at` = NOW()
WHERE r.`key` = 'referral_id'
AND EXISTS (
SELECT 1 FROM (
SELECT `value`, `is_active` FROM `settings`
WHERE `key` = 'is_requaire_referral' LIMIT 1
) AS leg
WHERE leg.`is_active` = 1
AND LOWER(TRIM(COALESCE(leg.`value`, ''))) IN ('true', '1', 'yes')
)
AND TRIM(COALESCE(r.`value`, '')) <> 'required';
-- legacy is_requaire_referral → referral_id: فقط rename کلید؛ value/is_active دست نمی‌خورد
-- SETTINGS — کلیدهای جدید (مقادیر پیش‌فرض گلد علی / zaarbox)
-- SETTINGS — کلیدهای جدید (INSERT فقط اگر key نبود)
-- =============================================================================
-- قیمت zaarbox (اگر از قبل دارید value دست نخورده)
@@ -95,7 +83,7 @@ SELECT 'chart_use_local_data', 'false', 'نمودار از داده خود سا
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, 'خالی = ca3800a0-1f57-3528-b963-178f9168e04f', 'text'
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`)
@@ -163,13 +151,13 @@ INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `de
SELECT 'display_montzar', 'false', 'نمایش بلوک همکار در UI', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'display_montzar' LIMIT 1);
-- API خارجی Node (HMAC) — معادل NODE_CLIENT_ID / NODE_SHARED_SECRET در .env
-- 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, 'مقدار قبلی .env: NODE_CLIENT_ID'
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, 'مقدار قبلی .env: NODE_SHARED_SECRET'
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`)
@@ -177,16 +165,16 @@ SELECT 'external_order_api_enabled', 'true', 'فعال‌سازی API سفارش
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'external_order_api_enabled' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'is_store', 'false', 'حالت فروشگاهی (قطره / کشکول)', 1, 1, 'true = روت‌های سبد خرید، دسته‌بندی، حواله، پرگار، تخفیف', 'switch'
SELECT 'is_store', 'false', 'حالت فروشگاهی', 1, 1, 'فعال = سبد خرید، دسته‌بندی، حواله، پرگار، تخفیف', 'switch'
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, 'true/false — BankAccountController'
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, 'AuthController'
SELECT 'register_jibit_verify', 'true', 'تأیید کدملی/موبایل در ثبت‌نام', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'register_jibit_verify' LIMIT 1);
-- ساعات معامله
@@ -260,7 +248,7 @@ SELECT 'bale_bot_token', '', 'توکن بات بله', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'bale_bot_token' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'support_messenger_id', '', 'شناسه پشتیبانی پیام‌رسان', 1, 0, 'بله: یوزرنیم ble.ir | تلگرام: یوزرنیم | واتساپ: شماره با کد کشور | روبیکا/ایتا/سروش: یوزرنیم'
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`)
@@ -273,7 +261,7 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'support_messenger' LIM
-- min/max قیمت روز (سیستم)
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'up_price', '0', 'بیشترین قیمت امروز', 0, 1, 'ReportController'
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`)
@@ -298,7 +286,7 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'metal_type' LIMIT 1);
-- درگاه — کلیدهای اختیاری payping
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_fin_sync_enabled', 'false', 'همگام‌سازی fin لیمان', 1, 1, NULL
SELECT 'payping_fin_sync_enabled', 'false', 'همگام‌سازی fin', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_fin_sync_enabled' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
@@ -318,7 +306,7 @@ SELECT 'payping_gateway_item', 'gp1Q', 'item تکی (legacy)', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_gateway_item' LIMIT 1);
-- =============================================================================
-- عنوان فارسی + can_edit (value دست نخورده)
-- عنوان فارسی (فقط اگر title_fa خالی باشد)
-- =============================================================================
-- backfill عنوان فارسی کلیدهای قدیمی (فقط اگر title_fa خالی/NULL باشد)
@@ -354,61 +342,59 @@ UPDATE `settings` SET `title_fa` = 'ارسال به ته‌حساب' WHERE `key`
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` = '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`), ''), 'منبع قیمت'), `can_edit` = 1,
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 تابلو'), `can_edit` = 1
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'), `can_edit` = 1
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'), `can_edit` = 1,
`value` = TRIM(REPLACE(REPLACE(`value`, CHAR(10), ''), CHAR(13), ''))
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`), ''), 'اختلاف پایه نمایش'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'اختلاف پایه نمایش')
WHERE `key` = 'fee_single';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'سود خرید نمایش'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'سود خرید نمایش')
WHERE `key` = 'buy_fee';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'سود فروش نمایش'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'سود فروش نمایش')
WHERE `key` = 'sell_fee';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'کارمزد ریالی سفارش (legacy)'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'کارمزد ریالی سفارش (legacy)')
WHERE `key` = 'fee_cash';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'درصد کارمزد سفارش'), `can_edit` = 1
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`), ''), 'تأیید کارت جیبیت'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'تأیید کارت جیبیت')
WHERE `key` = 'jibit_verification';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'تأیید ثبت‌نام جیبیت'), `can_edit` = 1
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 خارجی'), `can_edit` = 1
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 خارجی'), `can_edit` = 1
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 سفارش خارجی'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'API سفارش خارجی')
WHERE `key` = 'external_order_api_enabled';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'بسته بودن همکار'), `can_edit` = 1
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'بسته بودن همکار')
WHERE `key` = 'montzar_closed';
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'نام Montify'), `can_edit` = 1,
`description` = 'RequestsController — اختیاری'
UPDATE `settings` SET `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'نام فروشگاه در درگاه')
WHERE `key` = 'montify_name';
-- =============================================================================
@@ -456,7 +442,7 @@ UPDATE `settings` SET `type` = 'longtext' WHERE `key` IN ('text_rule', 'text_abo
-- select (+ گزینه‌ها در description)
UPDATE `settings` SET `type` = 'select', `description` = 'منبع فعال قیمت|montzar,zaarbox,main_product' WHERE `key` = 'price_provider';
UPDATE `settings` SET `type` = 'switch', `title_fa` = 'کد معرف اجباری', `description` = 'روشن = اجباری در ثبت‌نام | خاموش = اختیاری', `can_edit` = 1 WHERE `key` = 'referral_id';
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';
@@ -556,8 +542,6 @@ SELECT 'main_wallet_products', '', 'محصولات متصل به کیف اصلی
'idهای محصول با کاما (مثل 13,25). موجودی = gold کیف اصلی. خالی = غیرفعال'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'main_wallet_products' LIMIT 1);
UPDATE `settings` SET `can_edit` = 0 WHERE `key` = 'main_wallet_products';
-- ---------------------------------------------------------------------------
-- const — کلیدهای اضافی
-- ---------------------------------------------------------------------------
@@ -578,7 +562,7 @@ 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', '', 'توکن لیمان (legacy)'
SELECT 'liman', '', 'توکن fin (legacy)'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'liman' LIMIT 1);
-- ---------------------------------------------------------------------------
@@ -600,7 +584,7 @@ DELETE FROM `settings` WHERE `key` IN (
DELETE FROM `const` WHERE `key` = 'log' OR `key` LIKE 'goldir%';
-- ---------------------------------------------------------------------------
-- metadata — description و type
-- metadata — فقط type / title_fa / description (بدون value / is_active / can_edit)
-- ---------------------------------------------------------------------------
UPDATE `settings` SET `description` = NULL
WHERE LOWER(TRIM(COALESCE(`description`, ''))) IN ('true', 'false', '0', '1', 'yes', 'no', 'in server')
@@ -609,78 +593,60 @@ WHERE LOWER(TRIM(COALESCE(`description`, ''))) IN ('true', 'false', '0', '1', 'y
UPDATE `settings` SET `description` = 'منبع فعال قیمت|montzar,zaarbox,main_product'
WHERE `key` = 'price_provider';
UPDATE `settings` SET `value` = 'montzar'
WHERE `key` = 'price_provider' AND LOWER(TRIM(`value`)) IN ('taban_gohar', 'etehadie');
UPDATE `settings` SET
`type` = 'switch',
`title_fa` = 'کد معرف اجباری',
`description` = 'روشن = اجباری در ثبت‌نام | خاموش = اختیاری',
`can_edit` = 1,
`is_active` = 1
`description` = 'روشن = اجباری در ثبت‌نام | خاموش = اختیاری'
WHERE `key` = 'referral_id';
UPDATE `settings` SET `value` = 'required'
WHERE `key` = 'referral_id'
AND LOWER(TRIM(COALESCE(`value`, ''))) IN ('required', 'true', '1', 'yes');
UPDATE `settings` SET `value` = ''
WHERE `key` = 'referral_id'
AND LOWER(TRIM(COALESCE(`value`, ''))) NOT IN ('required');
UPDATE `settings` SET `type` = 'switch', `value` = 'false', `is_active` = 1, `can_edit` = 1
WHERE `key` IN ('register_referral_sms_to_referrer', 'register_referral_bonus_message')
AND (`type` IS NULL OR TRIM(`type`) = '' OR `type` = 'text')
AND TRIM(COALESCE(`value`, '')) = '';
UPDATE `settings` SET `type` = 'switch', `is_active` = 1
UPDATE `settings` SET `type` = 'switch'
WHERE `key` IN ('register_referral_sms_to_referrer', 'register_referral_bonus_message');
UPDATE `settings` SET `value` = 'false'
WHERE `key` IN ('register_referral_sms_to_referrer', 'register_referral_bonus_message')
AND TRIM(COALESCE(`value`, '')) = '';
UPDATE `settings` SET
`type` = 'switch',
`title_fa` = 'نمودار از داده خود سایت',
`description` = 'خاموش = Zaarbox (chart_id) | روشن = تاریخچه prices',
`is_active` = 1,
`can_edit` = 1
`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 `is_active` = 1 WHERE `can_edit` = 1 AND (`is_active` IS NULL OR `is_active` = 0);
UPDATE `settings` SET `description` = 'تعداد سفارش اول بدون کارمزد' WHERE `key` = 'fee_free';
UPDATE `settings` SET `description` = 'id یا reading_method محصول آبشده' WHERE `key` = 'main_product';
UPDATE `settings` SET
`title_fa` = 'شناسه پشتیبانی پیام‌رسان',
`can_edit` = 1,
`type` = 'text',
`description` = 'بله: یوزرنیم ble.ir | تلگرام: یوزرنیم | واتساپ: شماره با کد کشور | روبیکا/ایتا/سروش: یوزرنیم'
`description` = 'یوزرنیم یا شماره تماس بسته به پیام‌رسان انتخاب‌شده'
WHERE `key` = 'support_messenger_id';
UPDATE `settings` SET
`title_fa` = 'متن پشتیبانی پیام‌رسان',
`can_edit` = 1,
`type` = 'text',
`description` = 'متن دکمه یا توضیح پشتیبانی در اپ کاربر'
WHERE `key` = 'support_messenger_text';
UPDATE `settings` SET
`title_fa` = 'پیام‌رسان پشتیبانی',
`can_edit` = 1,
`type` = 'select',
`description` = 'bale,telegram,whatsapp,rubika,eitaa,soroush',
`value` = COALESCE(NULLIF(TRIM(`value`), ''), 'bale'),
`is_active` = 1
`description` = 'bale,telegram,whatsapp,rubika,eitaa,soroush'
WHERE `key` = 'support_messenger';
UPDATE `settings` SET `is_active` = 1 WHERE `key` IN ('zaarbox_api_url', 'zaarbox_price_key', 'chart_id', 'jibit_verification') AND `is_active` IS NULL;
-- پاکسازی 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` = NULL
WHERE `key` = 'montify_name';
UPDATE `settings` SET `description` = NULL
WHERE `key` IN ('jibit_verification', 'register_jibit_verify', 'up_price', 'node_client_id', 'node_shared_secret')
AND (`description` LIKE '%Controller%' OR `description` LIKE '%.env%');
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';