<?php

namespace App\Console\Commands;

use App\Services\GcmsUpdateService;
use Illuminate\Console\Command;

class GcmsCheckUpdateCommand extends Command
{
    protected $signature = 'gcms:check-update';

    protected $description = 'Interroge le manifeste de mises à jour GCMS et met en cache le résultat';

    public function handle(GcmsUpdateService $updates): int
    {
        if (! $updates->isConfigured()) {
            $this->warn('Mises à jour GCMS désactivées ou URL du manifeste non configurée.');

            return self::SUCCESS;
        }

        $r = $updates->refreshCheckResult(true);
        if (! $r['ok']) {
            $this->error($r['error'] ?? 'Échec.');

            return self::FAILURE;
        }

        $data = $r['data'] ?? [];
        $this->info('Version installée : '.($data['current_version'] ?? '?'));
        $this->info('Dernière version : '.($data['latest_version'] ?? '?'));
        $this->info('Mise à jour disponible : '.(! empty($data['update_available']) ? 'oui' : 'non'));

        return self::SUCCESS;
    }
}
