Files
getgreen-backend/app/Jobs/Dashboard/Product/Update.php
2026-04-28 17:53:06 +05:00

64 lines
2.2 KiB
PHP
Executable File

<?php
namespace App\Jobs\Dashboard\Product;
use App\Http\Requests\Dashboard\Product\Update as Request;
use App\Models\Product;
class Update
{
protected $attr;
protected $request;
protected $product;
/**
* @param Product $product
* @param Request $request
*/
public function __construct(Product $product, Request $request)
{
$this->product = $product;
$this->request = $request;
}
/**
* @return Product
*/
public function handle()
{
$this->product->update([
'name' => $this->request->getName(),
'brand_id' => $this->request->getBrandID(),
'measurement_id' => $this->request->getMeasurementId(),
'currency' => $this->request->currency,
'is_ready_solution' => $this->request->is_ready_solution == 'false' ? 0 : 1,
'price' => $this->request->getPrice(),
'price_discount' => $this->request->getPriceDiscount(),
'poster' => $this->request->getPoster($this->product),
'calc' => $this->request->getCalc($this->product),
'poster_thumb' => $this->request->getPosterThumb($this->product),
'data_sheet' => $this->request->getDataSheet($this->product),
'body' => $this->request->getBody(),
'short_body' => $this->request->short_body,
'power' => !in_array($this->request->power, [null, 'null', 'NULL']) ? $this->request->power : null,
'slug' => $this->request->getSlug(),
'published' => $this->request->getPublished(),
// 'popular' => $this->request->getPopular(),
'leader_of_sales' => $this->request->getLeaderOfSales(),
'article_number' => $this->request->article_number,
'count' => $this->request->count,
'available' => $this->request->getAvailable(),
'keywords' => $this->request->keywords,
'descriptions' => $this->request->descriptions,
'title_seo' => $this->request->title_seo,
]);
$this->syncCategories();
}
private function syncCategories()
{
$this->product->categories()->sync([$this->request->getCategoryID()]);
}
}