<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;

class UpgradeController extends Controller
{
    /**
     * 系统升级接口
     * @param Request $request
     * @return array
     */
    public function index(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'os' => ['required', Rule::in('ios', 'android')],
            'version' => 'required',
        ]);
        if ($validator->fails()) {
            return jsonError($validator->errors()->first());
        }
        $upgradeInfo = json_decode(config('customer.app_upgrade_info'), true);
        $info = [];
        if ($upgradeInfo) {
            $version = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['version'] : '1.0.0';
            $clientVersion = $request['version'];
            $url = isset($upgradeInfo[$request['os']]) ? $upgradeInfo[$request['os']]['url'] : '';
            $row = version_compare($version, $clientVersion);
            if (-1 == $row) {
                $info['upgrade'] = 0;
            } elseif (0 == $row) {
                $info['upgrade'] = 0;
            } elseif (1 == $row) {
                $info['upgrade'] = 1;
            }
            $info['url'] = $url;
        } else {
            $info['upgrade'] = 0;
            $info['url'] = '';
            Log::error('未设置升级配置信息');
        }
        return $this->jsonSuccess($info);
    }
}