<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StoreStudentRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $rules = [
            'registerDate' => 'required|date_format:d/m/Y',
            'branch' => 'required',
            'title' => 'required',
            'firstname' => 'required',
            'lastname' => 'required',
            'idCard' => 'required',
            'address' => 'required',
            'district' => 'required',
            'amphoe' => 'required',
            'province' => 'required',
            'phone1' => 'required|numeric',
            'birthdate' => 'required|date_format:d/m/Y',
            'license' => 'required',
            'course' => 'required',
            'purpose' => 'required',
            'pay' => 'required',
            'method' => 'required',
            'payTime' => 'required'
        ];

        if($this->input('drive1')=='1'){
            $rules = array_merge($rules,['gear1' => 'required']);
            $rules = array_merge($rules,['date1' => 'required|date_format:d/m/Y']);
            $rules = array_merge($rules,['starttime1' => 'required']);
            $rules = array_merge($rules,['hour1' => 'required']);
            $rules = array_merge($rules,['vehicle1' => 'required']);
        }
        if($this->input('drive2')=='1'){
            $rules = array_merge($rules,['gear2' => 'required']);
            $rules = array_merge($rules,['date2' => 'required|date_format:d/m/Y']);
            $rules = array_merge($rules,['starttime2' => 'required']);
            $rules = array_merge($rules,['hour2' => 'required']);
            $rules = array_merge($rules,['vehicle2' => 'required']);
        }
        if($this->input('drive3')=='1'){
            $rules = array_merge($rules,['gear3' => 'required']);
            $rules = array_merge($rules,['date3' => 'required|date_format:d/m/Y']);
            $rules = array_merge($rules,['starttime3' => 'required']);
            $rules = array_merge($rules,['hour3' => 'required']);
            $rules = array_merge($rules,['vehicle3' => 'required']);
        }
        if($this->input('drive4')=='1'){
            $rules = array_merge($rules,['gear4' => 'required']);
            $rules = array_merge($rules,['date4' => 'required|date_format:d/m/Y']);
            $rules = array_merge($rules,['starttime4' => 'required']);
            $rules = array_merge($rules,['hour4' => 'required']);
            $rules = array_merge($rules,['vehicle4' => 'required']);
        }

        // 2nd course register
        if($this->input('course2')!="") {

            $rules = array_merge($rules,['course2' => 'required']);
            $rules = array_merge($rules,['purpose2' => 'required']);
            $rules = array_merge($rules,['pay2' => 'required']);

            if($this->input('drive21')=='1'){
                $rules = array_merge($rules,['gear21' => 'required']);
                $rules = array_merge($rules,['date21' => 'required|date_format:d/m/Y']);
                $rules = array_merge($rules,['starttime21' => 'required']);
                $rules = array_merge($rules,['hour21' => 'required']);
                $rules = array_merge($rules,['vehicle21' => 'required']);
            }
            if($this->input('drive22')=='1'){
                $rules = array_merge($rules,['gear22' => 'required']);
                $rules = array_merge($rules,['date22' => 'required|date_format:d/m/Y']);
                $rules = array_merge($rules,['starttime22' => 'required']);
                $rules = array_merge($rules,['hour22' => 'required']);
                $rules = array_merge($rules,['vehicle22' => 'required']);
            }
            if($this->input('drive23')=='1'){
                $rules = array_merge($rules,['gear23' => 'required']);
                $rules = array_merge($rules,['date23' => 'required|date_format:d/m/Y']);
                $rules = array_merge($rules,['starttime23' => 'required']);
                $rules = array_merge($rules,['hour23' => 'required']);
                $rules = array_merge($rules,['vehicle23' => 'required']);
            }
            if($this->input('drive24')=='1'){
                $rules = array_merge($rules,['gear24' => 'required']);
                $rules = array_merge($rules,['date24' => 'required|date_format:d/m/Y']);
                $rules = array_merge($rules,['starttime24' => 'required']);
                $rules = array_merge($rules,['hour24' => 'required']);
                $rules = array_merge($rules,['vehicle24' => 'required']);
            }
        }

        return $rules;
    }

    public function messages()
    {
        $msg = [
            'registerDate.required' => 'กรุณาเลือกวันที่สมัครเรียน',
            'registerDate.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง',
            'branch.required' => 'กรุณาเลือกสาขาที่สมัคร',
            'title.required' => 'กรุณาเลือกคำนำหน้าชื่อ',
            'firstname.required' => 'กรุณากรอกชื่อ',
            'lastname.required' => 'กรุณากรอกนามสกุล',
            'idCard.required' => 'กรุณากรอกเลขที่บัตรประชาชน/พาสปอต',
            'address.required' => 'กรุณากรอกที่อยู่',
            'district.required' => 'กรุณากรอกตำบล / แขวง',
            'amphoe.required' => 'กรุณากรอกอำเภอ / เขต',
            'province.required' => 'กรุณากรอกจังหวัด',
            'phone1.required' => 'กรุณากรอกหมายเลขโทรศัพท์',
            'phone1.numeric' => 'กรุณากรอกเป็นตัวเลข',
            'birthdate.required' => 'กรุณากรอกวันเกิด',
            'birthdate.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง',
            'license.required' => 'กรุณาเลือกมีใบอนุฐาตขับขี่หรือไม่',
            'course.required' => 'กรุณาเลือกหลักสูตรที่เรียน',
            'purpose.required' => 'กรุณาเลือกรูปแบบการเรียน',
            'pay.required' => 'กรุณากรอกจำนวนเงิน',
            'method.required' => 'กรุณาเลือกรูปแบบการชำระ',
            'payTime.required' => 'กรุณาเลือกเวลาที่ทำการชำระ',
        ];
        if($this->input('drive1')=='1'){
            $msg = array_merge($msg,['gear1.required' => 'กรุณาเลือกเกียร์']);
            $msg = array_merge($msg,['date1.required' => 'กรุณาเลือกวันที่']);
            $msg = array_merge($msg,['date1.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
            $msg = array_merge($msg,['starttime1.required' => 'กรุณาเลือกเวลาเริ่ม']);
            $msg = array_merge($msg,['hour1.required' => 'กรุณาเลือกจำนวน ชม.']);
            $msg = array_merge($msg,['vehicle1.required' => 'กรุณาเลือกรถ']);
        }
        if($this->input('drive2')=='1'){
            $msg = array_merge($msg,['gear2.required' => 'กรุณาเลือกเกียร์']);
            $msg = array_merge($msg,['date2.required' => 'กรุณาเลือกวันที่']);
            $msg = array_merge($msg,['date2.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
            $msg = array_merge($msg,['starttime2.required' => 'กรุณาเลือกเวลาเริ่ม']);
            $msg = array_merge($msg,['hour2.required' => 'กรุณาเลือกจำนวน ชม.']);
            $msg = array_merge($msg,['vehicle2.required' => 'กรุณาเลือกรถ']);
        }
        if($this->input('drive3')=='1'){
            $msg = array_merge($msg,['gear3.required' => 'กรุณาเลือกเกียร์']);
            $msg = array_merge($msg,['date3.required' => 'กรุณาเลือกวันที่']);
            $msg = array_merge($msg,['date3.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
            $msg = array_merge($msg,['starttime3.required' => 'กรุณาเลือกเวลาเริ่ม']);
            $msg = array_merge($msg,['hour3.required' => 'กรุณาเลือกจำนวน ชม.']);
            $msg = array_merge($msg,['vehicle3.required' => 'กรุณาเลือกรถ']);
        }
        if($this->input('drive4')=='1'){
            $msg = array_merge($msg,['gear4.required' => 'กรุณาเลือกเกียร์']);
            $msg = array_merge($msg,['date4.required' => 'กรุณาเลือกวันที่']);
            $msg = array_merge($msg,['date4.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
            $msg = array_merge($msg,['starttime4.required' => 'กรุณาเลือกเวลาเริ่ม']);
            $msg = array_merge($msg,['hour4.required' => 'กรุณาเลือกจำนวน ชม.']);
            $msg = array_merge($msg,['vehicle4.required' => 'กรุณาเลือกรถ']);
        }

        // 2nd course register
        if($this->input('course2')!="") {

            $msg = array_merge($msg,['course2.required' => 'กรุณาเลือกหลักสูตรที่เรียน']);
            $msg = array_merge($msg,['purpose2.required' => 'กรุณาเลือกรูปแบบการเรียน']);
            $msg = array_merge($msg,['pay2.required' => 'กรุณากรอกจำนวนเงิน']);

            if($this->input('drive21')=='1'){
                $msg = array_merge($msg,['gear21.required' => 'กรุณาเลือกเกียร์']);
                $msg = array_merge($msg,['date21.required' => 'กรุณาเลือกวันที่']);
                $msg = array_merge($msg,['date21.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
                $msg = array_merge($msg,['starttime21.required' => 'กรุณาเลือกเวลาเริ่ม']);
                $msg = array_merge($msg,['hour21.required' => 'กรุณาเลือกจำนวน ชม.']);
                $msg = array_merge($msg,['vehicle21.required' => 'กรุณาเลือกรถ']);
            }
            if($this->input('drive22')=='1'){
                $msg = array_merge($msg,['gear22.required' => 'กรุณาเลือกเกียร์']);
                $msg = array_merge($msg,['date22.required' => 'กรุณาเลือกวันที่']);
                $msg = array_merge($msg,['date22.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
                $msg = array_merge($msg,['starttime22.required' => 'กรุณาเลือกเวลาเริ่ม']);
                $msg = array_merge($msg,['hour22.required' => 'กรุณาเลือกจำนวน ชม.']);
                $msg = array_merge($msg,['vehicle22.required' => 'กรุณาเลือกรถ']);
            }
            if($this->input('drive23')=='1'){
                $msg = array_merge($msg,['gear23.required' => 'กรุณาเลือกเกียร์']);
                $msg = array_merge($msg,['date23.required' => 'กรุณาเลือกวันที่']);
                $msg = array_merge($msg,['date23.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
                $msg = array_merge($msg,['starttime23.required' => 'กรุณาเลือกเวลาเริ่ม']);
                $msg = array_merge($msg,['hour23.required' => 'กรุณาเลือกจำนวน ชม.']);
                $msg = array_merge($msg,['vehicle23.required' => 'กรุณาเลือกรถ']);
            }
            if($this->input('drive24')=='1'){
                $msg = array_merge($msg,['gear24.required' => 'กรุณาเลือกเกียร์']);
                $msg = array_merge($msg,['date24.required' => 'กรุณาเลือกวันที่']);
                $msg = array_merge($msg,['date24.date_format:m/d/Y' => 'กรุณากรอกรูปแบบวันที่ให้ถูกต้อง']);
                $msg = array_merge($msg,['starttime24.required' => 'กรุณาเลือกเวลาเริ่ม']);
                $msg = array_merge($msg,['hour24.required' => 'กรุณาเลือกจำนวน ชม.']);
                $msg = array_merge($msg,['vehicle24.required' => 'กรุณาเลือกรถ']);
            }
        }

        return $msg;
    }
}
