<?php

namespace App\Http\Controllers\Web;

use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;

/**
 * web端前台系统控制器基类
 * Class WebBaseController
 * @package App\Http\Controllers\Web
 */
class WebBaseController extends BaseController
{
    protected function sendSuccessResponse($data = [])
    {
        $responseData['message']='OK';
        $responseData['data']=$data;
        return response()->json($responseData);
    }

    protected function sendErrorResponse($message, $data = [], $status = 400)
    {
        $responseData['message']=$message;
        $responseData['errors']=$data;
        return response()->json($responseData)->setStatusCode($status);
    }

    protected function EResponse($data = [])
    {
        return response()->json($data);
    }

    /**
     * 显示信息页面
     * @param $message
     * @param $jump_url
     * @param bool $is_error
     * @param string $return_page_name
     * @param int $count_down
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    protected function showMessage($message, $jump_url, $is_error = false, $return_page_name = "上一页", $count_down = 10)
    {
        return view('app.show_message', compact(['message', 'jump_url', 'is_error', 'return_page_name', 'count_down']));
    }

    /**
     * 平板查询失败页面
     * @param $message
     * @param $jump_url
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    protected function notFount($message)
    {
        return view('app.hardware.pad.notfound', compact(['message']));
    }

    protected function putSeoData($key, $value)
    {
        $unset_keys=['username', 'password', 'remember_token'];
        foreach ($unset_keys as $unset_key) {
            unset($value[$unset_key]);
        }
        $seo_data=View::shared('seo_data', []);
        $seo_data[$key]=$value;
        View::share('seo_data', $seo_data);
    }

    /**
     * @return \Illuminate\Contracts\Auth\Authenticatable|null
     */
    protected function getLoginUser()
    {
        if (Auth::guard('web-member')->check()) {
            return Auth::guard('web-member')->user();
        }

        if (Auth::guard('web-company')->check()) {
            return Auth::guard('web-company')->user();
        }

        if (Auth::guard('web-organization')->check()) {
            return Auth::guard('web-organization')->user();
        }

        return null;
    }
}