<?php
namespace App\Imports;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;
class ImportRegularStudent implements ToModel, WithStartRow, WithHeadingRow, WithValidation
{
public function rules(): array
{
return [
'name' => 'required',
'email' => 'required|unique:users,email',
'password' => 'required|min:8',
];
}
public function model(array $row)
{
$name = $row['name'];
$email = $row['email'];
$password = $row['password'];
$new_student = new User([
'name' => $name,
'email' => strtolower($email),
'password' => Hash::make($password),
'email_verified_at' => now(),
'created_at' => now(),
'updated_at' => now(),
'referral' => generateUniqueId(),
'language_id' => Settings('language_id') ?? '19',
'language_name' => Settings('language_name') ?? 'English',
'language_code' => Settings('language_code') ?? 'en',
'language_rtl' => Settings('language_rtl') ?? '0',
'country' => Settings('country_id'),
'lms_id' => Auth::user()->lms_id,
]);
if (isModuleActive('UserType')) {
$user = User::find($new_student->id);
if ($user) {
applyDefaultRoleToUser($user);
}
}
return $new_student;
}
public function startRow(): int
{
return 2;
}
public function headingRow(): int
{
return 1;
}
}