/var/www/html/back/app/Imports/ProjectsImport.php
<?php
namespace App\Imports;
use App\Domain\Project\Enums\ProjectStatusEnum;
use App\Models\Project;
use App\Models\ProjectGroup;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithStartRow;
class ProjectsImport implements ToModel,WithStartRow
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function startRow(): int
{
return 2;
}
public function model(array $row)
{
if (isset($row[3])) {
$projectGroup = ProjectGroup::firstOrCreate(['name' => $row[3], 'model_id' => 3]);
}
$status = ProjectStatusEnum::PROJECT_STATUS_ACTIVE->value;
if (isset($row[4])) {
if ($row[4] === 'Завершённый') {
$status = ProjectStatusEnum::PROJECT_STATUS_FINISHED->value;
}
}
return new Project([
'project_group_id' => $projectGroup->id ?? null,
'model_id' => 3,
'status' => $status,
'offer_number' => $row[0],
'description' => $row[5] ?? null
]);
}
}