Files
boursecu_server/app/Console/Commands/SyncRuntimeSettingsCanEditCommand.php
T

44 lines
1.4 KiB
PHP
Raw Normal View History

<?php
namespace App\Console\Commands;
use App\Services\SettingsRuntimeCanEditSync;
use Illuminate\Console\Command;
class SyncRuntimeSettingsCanEditCommand extends Command
{
protected $signature = 'settings:sync-runtime-can-edit
{database? : نام دیتابیس (پیش‌فرض DB_DATABASE)}';
protected $description = 'تثبیت can_edit=1 برای کلیدهای runtime tenant (Montzar، up/down_price، …)';
public function handle(SettingsRuntimeCanEditSync $sync): int
{
$database = trim((string) ($this->argument('database') ?: config('database.connections.'.config('database.default').'.database', '')));
if ($database === '') {
$this->error('DB_DATABASE خالی است یا database را بدهید.');
return self::FAILURE;
}
$sync->useDatabase($database);
$updated = $sync->sync();
$this->info("DB {$database}: {$updated} row(s) updated");
foreach ($sync->statusMap() as $key => $canEdit) {
$this->line(" {$key} => can_edit={$canEdit}");
}
$violations = $sync->violations();
if ($violations !== []) {
$this->error('هنوز can_edit≠1: '.implode(', ', array_keys($violations)));
return self::FAILURE;
}
$this->info('OK — همه کلیدهای runtime can_edit=1');
return self::SUCCESS;
}
}