Some checks failed
Tests / PHP 8.1 (push) Has been cancelled
Tests / PHP 8.2 (push) Has been cancelled
Tests / PHP 8.3 (push) Has been cancelled
42 lines
1.0 KiB
PHP
42 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Jobs\Setting;
|
|
|
|
use App\Abstracts\Job;
|
|
use App\Events\Setting\CategoryCreated;
|
|
use App\Events\Setting\CategoryCreating;
|
|
use App\Interfaces\Job\HasOwner;
|
|
use App\Interfaces\Job\HasSource;
|
|
use App\Interfaces\Job\ShouldCreate;
|
|
use App\Models\Setting\Category;
|
|
|
|
class CreateCategory extends Job implements HasOwner, HasSource, ShouldCreate
|
|
{
|
|
public function handle(): Category
|
|
{
|
|
event(new CategoryCreating($this->request));
|
|
|
|
\DB::transaction(function () {
|
|
$payload = $this->request->all();
|
|
|
|
if (! empty($payload['code'])) {
|
|
$this->model = Category::firstOrCreate(
|
|
[
|
|
'company_id' => $payload['company_id'],
|
|
'code' => $payload['code']
|
|
],
|
|
$payload,
|
|
);
|
|
|
|
return;
|
|
}
|
|
|
|
$this->model = Category::create($payload);
|
|
});
|
|
|
|
event(new CategoryCreated($this->model, $this->request));
|
|
|
|
return $this->model;
|
|
}
|
|
}
|