<?php

namespace app\common\validate;

use think\Validate;

class QualityPlan extends Validate
{
    /**
     * 定义验证规则
     * 格式:'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'title|计划名称'  =>  'require|length:1,100',
        'start_time|计划开始时间'  =>  'require|date|checkStartTime',
        'end_time|计划结束时间'  =>  'require|date',
        'content' => 'require|checkContent'
    ];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'title.length' => '计划名称必须在100字以内',
        'content.require' => '未设置任务',
    ];

    protected function checkStartTime($value,$rule,$data=[])
    {
        $curDay = date('Y-m-d');
        if($curDay > $data['start_time']){
            return '计划开始时间不能小于当前时间';
        }
        if($data['start_time'] > $data['end_time']){
            return '计划结束时间不能大于计划开始时间';
        }

        return true;
    }

    protected function checkContent($value,$rule,$data=[])
    {
        $content = json_decode($data['content'],true);
        if(!$content){
            return '未设置任务';
        }
        if(empty($content['addrForms'])){
            return '未设置检查内容';
        }
        if(empty($content['tasks']['list'])){
            return '未设置任务';
        }

        return true;
    }


}