<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use JiGuang\JSMS as JSMS;
use Illuminate\Support\Facades\Redis;
use Dingo\Api\Http\Response;
use Validator;
use DB;
use App\Models\User;
use App\Services\SystemService;
use App\Models\UserAddress;
use App\Models\Doctors;
use App\Models\Article;
use App\Models\Question;
use App\Models\QuestionOrder;

/**
 *
 * Copyright: Copyright (c) 2019
 *
 * @Description: 咨询
 * @version: v1.0.0
 * @author: fengyichao
 * @date: 2019年9月29日 下午4:43:44
 *
 * Modification History:
 * Date         Author          Version            Description
 *---------------------------------------------------------*
 * 2019年9月29日     fengyichao           v1.0.0               修改原因
 */
class QuestionController extends ApiController {
	// 利用 Laravel 的自动解析功能注入 CartService 类
	public function __construct(SystemService $systemService) {
		$this->systemService = $systemService;
	}

	/**
	 *
	 * @api {post} qusetion/detail 咨询-咨询详情
	 * @apiName qusetion/detail
	 * @apiGroup qusetion
	 * @apiParam {string} order_no 咨询订单的订单编号
	 * @apiSuccess {Object}  doctor 医生信息
	 * @apiSuccess {Object}  user 用户信息 
	 * @apiSuccess {String}  end_time 结束时间 
	 * @apiSuccess {List[Map]} questions 问答列表（未做分页）
	 * @apiSuccess (questions) {int} id id
	 * @apiSuccess (questions) {string} content 内容
	 * @apiSuccess (questions) {string} type  ask:提问 answer:回答
	 * @apiSuccess (questions) {string} content_type  word:文字 img:图片
	 * @apiSuccess {int} status  咨询状态 1:待咨询 2:咨询中 3:已完成
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8080/api/question/detail?token=c81e728d9d4c2f636f067f89cc14862c&order_no=20191109170003423738
	 */
	public function detail(Request $request) {
		$rules = [ 
				'order_no' => [ 
						'required'
				]
		];
		$validator = app ( 'validator' )->make ( $request->all (), $rules );
		if ($validator->fails ()) {
			return $this->throwErrors ( $validator );
		}
		$questionOrder = QuestionOrder::where ( 'no', $request->order_no )->first ();
		$doctor = Doctors::find ( $questionOrder->doctor_id );
		$resultData ['user'] = User::find ( $request->user_id );
		$resultData ['doctor'] = $doctor;
		$resultData ['questions'] = Question::where ( 'order_no', $request->order_no )->get ();
		$resultData ['end_time'] = '2019-11-10 18:00:00';
		$resultData ['status'] =$questionOrder->status;
		
		return $this->success ( $resultData );
	}
	/**
	 *
	 * @api {post} qusetion/create 咨询-发送咨询
	 * @apiName qusetion/create
	 * @apiGroup qusetion
	 * @apiParam {string} order_no 咨询订单的订单编号
	 * @apiParam {string} content 咨询内容 不支持图文混合
	 * @apiParam {string} content_type word:纯文字 img:纯图片 请自行判断类型并传给我
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8080/api/question/create?token=c81e728d9d4c2f636f067f89cc14862c&content=您好，医生！&order_no=20191109170003423738
	 */
	public function create(Request $request) {
		$rules = [ 
				'order_no' => [ 
						'required'
				]
		];
		$validator = app ( 'validator' )->make ( $request->all (), $rules );
		if ($validator->fails ()) {
			return $this->throwErrors ( $validator );
		}
		$data = $request->all ();
		$data ['type'] = 'ask';
		Question::create ( $data );
		return $this->success ();
	}
}
