Files
mohmdsdgandCursor 027170a33f fix(settings): fee only from fee_service_charge_percentage; deploy:tenant
Remove service_charge_percentage alias and config/fee.php fallback (empty → 0).
Move code-managed Montzar/price runtime keys to can_edit=1 in deploy SQL.
Add settings:deploy and deploy:tenant artisan commands for server deploy.
Advanced admin settings merge runtime keys from local DB; block manual edits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 19:55:29 +03:30

56 lines
1.9 KiB
PHP

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class DeployTenantCommand extends Command
{
protected $signature = 'deploy:tenant
{database?* : نام دیتابیس برای settings:deploy (پیش‌فرض DB_DATABASE)}
{--preserve : deploy_settings_const_preserve_value_sync_can_edit.sql}
{--file= : مسیر SQL سفارشی برای settings:deploy}
{--skip-migrate : فقط settings:deploy}
{--skip-settings : فقط migrate}';
protected $description = 'migrate + deploy_settings_const.sql — دیپلوی DB tenant با یک دستور';
public function handle(): int
{
if (! $this->option('skip-migrate')) {
$this->info('==> 1/2 php artisan migrate --force');
if ($this->call('migrate', ['--force' => true]) !== self::SUCCESS) {
$this->error('migrate ناموفق بود.');
return self::FAILURE;
}
}
if (! $this->option('skip-settings')) {
$this->info('==> 2/2 php artisan settings:deploy');
$settingsArgs = [];
$databases = $this->argument('database');
if ($databases !== [] && $databases !== null) {
$settingsArgs['database'] = $databases;
}
if ($this->option('preserve')) {
$settingsArgs['--preserve'] = true;
}
if ($this->option('file')) {
$settingsArgs['--file'] = $this->option('file');
}
if ($this->call('settings:deploy', $settingsArgs) !== self::SUCCESS) {
$this->error('settings:deploy ناموفق بود.');
return self::FAILURE;
}
}
$this->info('==> deploy:tenant done');
return self::SUCCESS;
}
}