Files
gasemi_tier/includes/db.php
T

130 lines
4.0 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'] = 'جدید';
$entry['admin_note'] = '';
$data['consultations'][] = $entry;
self::saveData($data);
return $entry;
}
public static function updateConsultationStatus($id, $status, $note = '') {
$data = self::getData();
foreach ($data['consultations'] as &$c) {
if ($c['id'] === $id) {
$c['status'] = $status;
if ($note !== '') {
$c['admin_note'] = $note;
}
self::saveData($data);
return true;
}
}
return false;
}
public static function deleteConsultation($id) {
$data = self::getData();
$data['consultations'] = array_values(array_filter($data['consultations'], function($c) use ($id) {
return $c['id'] !== $id;
}));
return self::saveData($data);
}
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);
}
public static function getSettings() {
$data = self::getData();
return $data['settings'] ?? [
"site_phone" => "021-88889900",
"emergency_phone" => "09123456789",
"announcement" => "تضمین اصالت کالا و گارانتی معتبر شرکتی تا ۶۰ ماه | تاریخ تولید روز (2026)",
"central_address" => "تهران، خیابان آزادی، تقاطع یادگار امام، مجتمع تایر قاسمی"
];
}
public static function updateSettings($settings) {
$data = self::getData();
$data['settings'] = array_merge($data['settings'] ?? [], $settings);
return self::saveData($data);
}
}