44 lines
1,002 B
PHP
44 lines
1,002 B
PHP
<?php
|
|
|
|
namespace App\Repositories;
|
|
|
|
use App\Models\PackagingItem;
|
|
|
|
class PackagingItemRepository
|
|
{
|
|
/**
|
|
* @param array<string, mixed> $data
|
|
*/
|
|
public function create(array $data): PackagingItem
|
|
{
|
|
return PackagingItem::create($this->extractAttributes($data));
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $data
|
|
*/
|
|
public function update(PackagingItem $packagingItem, array $data): PackagingItem
|
|
{
|
|
$packagingItem->update($this->extractAttributes($data));
|
|
|
|
return $packagingItem->fresh();
|
|
}
|
|
|
|
/**
|
|
* @param array<string, mixed> $data
|
|
* @return array<string, mixed>
|
|
*/
|
|
protected function extractAttributes(array $data): array
|
|
{
|
|
return collect($data)->only([
|
|
'packaging_material_id',
|
|
'supplier_id',
|
|
'name',
|
|
'category',
|
|
'weight_grams',
|
|
'min_stock_alert',
|
|
'product_id',
|
|
'active',
|
|
])->all();
|
|
}
|
|
}
|