<?php
namespace app\api\controller;

use app\api\logic\VehicleLogic;
use app\common\model\vehicle\Vehicle;
use app\common\model\vehicle\VehicleUser;
use think\response\Json;

/**
 * 车辆管理
 * Class VehicleController
 * @package app\api\controller
 */
class VehicleController extends BaseApiController
{
    public array $notNeedLogin = ['getCarLocal','getCarHistory','createRentCarUser'];

    //获取车辆当前位置
    public function getCarLocal():Json {
        $params = $this->request->get(['car_id']);
        if(empty($params['car_id'])){
            return $this->fail('缺少必要参数');
        }
        $result = VehicleLogic::getCarLocal($params);
        //返回数据
        if($result['code'] == 1){
            return $this->success($result['msg'],$result['data']);
        }else{
            return $this->fail($result['msg']);
        }
    }

    public function getCarHistory():Json {
        //获取参数
        $params = $this->request->get(['car_id','start_time','end_time']);
        //验证参数
        if(empty($params['car_id']) || empty($params['start_time']) || empty($params['end_time'])){
            return $this->fail('缺少必要参数');
        }
        //验证时间格式
        if(!checkDateIsValid($params['start_time'],['Y-m-d H:i:s']) || !checkDateIsValid($params['end_time'],['Y-m-d H:i:s'])) {
            return $this->fail('日期格式错误');
        }
        //获取数据
        $result = VehicleLogic::getCarHistory($params);
        //返回数据
        if($result['code'] == 1){
            return $this->success($result['msg'],$result['data']);
        }else{
            return $this->fail($result['msg']);
        }
    }

    public function createRentCarUser() {
        //获取参数
        $params = $this->request->post(['car_id','user_id','user_name','user_phone']);
        if(empty($params['car_id']) || empty($params['user_id']) || empty($params['user_name']) || empty($params['user_phone'])){
            return $this->fail('缺少必要参数');
        }
        $result = VehicleUser::create([
            'car_id' => $params['car_id'],
            'user_id' => $params['user_id'],
            'user_name' => $params['user_name'],
            'user_phone' => $params['user_phone'],
        ]);
        return $result->id ? $this->success('sucess') : $this->fail('error');
    }
}