<?php



namespace app\validate\merchant;

use think\Validate;

class StoreProductPresellValidate extends Validate
{
    protected $failException = true;

    protected $rule = [
        "image|主图" => 'require|max:128',
        "slider_image|轮播图" => 'require',
        "store_name|商品名称" => 'require|max:128',
        "store_info|商品简介" => 'require|max:128',
        "product_id|原商品ID" => 'require',
        "temp_id|运费模板" => 'require',
        "start_time|开始时间" => 'require|checkTime',
        "end_time|结束时间" => "require",
        "presell_type|预售类型" => "require",
        "final_start_time|尾款支付开始时间" => "requireIf:presell_type,2",
        "final_end_time|尾款支付结束时间" => "requireIf:presell_type,2",
        "delivery_type|发货类型" => "require",
        "delivery_day|发货等待天数" => "require",
        "attrValue|商品属性" => "require|Array"
    ];

    protected function checkTime($value,$rule,$data)
    {
        $start_time = strtotime($data['start_time']);
        $end_time = strtotime($data['end_time']);
        if($start_time > $end_time) return '活动开始时间必须小于结束时间';
        if($start_time < time()) return '活动开始时间必须大于当前时间';
        if($data['presell_type'] == 2){
            $final_start_time = strtotime($data['final_start_time']);
            $final_end_time = strtotime($data['final_end_time']);
            if($end_time > $final_start_time) return '尾款支付开始时间必须大于定金结束时间';
            if($final_end_time < $final_start_time) return '尾款支付开始时间必须小于结束时间';
        }
        return true;
    }
}
