<?php

namespace app;

use app\common\model\Token;
use app\common\model\User\User;
use think\facade\Env;

// 应用请求对象类
class Request extends \think\Request
{

    /**
     * 获取当前用户
     *
     * @return User
     * @date 2023-01-03
     * @example
     * @author admin
     * @since 1.0.0
     */
    public static function getCurrentUser(): User
    {
        return Token::getCurrentUser();
    }

    /**
     * 获取当前token
     *
     * @return Token
     * @date 2023-01-03
     * @example
     * @author admin
     * @since 1.0.0
     */
    public static function getCurrentToken(): Token
    {
        return Token::getCurrent();
    }

    /**
     * 是否登陆
     *
     * @return boolean
     * @date 2022-12-30
     * @example
     * @author admin
     * @since 1.0.0
     */
    public static function isLogin(): bool
    {
        return Token::isLogin();
    }

    /**
     * 是否开发模式
     *
     * @date 2022-04-07
     * @example
     * @author admin
     * @since 1.0.0
     */
    public static function isDev(): bool
    {
        return !self::isProd();
    }

    /**
     * 是否生产环境
     *
     * @date 2022-04-07
     * @example
     * @author admin
     * @since 1.0.0
     */
    public static function isProd(): bool
    {
        return Env::get('app_mode') === 'production';
    }
}
