<?php

namespace App\Http\Controllers\Channel\Order;

use App\Http\Controllers\Wap\BaseController;
use Illuminate\Http\Request;
use App\Modules\Subscribe\Services\BookOrderService;
use App\Modules\Subscribe\Services\ChapterOrderService;
use App\Modules\Subscribe\Services\OrderService;
use App\Http\Controllers\Channel\Order\Transformers\BookOrderTransformer;
use App\Http\Controllers\Channel\Order\Transformers\ChapterOrderTransformer;
use App\Http\Controllers\Channel\Order\Transformers\ChargeListTransformer;


class OrdersController extends BaseController
{
    /**
     * @apiDefine Order 订单
     */



    /**
     * @apiVersion 1.0.0
     * @apiDescription 单本消费记录
     * @api {get} order/bookOrderList 单本消费记录
     * @apiGroup Order
     * @apiName bookOrderList
     * @apiParam  {int}         uid   uid
     * @apiParam  {int}         [uid]  page_size
     * @apiParam  {int}         [page]  页码
     * @apiSuccess {int}         code 状态码
     * @apiSuccess {String}      msg  信息
     * @apiSuccess {object}      data 结果集
     * @apiSuccess {int}         id     序号
     * @apiSuccess {int}         type   类型
     * @apiSuccess {Int}         detail 详情
     * @apiSuccess {Int}         fee    书币
     * @apiSuccess {Int}         book_name 书名
     * @apiSuccess {Int}         chapter_name 章节名
     * @apiSuccess {String}      created_at 时间
     * @apiSuccessExample {json} Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       code: 0,
     *       msg: "",
     *       data: list:[
     *                  {
     *                       id: 40,
     *                       type: "消耗",
     *                       detail: "单本订购",
     *                       book_name: "你的爱情那么伤",
     *                       chapter_name: "",
     *                       fee: 899,
     *                       created_at: "2017-12-08 20:07:27"
     *                  }
     *               ]
     *            meta: {
     *                       total: 1,
     *                       per_page: 15,
     *                       current_page: 1,
     *                       last_page: 1,
     *                       next_page_url: "",
     *                       prev_page_url: ""
     *               }
     *       }
     */
    public function bookOrderList(Request $request)
    {
        $uid = $request->input('uid');

        $page_size = $request->input('page_size', 15);
        $book_order = BookOrderService::getRecord($uid, $page_size);
        return response()->pagination(new BookOrderTransformer(), $book_order);
    }


    /**
     * @apiVersion 1.0.0
     * @apiDescription 章节消费记录
     * @api {get} order/chapterOrderList 章节消费记录
     * @apiGroup Order
     * @apiName chapterOrderList
     * @apiParam  {int}         uid   uid
     * @apiParam  {int}         [uid]  page_size
     * @apiParam  {int}         [page]  页码
     * @apiSuccess {int}         code 状态码
     * @apiSuccess {String}      msg  信息
     * @apiSuccess {object}      data 结果集
     * @apiSuccess {int}         id     序号
     * @apiSuccess {int}         type   类型
     * @apiSuccess {Int}         detail 详情
     * @apiSuccess {Int}         fee    书币
     * @apiSuccess {Int}         book_name 书名
     * @apiSuccess {Int}         chapter_name 章节名
     * @apiSuccessExample {json} Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       code: 0,
     *       msg: "",
     *       data: list:[
     *               {
     *                       id: 40,
     *                       type: "消耗",
     *                       detail: "单本订购",
     *                       book_name: "你的爱情那么伤",
     *                       chapter_name: "",
     *                       fee: 899,
     *                       created_at: "2017-12-08 20:07:27"
     *                  }
     *               ]
     *            meta: {
     *                       total: 1,
     *                       per_page: 15,
     *                       current_page: 1,
     *                       last_page: 1,
     *                       next_page_url: "",
     *                       prev_page_url: ""
     *               }
     *       }
     */
    public function chapterOrderList(Request $request)
    {
        $uid = $request->input('uid');
        $chapter_model = new ChapterOrderService();
        $page_size = $request->input('page_size', 15);
        $chapter_order = $chapter_model->getByUid($uid, $page_size);
        return response()->pagination(new ChapterOrderTransformer(), $chapter_order);
    }


    /**
     * @apiVersion 1.0.0
     * @apiDescription 充值记录
     * @api {get} order/chargeRecordLists 充值记录
     * @apiGroup Order
     * @apiName chargeRecordLists
     * @apiParam  {int}         uid   uid
     * @apiParam  {int}         [uid]  page_size
     * @apiParam  {int}         [page]  页码
     * @apiSuccess {int}         code 状态码
     * @apiSuccess {String}      msg  信息
     * @apiSuccess {object}      data 结果集
     * @apiSuccess {int}         id     序号
     * @apiSuccess {int}         type   类型
     * @apiSuccess {Int}         detail 详情
     * @apiSuccess {Int}         fee    书币
     * @apiSuccess {Int}         book_name 书名
     * @apiSuccess {Int}         chapter_name 章节名
     * @apiSuccessExample {json} Success-Response:
     *     HTTP/1.1 200 OK
     *    {
     *       code: 0,
     *       msg: "",
     *           data: {
     *               list: [
     *               {
     *                       id: 40,
     *                       type: "消耗",
     *                       detail: "单本订购",
     *                       book_name: "你的爱情那么伤",
     *                       chapter_name: "",
     *                       fee: 899,
     *                       created_at: "2017-12-08 20:07:27"
     *                  }
     *       ],
     *           meta: {
     *               total: 1,
     *               per_page: 15,
     *               current_page: 1,
     *               last_page: 1,
     *               next_page_url: "",
     *               prev_page_url: ""
     *           }
     *       }
     *    }
     */
    public function chargeRecordLists(Request $request)
    {
        $page_size = $request->input('page_size', 15);
        $uid = $request->input('uid');
        $res = OrderService::getSuccessOrderList($uid, $page_size);
        foreach ($res as &$v){
            $v->type = '充值';
            $v->detail = '充值';
            if($v->order_type == 'RECHARGE'){

                $v->type = '充值';
                $v->detail = '充值书币';
            }
            if($v->order_type == 'BOOK'){
                $v->type = '充值';
                $v->detail = '单本购买';
            }
            if($v->order_type == 'YEAR'){
                $v->type = '充值';
                $v->detail = '包年';
            }
        }
        return response()->pagination(new ChargeListTransformer(), $res);
    }

}