d2d.emegrendeles.hu/app/Repositories/PriceListRepository.php
E98Developer 68b7c35bef git init
2026-02-28 06:53:05 +01:00

103 lines
2.1 KiB
PHP

<?php
namespace App\Repositories;
use App\Models\PriceList;
use App\Models\Product;
use App\Traits\RepositoryRelationshipsTraits;
class PriceListRepository implements PriceListRepositoryInterface
{
use RepositoryRelationshipsTraits;
private string $Model;
/**
* @var array|string[]
*/
private array $defaultRelations = ['Supplier'];
/**
* PriceListRepository constructor.
*/
public function __construct()
{
$this->Model = PriceList::class;
$this->actualRelations = $this->defaultRelations;
}
/**
* Get's a record by it's ID
*
* @param int
*/
public function get($id)
{
return $this->Model::find($id);
}
/**
* Get's all records.
*
* @return mixed
*/
public function all()
{
return $this->Model::all();
}
/**
* Deletes a record.
*
* @param int
*/
public function delete($id)
{
return $this->Model::destroy($id);
}
/**
* Updates a post.
*
* @param int
* @param array
*/
public function update($id, array $data): bool
{
return $this->Model::find($id)->update($data);
}
/**
* create new Record
*
* @param array
*/
public function add($data): ?int
{
$obj = new PriceList;
$obj->canSee = true;
$obj->status == \App\Enums\DbStatusFieldEnum::draft;
$obj->fill($data);
$obj->save();
return $obj->id;
}
public function attachProduct(int $productId, $price, int $priceListId)
{
/** @var PriceList $priceList */
$priceList = $this->Model::find($priceListId);
return $priceList->products()->attach($productId, ['price' => $price]);
}
public function updateProductPrice(int $productId, $price, int $priceListId)
{
/** @var PriceList $priceList */
$priceList = $this->Model::find($priceListId);
return $priceList->products()->updateExistingPivot(Product::find($productId), ['price' => $price]);
}
}