fix(settings): PHP sync for runtime can_edit after deploy

Force can_edit=1 for Montzar/price runtime keys via settings:deploy
and settings:sync-runtime-can-edit, so tenant DB stays correct even
when an older deploy SQL is still on the server.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-19 21:07:12 +03:30
co-authored by Cursor
parent b7eed369c6
commit 924234bb19
6 changed files with 169 additions and 0 deletions
+3
View File
@@ -98,6 +98,9 @@ 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 در تنظیمات عادی نیست | **`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) |
| `Unknown column 'product_id'` روی `wallets` / `/customer/me` | `mysql ... < database/sql/gholaktala_upgrade.sql` سپس merge settings |
| upgrade کامل قلک طلا | `bash database/sql/run_gholaktala_upgrade.sh` |
+4
View File
@@ -2168,6 +2168,10 @@ UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman'
);
SELECT `key`, `can_edit` FROM `settings`
WHERE `key` IN ('montzar_token', 'montzar_diff', 'montzar_open_buy')
ORDER BY `key`;
COMMIT;
SELECT 'deploy_settings_const.sql finished' AS status;
@@ -1593,6 +1593,15 @@ 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'));
-- آخرین override: کلیدهای runtime همیشه can_edit=1 (tenant-only)
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'
);
COMMIT;
SELECT 'deploy_settings_const.sql finished' AS status;