Add new version 0.238 zip file containing updated ProductRepository and Product class files
This commit is contained in:
70
autoload/Domain/Product/ProductRepository.php
Normal file
70
autoload/Domain/Product/ProductRepository.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
namespace Domain\Product;
|
||||
|
||||
/**
|
||||
* Repository odpowiedzialny za dostęp do danych produktów
|
||||
*
|
||||
* Zgodnie z wzorcem Repository Pattern, ta klasa enkapsuluje
|
||||
* logikę dostępu do bazy danych dla produktów.
|
||||
*/
|
||||
class ProductRepository
|
||||
{
|
||||
/**
|
||||
* @var \medoo Instancja Medoo ORM
|
||||
*/
|
||||
private $db;
|
||||
|
||||
/**
|
||||
* Konstruktor - przyjmuje instancję bazy danych
|
||||
*
|
||||
* @param \medoo $db Instancja Medoo ORM
|
||||
*/
|
||||
public function __construct($db)
|
||||
{
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pobiera stan magazynowy produktu
|
||||
*
|
||||
* @param int $productId ID produktu
|
||||
* @return int|null Ilość produktu lub null jeśli nie znaleziono
|
||||
*/
|
||||
public function getQuantity(int $productId): ?int
|
||||
{
|
||||
$quantity = $this->db->get('pp_shop_products', 'quantity', ['id' => $productId]);
|
||||
|
||||
// Medoo zwraca false jeśli nie znaleziono
|
||||
return $quantity !== false ? (int)$quantity : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pobiera produkt po ID
|
||||
*
|
||||
* @param int $productId ID produktu
|
||||
* @return array|null Dane produktu lub null
|
||||
*/
|
||||
public function find(int $productId): ?array
|
||||
{
|
||||
$product = $this->db->get('pp_shop_products', '*', ['id' => $productId]);
|
||||
return $product ?: null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualizuje ilość produktu
|
||||
*
|
||||
* @param int $productId ID produktu
|
||||
* @param int $quantity Nowa ilość
|
||||
* @return bool Czy aktualizacja się powiodła
|
||||
*/
|
||||
public function updateQuantity(int $productId, int $quantity): bool
|
||||
{
|
||||
$result = $this->db->update(
|
||||
'pp_shop_products',
|
||||
['quantity' => $quantity],
|
||||
['id' => $productId]
|
||||
);
|
||||
|
||||
return $result !== false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user