Files
gasemi_tier/includes/db.php
T

90 lines
2.5 KiB
PHP

<?php
// includes/db.php
class TireStore {
private static $file = __DIR__ . '/../data/store.json';
public static function getData() {
if (!file_exists(self::$file)) {
require_once __DIR__ . '/../data/init.php';
}
$json = file_get_contents(self::$file);
return json_decode($json, true) ?: [];
}
public static function saveData($data) {
return file_put_contents(self::$file, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
}
public static function getTires() {
$data = self::getData();
return $data['tires'] ?? [];
}
public static function getTireById($id) {
$tires = self::getTires();
foreach ($tires as $tire) {
if ($tire['id'] === $id) {
return $tire;
}
}
return null;
}
public static function getBrands() {
$data = self::getData();
return $data['brands'] ?? [];
}
public static function getArticles() {
$data = self::getData();
return $data['articles'] ?? [];
}
public static function getPressureGuide() {
$data = self::getData();
return $data['pressure_guide'] ?? [];
}
public static function getConsultations() {
$data = self::getData();
return $data['consultations'] ?? [];
}
public static function addConsultation($entry) {
$data = self::getData();
$entry['id'] = 'CNS-' . (count($data['consultations'] ?? []) + 101);
$entry['created_at'] = date('Y-m-d H:i');
$entry['status'] = 'جدید';
$data['consultations'][] = $entry;
self::saveData($data);
return $entry;
}
public static function addTire($tire) {
$data = self::getData();
$data['tires'][] = $tire;
self::saveData($data);
return true;
}
public static function updateTire($id, $updatedFields) {
$data = self::getData();
foreach ($data['tires'] as &$tire) {
if ($tire['id'] === $id) {
$tire = array_merge($tire, $updatedFields);
self::saveData($data);
return true;
}
}
return false;
}
public static function deleteTire($id) {
$data = self::getData();
$data['tires'] = array_values(array_filter($data['tires'], function($t) use ($id) {
return $t['id'] !== $id;
}));
return self::saveData($data);
}
}