<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

final class CreditLineDisableAllSitesCommand extends Command
{
    protected $signature = 'lottery:credit-line-disable-all-sites';

    protected $description = 'Disable credit_line_mode on all admin sites (rollback)';

    public function handle(): int
    {
        $sites = DB::table('admin_sites')->get();
        $count = 0;

        foreach ($sites as $site) {
            $extra = json_decode((string) ($site->extra_json ?? '{}'), true);
            if (! is_array($extra)) {
                $extra = [];
            }
            unset($extra['credit_line_mode']);
            DB::table('admin_sites')->where('id', $site->id)->update([
                'extra_json' => json_encode($extra),
                'updated_at' => now(),
            ]);
            $count++;
        }

        $this->info("Disabled credit_line_mode on {$count} site(s).");

        return self::SUCCESS;
    }
}
