MOON
Server: Apache
System: Linux host.sunshiene.com 4.18.0-553.121.1.el8_10.x86_64 #1 SMP Thu Apr 30 09:06:34 EDT 2026 x86_64
User: clientsoftwares (1005)
PHP: 8.2.31
Disabled: system, exec, mail, shell_exec, passthru, popen, proc_open, pcntl_exec, dl, ini_alter, ini_restore, symlink, link, chown, posix_kill
Upload Files
File: /home/clientsoftwares/public_html/smart-lab.clientsoftwares.com/app/Imports/DoctorImport.php
<?php

namespace App\Imports;

use Illuminate\Validation\Rule;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use App\Models\Doctor;

class DoctorImport implements ToModel,WithStartRow,WithValidation,WithHeadingRow
{
    /**
     * @param array $row
     *
     * @return Doctor|null
     */
    public function model(array $row)
    {
        if(isset($row['id']))
        {
            $doctor=Doctor::find($row['id']);

            if(isset($doctor))
            {
                $doctor->update([
                    'name'=>$row['name'],
                    'phone'=>$row['phone'],
                    'email'=>$row['email'],
                    'address'=>$row['address'],
                    'commission'=>$row['commission'],
                ]);
            }
            else{
                return Doctor::create([
                    'code'=>time(),
                    'name'=>$row['name'],
                    'phone'=>$row['phone'],
                    'email'=>$row['email'],
                    'address'=>$row['address'],
                    'commission'=>$row['commission'],
                ]);
            }
        }
        else{
            return Doctor::create([
                'code'=>time(),
                'name'=>$row['name'],
                'phone'=>$row['phone'],
                'email'=>$row['email'],
                'address'=>$row['address'],
                'commission'=>$row['commission'],
            ]);
        }
    }


    /**
     * @return int
     */
    public function startRow(): int
    {
        return 2;
    }


    public function rules(): array
    {
        return [
            'name'=>'required',
            'phone'=>[
                'required',
            ],
            'email'=>[
                'required',
                'email',
            ],
            'address'=>[
                'required',
            ],
            'commission'=>[
                'required',
                'numeric',
                'min:0',
                'max:100'
            ],
        ];
    }

   
}