fix sql
This commit is contained in:
@@ -13,7 +13,8 @@
|
||||
--
|
||||
-- اصول:
|
||||
-- • چند بار قابل اجرا (idempotent)
|
||||
-- • value / is_active ردیفهای موجود دست نخورده (بهجز تهحساب: can_edit و value خالی؛ is_store: can_edit=0)
|
||||
-- • value / is_active ردیفهای موجود دست نخورده
|
||||
-- • can_edit هر deploy از این فایل override میشود (استاندارد مشترک همه پروژهها)
|
||||
-- • فقط INSERT برای کلیدهای جدید + بهروز type / title_fa / description
|
||||
-- • schema (جدول/ستون) فقط با migrate — نه این فایل
|
||||
--
|
||||
@@ -121,6 +122,10 @@ INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `de
|
||||
SELECT 'montzar_order_response', '[]', 'پاسخ سفارش همکار', 0, 1, NULL, 'longtext'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'montzar_order_response' LIMIT 1);
|
||||
|
||||
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);
|
||||
|
||||
-- قیمت zaarbox (اگر از قبل دارید value دست نخورده)
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'chart_use_local_data', 'false', 'نمودار از داده خود سایت', 1, 1,
|
||||
@@ -215,7 +220,22 @@ SELECT 'sse_path', '/api/price/stream', 'مسیر SSE قیمت', 0, 1, 'GET لا
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sse_path' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'montify_name', '', 'نام فروشگاه در درگاه', 1, 1, NULL, 'text'
|
||||
SELECT 'wss_path', '/prc/ws', 'مسیر WebSocket قیمت', 0, 1,
|
||||
'مسیر WebSocket روی دامنه اپ — معمولاً /prc/ws (پروکسی به پورت داخلی ws).', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'wss_path' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'wss_link', '', 'آدرس trigger وبسوکت (سرور)', 0, 1,
|
||||
'آدرس HTTP سرویس ws برای trigger برادکست از سرور لاراول — مثال: http://localhost:2090. اولویت با env WSS_LINK/wssLink است.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'wss_link' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'wss_trigger_path', '/prc/api/trigger-update', 'مسیر trigger برادکست', 0, 1,
|
||||
'مسیر POST برای ارسال رویداد last/list به سرویس ws — پیشفرض: /prc/api/trigger-update', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'wss_trigger_path' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'montify_name', '', 'نام فروشگاه در درگاه', 0, 1, NULL, 'text'
|
||||
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`)
|
||||
@@ -595,7 +615,10 @@ WHERE `key` = 'main_product';
|
||||
-- =============================================================================
|
||||
|
||||
-- longtext
|
||||
UPDATE `settings` SET `type` = 'longtext' WHERE `key` IN ('text_rule', 'text_about', 'support_messenger_text', 'invite_link_text', 'montzar_order_response');
|
||||
UPDATE `settings` SET `type` = 'longtext' WHERE `key` IN (
|
||||
'text_rule', 'text_about', 'support_messenger_text', 'invite_link_text',
|
||||
'montzar_order_response', 'montzar_last_product_log'
|
||||
);
|
||||
|
||||
-- select (+ گزینهها در description)
|
||||
UPDATE `settings` SET `type` = 'select', `description` = 'منبع فعال قیمت|montzar,zaarbox,main_product' WHERE `key` = 'price_provider';
|
||||
@@ -612,7 +635,8 @@ UPDATE `settings` SET `type` = 'switch' WHERE `key` IN (
|
||||
'has_page_earn_money', 'charge_notif', 'group_sms',
|
||||
'montzar_closed', 'montzar_open_buy', 'montzar_open_sell',
|
||||
'payping_fin_sync_enabled', 'external_order_api_enabled', 'is_store', 'wss_enabled',
|
||||
'register_referral_sms_to_referrer', 'register_referral_bonus_message', 'price_from_nasiryan'
|
||||
'register_referral_sms_to_referrer', 'register_referral_bonus_message', 'price_from_nasiryan',
|
||||
'banner_enabled'
|
||||
);
|
||||
|
||||
-- number
|
||||
@@ -701,6 +725,16 @@ SELECT 'main_wallet_products', '', 'محصولات متصل به کیف اصلی
|
||||
'idهای محصول با کاما (مثل 13,25). موجودی = gold کیف اصلی. خالی = غیرفعال'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'main_wallet_products' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'apk_download_link', '', 'لینک دانلود اپ اندروید', 0, 1,
|
||||
'آدرس کامل فایل APK اندروید (https). اگر خالی باشد لینک دانلود در اپ نمایش داده نمیشود.', 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'apk_download_link' LIMIT 1);
|
||||
|
||||
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
||||
SELECT 'banner_enabled', 'true', 'نمایش بنرها', 0, 1,
|
||||
'روشن: اسلایدر بنر صفحه اصلی در اپ کاربر نمایش داده میشود. خاموش: بنرها مخفی میمانند (محتوای بنر از پنل «بنرها» مدیریت میشود).', 'switch'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'banner_enabled' LIMIT 1);
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- const — کلیدهای اضافی
|
||||
-- ---------------------------------------------------------------------------
|
||||
@@ -769,7 +803,7 @@ DELETE FROM `settings` WHERE `key` IN (
|
||||
DELETE FROM `const` WHERE `key` = 'log' OR `key` LIKE 'goldir%';
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- metadata — type / title_fa / description (+ can_edit تهحساب)
|
||||
-- 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')
|
||||
@@ -817,10 +851,6 @@ UPDATE `settings` SET
|
||||
`description` = @invite_link_desc
|
||||
WHERE `key` = 'invite_link_text';
|
||||
|
||||
UPDATE `settings` SET `value` = @invite_link_default_text
|
||||
WHERE `key` = 'invite_link_text'
|
||||
AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'پیامرسان پشتیبانی',
|
||||
`type` = 'select',
|
||||
@@ -851,34 +881,6 @@ UPDATE `settings` SET
|
||||
`description` = 'نام حساب بانکی در سند واریز'
|
||||
WHERE `key` = 'tahesab_bank_account';
|
||||
|
||||
-- تهحساب: قابل ویرایش + مقدار پیشفرض خالی
|
||||
UPDATE `settings` SET `can_edit` = 1
|
||||
WHERE `key` LIKE 'tahesab_%' OR `key` = 'send_to_tahesab';
|
||||
|
||||
UPDATE `settings` SET `value` = ''
|
||||
WHERE `key` IN ('tahesab_host', 'tahesab_port', 'tahesab_token', 'tahesab_db', 'tahesab_bank_account');
|
||||
|
||||
UPDATE `settings` SET `value` = 'false'
|
||||
WHERE `key` = 'send_to_tahesab' AND TRIM(COALESCE(`value`, '')) = '';
|
||||
|
||||
-- is_store فقط از دیتابیس/دیپلوی — در پنل قابل ویرایش نیست
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` = 'is_store';
|
||||
|
||||
-- metal_type فقط از دیپلوی/SQL (مثلاً «کاتد مس» برای بورس مس)
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` = 'metal_type';
|
||||
|
||||
-- fee_cash legacy — فقط از دیپلوی/SQL
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` = 'fee_cash';
|
||||
|
||||
-- SSE قیمت — فقط دیپلوی/SQL
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'wss_enabled', 'sse_path', 'tahesab_port'
|
||||
);
|
||||
|
||||
-- لوگو / PWA / favicon — فقط از دیپلوی؛ در پنل نمایش داده نمیشوند
|
||||
UPDATE `settings` SET `can_edit` = 0, `is_active` = 0
|
||||
WHERE `key` IN ('logo_login', 'logo_register', 'title_pwa', 'title_fav');
|
||||
|
||||
UPDATE `settings` SET `title_fa` = 'مقدار پاداش معرف' WHERE `key` = 'referral_bonus_amount';
|
||||
|
||||
UPDATE `settings` SET `type` = 'text' WHERE `key` = 'balance_report_exclude_customer_id';
|
||||
@@ -975,6 +977,12 @@ UPDATE `settings` SET `description` = 'روشن: امکان ثبت سفارش خ
|
||||
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';
|
||||
UPDATE `settings` SET `description` = 'لاگ JSON آخرین محصول دریافتشده از API همکار. توسط سیستم پر میشود.' WHERE `key` = 'montzar_last_product_log';
|
||||
UPDATE `settings` SET `description` = 'آدرس کامل فایل APK اندروید (https). اگر خالی باشد لینک دانلود در اپ نمایش داده نمیشود.' WHERE `key` = 'apk_download_link';
|
||||
UPDATE `settings` SET `description` = 'روشن: اسلایدر بنر صفحه اصلی در اپ کاربر نمایش داده میشود. خاموش: بنرها مخفی میمانند (محتوای بنر از پنل «بنرها» مدیریت میشود).' WHERE `key` = 'banner_enabled';
|
||||
UPDATE `settings` SET `description` = 'مسیر WebSocket روی دامنه اپ — معمولاً /prc/ws (پروکسی به پورت داخلی ws).' WHERE `key` = 'wss_path';
|
||||
UPDATE `settings` SET `description` = 'آدرس HTTP سرویس ws برای trigger برادکست از سرور لاراول — مثال: http://localhost:2090. اولویت با env WSS_LINK/wssLink است.' WHERE `key` = 'wss_link';
|
||||
UPDATE `settings` SET `description` = 'مسیر POST برای ارسال رویداد last/list به سرویس ws — پیشفرض: /prc/api/trigger-update' WHERE `key` = 'wss_trigger_path';
|
||||
|
||||
UPDATE `settings` SET `description` = 'شناسه کلاینت برای API سفارش خارجی (هدر X-Client-Id). باید با مقدار تنظیمشده در سرویس مقصد یکسان باشد.' WHERE `key` = 'node_client_id';
|
||||
UPDATE `settings` SET `description` = 'کلید مشترک امضای HMAC برای احراز درخواستهای API سفارش خارجی. محرمانه نگه دارید.' WHERE `key` = 'node_shared_secret';
|
||||
@@ -1028,17 +1036,73 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'invite_link_text' LIMI
|
||||
UPDATE `settings` SET
|
||||
`title_fa` = 'متن دعوتنامه اشتراکگذاری',
|
||||
`type` = 'longtext',
|
||||
`can_edit` = 1,
|
||||
`is_active` = 1,
|
||||
`description` = @invite_link_desc
|
||||
WHERE `key` = 'invite_link_text';
|
||||
|
||||
UPDATE `settings` SET `value` = @invite_link_default_text
|
||||
WHERE `key` = 'invite_link_text'
|
||||
AND (`value` IS NULL OR TRIM(`value`) = '');
|
||||
|
||||
UPDATE `settings` SET `type` = 'longtext'
|
||||
WHERE `key` IN ('text_rule', 'text_about', 'support_messenger_text', 'invite_link_text', 'montzar_order_response');
|
||||
WHERE `key` IN (
|
||||
'text_rule', 'text_about', 'support_messenger_text', 'invite_link_text',
|
||||
'montzar_order_response', 'montzar_last_product_log'
|
||||
);
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- can_edit — استاندارد مشترک (override؛ value دست نمیخورد)
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- غیرقابل ویرایش در پنل (can_edit = 0)
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'admin_url', 'apk_download_link', 'app_url',
|
||||
'bale_bot_token', 'banner_enabled',
|
||||
'chart_id', 'chart_use_local_data',
|
||||
'default_vc_number',
|
||||
'external_order_api_enabled',
|
||||
'fee_cash', 'group_sms',
|
||||
'has_page_earn_money',
|
||||
'is_store',
|
||||
'logo_login', 'logo_register', 'title_pwa', 'title_fav',
|
||||
'main_product', 'main_wallet_products', 'metal_type',
|
||||
'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',
|
||||
'payping_gateway_item', 'payping_gateway_items', 'payping_gateway_name',
|
||||
'payping_round_toman', 'payping_start_url', 'payping_strict_failed_withdraw', 'payping_verify_url',
|
||||
'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',
|
||||
'telegram_bot_token',
|
||||
'unit',
|
||||
'up_price', 'down_price',
|
||||
'wss_enabled', 'wss_link', 'wss_path', 'wss_trigger_path',
|
||||
'zaarbox_api_url', 'zaarbox_price_key'
|
||||
);
|
||||
|
||||
-- قابل ویرایش در پنل (can_edit = 1)
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'name_fa',
|
||||
'auto_active_customer', 'balance_report_exclude_customer_id',
|
||||
'buy_fee', 'charge_notif', 'close_price',
|
||||
'deposit_sms_support_number', 'endDay',
|
||||
'fee_free', 'fee_service_charge_percentage', 'fee_single',
|
||||
'gift_for_referral', 'gift_for_referrer',
|
||||
'invite_link_text',
|
||||
'jibit_verification',
|
||||
'main_product_price',
|
||||
'min_first_buy', 'min_withdraw', 'minimum_sell',
|
||||
'montzar_mobile', 'montzar_open_buy', 'montzar_open_sell',
|
||||
'montzar_password', 'montzar_price', 'montzar_product_id',
|
||||
'open_register',
|
||||
'price_from_nasiryan',
|
||||
'referral_bonus_amount', 'referral_id', 'referral_limit',
|
||||
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
|
||||
'sell_fee', 'show_last_price', 'startDay',
|
||||
'support_messenger', 'support_messenger_id', 'support_messenger_text',
|
||||
'text_about', 'text_rule'
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user