HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/ghayatcom/ghayatcom-api/app/Http/Requests/DoctorDocumentsRequest.php
<?php

namespace App\Http\Requests;

use App\DoctorDocument;
use App\Library\CustomFailedValidation;
use App\User;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;

class DoctorDocumentsRequest extends CustomFailedValidation
{
    /**
     * 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()
    {
        $arrRules = [
            'user_id' => 'required|exists:users,id',
            'reg_no' => 'required',
            'specilation' => 'required',
            'clinic' => 'required',
        ];

        if (isset($this->user_id)) {
            $query = DoctorDocument::where('user_id', $this->user_id)->first();
            if (empty($query)) {
                // $arrRules['document'] = 'required|mimes:jpeg,png,pdf,doc,docx';
                $arrRules['document'] = 'required';
                $arrRules['document.*'] = 'mimes:jpg,jpeg,png,pdf,doc,docx';
            }
        }

        if (isset($this->user_id)) {
            $query = User::select('signature')->whereNull('signature')->where('id', $this->user_id)->count();
            if (! empty($query)) {
                $arrRules['signature'] = 'required|mimes:png';
            }
        }

        return $arrRules;
    }

    public function messages()
    {
        $arrMsg = [
            'user_id.required' => __('digimed_validation.form_validation_error.user_id_req'),
            'user_id.exists' => __('digimed_validation.form_validation_error.user_id_is_not_exisit'),
            'reg_no.required' => __('digimed_validation.form_validation_error.loop_if_req'),
            'specilation.required' => __('digimed_validation.form_validation_error.loop_if_req'),
            'clinic.required' => __('digimed_validation.form_validation_error.loop_if_req'),
        ];
        if (isset($this->user_id)) {
            $query = DoctorDocument::where('user_id', $this->user_id)->first();
            if (empty($query)) {
                $arrMsg['document.required'] = __('digimed_validation.form_validation_error.document_req');
            }
        }
        if (isset($this->user_id)) {
            $query = User::select('signature')->whereNull('signature')->where('id', $this->user_id)->count();
            if (! empty($query)) {
                $arrMsg['signature.required'] = __('digimed_validation.form_validation_error.signature_req');
            }
        }

        return $arrMsg;
    }
}