<?php namespace App\Http\Requests\Api;

use App\Http\Requests\BaseRequest;
use App\Rules\JsonArray;
/**
 * 订单验证器
 * 
 */
class Orders extends BaseRequest
{
    /**
     * 获取应用于请求的规则
     *
     * @return array
     */
    public function rules()
    {
        // 编辑时排除ID
        // 返回结果
        return      [
            // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则，只需要将 bail 添加到规则中：
            // 验证字段，验证规则，提示信息
            // 'name'       => 'string|max:20',
            'id'                => 'required|integer|gt:0',
            // 产品信息
            'product_list' 	    => ['required','json',new JsonArray(['product_id'=>'required|numeric|gt:0','product_skuid'=>'numeric|gte:0','buy_num'=>'required|integer|gte:0'])],
            // 下单地址
            'addr_id' 	        => 'required|integer|gt:0',
        ];
    }

    // 场景列表
    protected   $scenes         = [
        'get_list'              => [],
        'create'                => ['product_list','addr_id'],
        'cancel'                => ['id'],
        'get_item'              => ['id'],
        'get_detail'            => ['id'],
	];

    /**
     * 获取已定义验证规则的错误消息
     *
     * @return array
     */
    public function messages()
    {
        return [
            'id.required'   	        => '请选择订单',
            'id.integer'   	            => '请选择订单',
            'id.gt'   	                => '请选择订单',
            'product_list.required'   	=> '请选择需下单产品',
            'product_list.json'   		=> '下单产品数据格式有误',
            'addr_id.required'   	    => '请选择收货地址',
        ];
    }

}
