Mahdee Rajon  subception

File "ProjectsImport.php"

Full Path: /var/www/html/back/app/Imports/ProjectsImport.php
File size: 1.11 KB
MIME-type: text/x-php
Charset: utf-8

<?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
        ]);
    }
}