billingerp/admin/modules/product/models/productmodels.php

81 lines
2.0 KiB
PHP

<?php
class ProductModel
{
private static $db;
public static function setDb($pdo)
{
self::$db = $pdo;
}
/**
* პროდუქტის ტიპების მიღება (dynamic)
*/
public static function getProductTypes()
{
$stmt = self::$db->query("SELECT name, description, icon FROM product_types WHERE is_active = 1 ORDER BY sort_order, name");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
public static function deleteProductById($id)
{
if (!$id || !is_numeric($id)) {
return false;
}
$stmt = self::$db->prepare("DELETE FROM products WHERE id = ?");
return $stmt->execute([$id]);
}
public static function getProductById($id)
{
if (!$id || !is_numeric($id)) {
return null;
}
$stmt = self::$db->prepare("SELECT * FROM products WHERE id = ?");
$stmt->execute([$id]);
return $stmt->fetch();
}
public static function getAllProducts()
{
$stmt = self::$db->query("SELECT * FROM products ORDER BY id DESC");
return $stmt->fetchAll();
}
public static function createProduct($data)
{
$stmt = self::$db->prepare("INSERT INTO products (name, `group`, type, url, module, hidden) VALUES (?, ?, ?, ?, ?, ?)");
return $stmt->execute([
$data['name'],
$data['group'],
$data['type'],
$data['url'],
$data['module'],
$data['hidden']
]);
}
public static function updateProduct($id, $data)
{
$stmt = self::$db->prepare("
UPDATE products
SET name = ?, `group` = ?, type = ?, url = ?, module = ?, hidden = ?, updated_at = NOW()
WHERE id = ?
");
return $stmt->execute([
$data['name'],
$data['group'],
$data['type'],
$data['url'],
$data['module'],
$data['hidden'],
$id
]);
}
}