<?php


namespace App\Http\Validators;

use App\Model\SupplierChannelModel;
use App\Model\SupplierContactModel;
use Validator;

class SupplierContactValidator
{
    public function checkSave($data)
    {
        $data = BatchTrim($data);
        $rules = [
            "supplier_consignee" => "required",
            "supplier_email" => "required|email",
            "supplier_mobile" => "required",
            "supplier_telephone" => "required",
            "supplier_position" => "required",
            "can_check_uids" => "required",
        ];
        $messages = $this->messages();
        $validator = Validator::make($data, $rules, $messages);

        //判断联系方式的表单验证
        if ($validator->fails()) {
            return $validator->errors()->first();
        }

        $contactModel = new SupplierContactModel();
        //如果是原厂或者代理商性质的供应商,联系人不能重复
        $supplierModel = new SupplierChannelModel();
        $supplier = $supplierModel->where('supplier_id', $data['supplier_id'])->first()->toArray();
        if ($supplier['supplier_group'] == 1 || $supplier['supplier_group'] == 4) {
            $query = $contactModel->where('supplier_id', $data['supplier_id'])
                ->where(function ($q) use ($data) {
                    $q->where('supplier_email', $data['supplier_email'])
                        ->orWhere('supplier_mobile', $data['supplier_mobile']);
                });
            //新增
            if (empty($data['contact_id'])) {
                $count = $query->count();
            } else {
                //修改
                $count = $query->where('contact_id', '!=', $data['contact_id'])->count();
            }
            if ($count) {
                return '原厂或者代理商性质的供应商不允许重复的联系人,<br>该供应商已经存在手机号或者邮箱一样的联系人,请联系管理人员查看具体详情';
            }
        }

    }

    private function messages()
    {
        return [
            'supplier_consignee.required' => '联系人 不能为空',
            'supplier_email.required' => '联系人邮箱 不能为空',
            'supplier_email.email' => '邮箱格式不对',
            'supplier_mobile.required' => '联系人电话 不能为空',
            'supplier_telephone.required' => '联系人座机 不能为空',
            'supplier_position.required' => '联系人职位 不能为空',
            'can_check_uids.required' => '采购员 不能为空',
        ];
    }
}