gruene-seele/app/Repositories/PackagingItemRepository.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();
}
}