update setting
This commit is contained in:
@@ -146,14 +146,14 @@ class DeploySettingsConstCommand extends Command
|
||||
$sync = app(SettingsRuntimeCanEditSync::class);
|
||||
$sync->useDatabase($database);
|
||||
$updated = $sync->sync();
|
||||
$this->line(" runtime can_edit sync: {$updated} row(s) updated");
|
||||
$this->line(" can_edit sync: {$updated} row(s) updated");
|
||||
|
||||
$status = $sync->statusMap();
|
||||
if ($status !== []) {
|
||||
$preview = collect($status)
|
||||
->map(fn ($canEdit, $key) => "{$key}={$canEdit}")
|
||||
->implode(', ');
|
||||
$this->line(" runtime keys: {$preview}");
|
||||
$this->line(" can_edit sample: {$preview}");
|
||||
}
|
||||
|
||||
$violations = $sync->violations();
|
||||
@@ -161,6 +161,11 @@ class DeploySettingsConstCommand extends Command
|
||||
$this->warn(' WARN: runtime keys still can_edit≠1: '.implode(', ', array_keys($violations)));
|
||||
}
|
||||
|
||||
$advancedViolations = $sync->advancedViolations();
|
||||
if ($advancedViolations !== []) {
|
||||
$this->warn(' WARN: advanced keys still can_edit≠0: '.implode(', ', array_keys($advancedViolations)));
|
||||
}
|
||||
|
||||
$fee = \App\Models\Setting::query()
|
||||
->where('key', 'fee_deduct_from_gold')
|
||||
->first(['key', 'can_edit']);
|
||||
|
||||
@@ -6,31 +6,101 @@ use App\Models\Setting;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
* تثبیت can_edit=1 برای کلیدهای runtime tenant (Montzar، up/down_price، …).
|
||||
* بعد از deploy_settings_const.sql هم اجرا میشود تا حتی با SQL قدیمی روی سرور درست بماند.
|
||||
* تثبیت can_edit بعد از deploy_settings_const.sql / deploy:tenant:
|
||||
* - RUNTIME_KEYS → 1
|
||||
* - ADVANCED_PANEL_KEYS → 0 (فقط تنظیمات پیشرفته)
|
||||
* - chart_use_local_data → 1 (تنظیمات عادی → منبع قیمت و تابلو)
|
||||
*/
|
||||
class SettingsRuntimeCanEditSync
|
||||
{
|
||||
/**
|
||||
* کلیدهای can_edit=0 — فقط تنظیمات پیشرفته (ادمین دیپلوی).
|
||||
* همتراز آخرین override در deploy_settings_const.sql
|
||||
*
|
||||
* @var list<string>
|
||||
*/
|
||||
public const ADVANCED_PANEL_KEYS = [
|
||||
'up_price',
|
||||
'down_price',
|
||||
'price_extreme_date',
|
||||
'main_product',
|
||||
'price_provider',
|
||||
'zaarbox_api_url',
|
||||
'montzar_base_url',
|
||||
'montzar_diff',
|
||||
'montzar_closed',
|
||||
'montzar_order_response',
|
||||
'montzar_token',
|
||||
'montzar_live_price',
|
||||
'montzar_last_product_log',
|
||||
'montzar_truly_buy_mazaneh',
|
||||
'montzar_truly_sell_mazaneh',
|
||||
'montzar_mazaneh',
|
||||
'node_client_id',
|
||||
'node_shared_secret',
|
||||
'external_order_api_enabled',
|
||||
'deposit_method_gateway',
|
||||
'deposit_method_identified',
|
||||
'deposit_method_shetab',
|
||||
'payping_verify_url',
|
||||
'payping_start_url',
|
||||
'payping_strict_failed_withdraw',
|
||||
'payping_fin_token',
|
||||
'chart_id',
|
||||
'payping_round_toman',
|
||||
'payping_gateway_items',
|
||||
'payping_gateway_name',
|
||||
'payping_fin_customer_id',
|
||||
'payping_fin_url',
|
||||
];
|
||||
|
||||
/** @return list<string> */
|
||||
public function keys(): array
|
||||
{
|
||||
return SuperAdminProgramSettingsOverlay::RUNTIME_KEYS;
|
||||
}
|
||||
|
||||
/** @return list<string> */
|
||||
public function advancedKeys(): array
|
||||
{
|
||||
return self::ADVANCED_PANEL_KEYS;
|
||||
}
|
||||
|
||||
public function sync(): int
|
||||
{
|
||||
$keys = $this->keys();
|
||||
if ($keys === []) {
|
||||
return 0;
|
||||
$updated = 0;
|
||||
|
||||
$runtime = $this->keys();
|
||||
if ($runtime !== []) {
|
||||
$updated += Setting::query()
|
||||
->whereIn('key', $runtime)
|
||||
->where(function ($query) {
|
||||
$query->where('can_edit', '!=', 1)
|
||||
->orWhereNull('can_edit');
|
||||
})
|
||||
->update(['can_edit' => 1]);
|
||||
}
|
||||
|
||||
return Setting::query()
|
||||
->whereIn('key', $keys)
|
||||
$advanced = $this->advancedKeys();
|
||||
if ($advanced !== []) {
|
||||
$updated += Setting::query()
|
||||
->whereIn('key', $advanced)
|
||||
->where(function ($query) {
|
||||
$query->where('can_edit', '!=', 0)
|
||||
->orWhereNull('can_edit');
|
||||
})
|
||||
->update(['can_edit' => 0]);
|
||||
}
|
||||
|
||||
$updated += Setting::query()
|
||||
->where('key', 'chart_use_local_data')
|
||||
->where(function ($query) {
|
||||
$query->where('can_edit', '!=', 1)
|
||||
->orWhereNull('can_edit');
|
||||
})
|
||||
->update(['can_edit' => 1]);
|
||||
|
||||
return $updated;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -55,12 +125,44 @@ class SettingsRuntimeCanEditSync
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed> key => can_edit for all runtime keys present in DB
|
||||
* @return array<string, mixed> key => can_edit still not 0 among advanced keys
|
||||
*/
|
||||
public function advancedViolations(): array
|
||||
{
|
||||
$keys = $this->advancedKeys();
|
||||
if ($keys === []) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return Setting::query()
|
||||
->whereIn('key', $keys)
|
||||
->where(function ($query) {
|
||||
$query->where('can_edit', '!=', 0)
|
||||
->orWhereNull('can_edit');
|
||||
})
|
||||
->orderBy('key')
|
||||
->pluck('can_edit', 'key')
|
||||
->all();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed> key => can_edit for runtime + sample advanced keys
|
||||
*/
|
||||
public function statusMap(): array
|
||||
{
|
||||
$keys = array_values(array_unique(array_merge(
|
||||
$this->keys(),
|
||||
[
|
||||
'price_provider',
|
||||
'montzar_token',
|
||||
'chart_id',
|
||||
'chart_use_local_data',
|
||||
'deposit_method_gateway',
|
||||
]
|
||||
)));
|
||||
|
||||
return Setting::query()
|
||||
->whereIn('key', $this->keys())
|
||||
->whereIn('key', $keys)
|
||||
->orderBy('key')
|
||||
->pluck('can_edit', 'key')
|
||||
->all();
|
||||
|
||||
@@ -60,20 +60,11 @@ class SuperAdminProgramSettingsOverlay
|
||||
'tracking_systems',
|
||||
];
|
||||
|
||||
/** لاگ/قیمت لحظهای همکار — can_edit=1 در DB؛ کد مستقیم UpdateConfig میزند، نه سوپرادمین */
|
||||
/**
|
||||
* فقط کلیدهایی که هنوز از پنل قابل ویرایش نیستند و کد tenant مینویسد.
|
||||
* بقیهٔ سابق (montzar_* / up_price / …) can_edit=0 و فقط در تنظیمات پیشرفته ویرایش میشوند.
|
||||
*/
|
||||
public const RUNTIME_KEYS = [
|
||||
'montzar_last_product_log',
|
||||
'montzar_order_response',
|
||||
'montzar_live_price',
|
||||
'montzar_mazaneh',
|
||||
'montzar_diff',
|
||||
'montzar_truly_buy_mazaneh',
|
||||
'montzar_truly_sell_mazaneh',
|
||||
'montzar_token',
|
||||
'montzar_closed',
|
||||
'up_price',
|
||||
'down_price',
|
||||
'price_extreme_date',
|
||||
'do_send_liman',
|
||||
];
|
||||
|
||||
|
||||
@@ -98,7 +98,8 @@ php artisan settings:deploy
|
||||
| `2019`/`2021` No بعد از baseline | baseline قدیمی → `fake_package_migrations.sql` |
|
||||
| `Unknown host HOST` | از `.env` بخوان نه placeholder |
|
||||
| `Unknown column 'total_referrals'` | `git pull` + `php artisan migrate` (ensure_total_referrals) |
|
||||
| `montzar_*` هنوز `can_edit=0` در Navicat | **`git pull` روی server** سپس `php artisan deploy:tenant` — باید `runtime can_edit sync` و `montzar_token=1` چاپ شود |
|
||||
| `montzar_token` / `price_provider` هنوز `can_edit=1` در Navicat | **`git pull` روی server** سپس `php artisan deploy:tenant` (یا چند DB: `php artisan settings:deploy db1 db2 …`) — باید `can_edit sync` و `price_provider=0` چاپ شود |
|
||||
| `chart_use_local_data` در تنظیمات پیشرفته است | همان deploy — باید `chart_use_local_data=1` و فقط در تنظیمات عادی باشد |
|
||||
| گروه Montzar در تنظیمات عادی نیست | **`git pull` + build ادمین** (`ed326a4+`) + `price_provider=montzar` در سوپرادمین |
|
||||
| کلید runtime در سوپرادمین نیست (عمدی) | API `19d28f2+` + `npm run replicas:sync`؛ web سوپرادمین هم `git pull` + build |
|
||||
| `Unknown column 'order_limit_enabled'` / محدودیت سفارش ذخیره نمیشود | `git pull` + `php artisan migrate` (ensure_products_baseline_columns) |
|
||||
|
||||
@@ -209,7 +209,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, 'خالی = UUID پیشفرض سرویس', 'text'
|
||||
SELECT 'chart_id', '', 'UUID نمودار Zaarbox', 0, 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`)
|
||||
@@ -1324,7 +1324,7 @@ 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'
|
||||
SELECT 'price_provider', 'منبع قیمت', 'montzar', 0, 0, 1, 'select', 'منبع فعال قیمت|montzar,zaarbox,main_product'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_provider' LIMIT 1);
|
||||
|
||||
-- حذف alias قدیمی؛ منبع واحد: fee_service_charge_percentage
|
||||
@@ -1363,7 +1363,7 @@ SELECT 'enamad_logo', 'لوگوی اینماد', '', 1, 0, 1, 'text'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'enamad_logo' 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'
|
||||
SELECT 'zaarbox_api_url', 'آدرس API تابلو Zaarbox', '', 0, 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`)
|
||||
@@ -1371,7 +1371,7 @@ SELECT 'zaarbox_price_key', 'شناسه ردیف تابلو (key یا UUID)', ''
|
||||
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'
|
||||
SELECT 'main_product', 'محصول آبشده', '', 0, 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`)
|
||||
@@ -2219,11 +2219,12 @@ UPDATE `settings` SET `title_fa` = 'شناسه ردیف تابلو (key یا UUI
|
||||
-- 'show_to_users_chat', 'chat_api', 'chat_api_key', 'chat_upload_url', 'chat_download_url', 'chat_webhook_secret', 'chat_webhook_base_url'
|
||||
-- );
|
||||
|
||||
-- قابل ویرایش در پنل (can_edit = 1)
|
||||
-- قابل ویرایش در پنل عادی (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',
|
||||
'chart_use_local_data',
|
||||
'require_zero_main_gold_before_other_buy',
|
||||
'sms_notif_order_admin', 'sms_notif_order_customer',
|
||||
'sms_notif_withdraw_admin', 'sms_notif_withdraw_otp', 'sms_notif_login_otp',
|
||||
@@ -2233,7 +2234,7 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'sms_notif_price_trigger', 'sms_notif_wallet_alert', 'sms_notif_support_admin',
|
||||
'deposit_sms_support_number', 'deposit_support_message_text',
|
||||
'deposit_account_holder', 'deposit_card_number', 'deposit_account_number', 'deposit_sheba',
|
||||
'deposit_method_card_to_card', 'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'deposit_method_card_to_card',
|
||||
'endDay',
|
||||
'fee_free', 'fee_service_charge_percentage',
|
||||
'gift_for_referral', 'gift_for_referrer',
|
||||
@@ -2243,9 +2244,6 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'min_first_buy', 'min_withdraw', 'min_deposit', 'minimum_sell',
|
||||
'montzar_mobile', 'montzar_open_buy', 'montzar_open_sell',
|
||||
'montzar_password', 'montzar_product_id',
|
||||
'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',
|
||||
'open_register',
|
||||
'referral_id', 'referral_show', 'referral_limit', 'referral_gift_on_first_order', 'referral_gift_buy_from_montzar',
|
||||
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
|
||||
@@ -2254,10 +2252,9 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'products_site_link_enabled', 'products_site_link_url', 'products_site_link_text',
|
||||
'startDay',
|
||||
'support_messenger', 'support_messenger_id', 'support_messenger_text', 'support_messengers',
|
||||
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman',
|
||||
'do_send_liman',
|
||||
'has_chat',
|
||||
'deposit_support_message_text', 'deposit_account_holder', 'deposit_card_number', 'deposit_account_number', 'deposit_sheba',
|
||||
'deposit_method_card_to_card', 'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'text_about', 'text_rule', 'about_software', 'enamad_url', 'enamad_logo',
|
||||
'price_channel_enabled', 'price_channel_messengers', 'price_channel_diff',
|
||||
'price_channel_min_seconds', 'price_channel_message_text',
|
||||
@@ -2268,13 +2265,23 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'zaarbox_price_key'
|
||||
);
|
||||
|
||||
-- کلیدهای runtime — فقط tenant DB؛ can_edit=1 (خارج از سوپرادمین)
|
||||
-- تنظیمات پیشرفته (can_edit=0) — فقط در پنل پیشرفته؛ ادمین دیپلوی ویرایش میکند
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'up_price', 'down_price', 'price_extreme_date',
|
||||
'main_product', 'price_provider', 'zaarbox_api_url',
|
||||
'montzar_base_url', 'montzar_diff', 'montzar_closed', 'montzar_order_response',
|
||||
'montzar_token', 'montzar_live_price', 'montzar_last_product_log',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh', 'montzar_mazaneh',
|
||||
'node_client_id', 'node_shared_secret', 'external_order_api_enabled',
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
);
|
||||
|
||||
-- کلید runtime باقیمانده — can_edit=1
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'montzar_last_product_log', 'montzar_order_response',
|
||||
'montzar_live_price', 'montzar_mazaneh', 'montzar_diff',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh',
|
||||
'montzar_token', 'montzar_closed',
|
||||
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman'
|
||||
'do_send_liman'
|
||||
);
|
||||
|
||||
-- تفکیک نهایی type (بعد از همه batchها — override روی دیتابیس موجود)
|
||||
@@ -2433,17 +2440,27 @@ WHERE `key` = 'deposit_method_shetab';
|
||||
-- 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'));
|
||||
|
||||
-- آخرین override: کلیدهای runtime همیشه can_edit=1 (tenant-only)
|
||||
-- آخرین override (deploy:tenant → settings:deploy روی هر DB tenant):
|
||||
-- فقط runtime باقیمانده can_edit=1؛ کلیدهای پیشرفته can_edit=0؛ chart_use_local_data=1
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'montzar_last_product_log', 'montzar_order_response',
|
||||
'montzar_live_price', 'montzar_mazaneh', 'montzar_diff',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh',
|
||||
'montzar_token', 'montzar_closed',
|
||||
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman'
|
||||
'do_send_liman'
|
||||
);
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'up_price', 'down_price', 'price_extreme_date',
|
||||
'main_product', 'price_provider', 'zaarbox_api_url',
|
||||
'montzar_base_url', 'montzar_diff', 'montzar_closed', 'montzar_order_response',
|
||||
'montzar_token', 'montzar_live_price', 'montzar_last_product_log',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh', 'montzar_mazaneh',
|
||||
'node_client_id', 'node_shared_secret', 'external_order_api_enabled',
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
);
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` = 'chart_use_local_data';
|
||||
|
||||
SELECT `key`, `can_edit` FROM `settings`
|
||||
WHERE `key` IN ('montzar_token', 'montzar_diff', 'montzar_open_buy')
|
||||
WHERE `key` IN ('montzar_token', 'montzar_diff', 'montzar_open_buy', 'chart_use_local_data', 'price_provider')
|
||||
ORDER BY `key`;
|
||||
|
||||
COMMIT;
|
||||
|
||||
@@ -1646,6 +1646,7 @@ 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',
|
||||
'chart_use_local_data',
|
||||
'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',
|
||||
@@ -1654,6 +1655,7 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'sms_notif_price_trigger', 'sms_notif_wallet_alert', 'sms_notif_support_admin',
|
||||
'deposit_sms_support_number', 'deposit_support_message_text',
|
||||
'deposit_account_holder', 'deposit_card_number', 'deposit_sheba',
|
||||
'deposit_method_card_to_card',
|
||||
'endDay',
|
||||
'fee_free', 'fee_service_charge_percentage',
|
||||
'gift_for_referral', 'gift_for_referrer',
|
||||
@@ -1663,9 +1665,6 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'min_first_buy', 'min_withdraw', 'min_deposit', 'minimum_sell',
|
||||
'montzar_mobile', 'montzar_open_buy', 'montzar_open_sell',
|
||||
'montzar_password', 'montzar_product_id',
|
||||
'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',
|
||||
'open_register',
|
||||
'referral_id', 'referral_show', 'referral_limit', 'referral_gift_on_first_order', 'referral_gift_buy_from_montzar',
|
||||
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
|
||||
@@ -1674,7 +1673,7 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'products_site_link_enabled', 'products_site_link_url', 'products_site_link_text',
|
||||
'startDay',
|
||||
'support_messenger', 'support_messenger_id', 'support_messenger_text',
|
||||
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman',
|
||||
'do_send_liman',
|
||||
'deposit_support_message_text', 'deposit_account_holder', 'deposit_card_number', 'deposit_sheba',
|
||||
'text_about', 'text_rule',
|
||||
'tracking_systems', 'tracking_systems_enabled',
|
||||
@@ -1682,13 +1681,23 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'zaarbox_price_key'
|
||||
);
|
||||
|
||||
-- کلیدهای runtime — فقط tenant DB؛ can_edit=1 (خارج از سوپرادمین)
|
||||
-- تنظیمات پیشرفته (can_edit=0)
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'up_price', 'down_price', 'price_extreme_date',
|
||||
'main_product', 'price_provider', 'zaarbox_api_url',
|
||||
'montzar_base_url', 'montzar_diff', 'montzar_closed', 'montzar_order_response',
|
||||
'montzar_token', 'montzar_live_price', 'montzar_last_product_log',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh', 'montzar_mazaneh',
|
||||
'node_client_id', 'node_shared_secret', 'external_order_api_enabled',
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
);
|
||||
|
||||
-- کلید runtime باقیمانده
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'montzar_last_product_log', 'montzar_order_response',
|
||||
'montzar_live_price', 'montzar_mazaneh', 'montzar_diff',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh',
|
||||
'montzar_token', 'montzar_closed',
|
||||
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman'
|
||||
'do_send_liman'
|
||||
);
|
||||
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` = 'min_deposit';
|
||||
@@ -1754,14 +1763,23 @@ UPDATE `settings` SET `type` = 'number' WHERE `key` IN (
|
||||
-- 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'));
|
||||
|
||||
-- آخرین override: کلیدهای runtime همیشه can_edit=1 (tenant-only)
|
||||
-- آخرین override: فقط runtime باقیمانده can_edit=1؛ بقیهٔ پیشرفته can_edit=0
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
||||
'montzar_last_product_log', 'montzar_order_response',
|
||||
'montzar_live_price', 'montzar_mazaneh', 'montzar_diff',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh',
|
||||
'montzar_token', 'montzar_closed',
|
||||
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman'
|
||||
'do_send_liman'
|
||||
);
|
||||
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
||||
'up_price', 'down_price', 'price_extreme_date',
|
||||
'main_product', 'price_provider', 'zaarbox_api_url',
|
||||
'montzar_base_url', 'montzar_diff', 'montzar_closed', 'montzar_order_response',
|
||||
'montzar_token', 'montzar_live_price', 'montzar_last_product_log',
|
||||
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh', 'montzar_mazaneh',
|
||||
'node_client_id', 'node_shared_secret', 'external_order_api_enabled',
|
||||
'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
|
||||
'payping_verify_url', 'payping_start_url', 'payping_strict_failed_withdraw',
|
||||
'payping_fin_token', 'chart_id', 'payping_round_toman', 'payping_gateway_items',
|
||||
'payping_gateway_name', 'payping_fin_customer_id', 'payping_fin_url'
|
||||
);
|
||||
UPDATE `settings` SET `can_edit` = 1 WHERE `key` = 'chart_use_local_data';
|
||||
|
||||
COMMIT;
|
||||
|
||||
|
||||
@@ -53,7 +53,9 @@ UPDATE `settings` SET `menu` = CASE
|
||||
'store_status', 'key', 'is_store', 'sms_panel', 'enamad_url', 'enamad_logo'
|
||||
) THEN 'general'
|
||||
WHEN `key` LIKE 'min_%' OR `key` LIKE 'minimum_%' OR `key` LIKE 'balance_report_exclude%' THEN 'limits'
|
||||
WHEN `key` LIKE 'zaarbox_%' OR `key` IN ('price_provider', 'main_product') THEN 'price_source'
|
||||
WHEN `key` = 'chart_use_local_data'
|
||||
OR `key` LIKE 'zaarbox_%'
|
||||
OR `key` IN ('price_provider', 'main_product') THEN 'price_source'
|
||||
WHEN `key` LIKE 'node_%' OR `key` IN ('montify_name', 'external_order_api_enabled') THEN 'store'
|
||||
WHEN `key` LIKE 'chart_%' THEN 'chart'
|
||||
WHEN `key` IN ('wss_enabled', 'sse_path', 'wss_path', 'profit_gold_api_enabled') THEN 'infra'
|
||||
|
||||
Reference in New Issue
Block a user