Files
api/services/nginx/app/modules/xlvask/interfaces/xlvask_cache_i.php
T

109 lines
3.8 KiB
PHP

<?php
namespace xlvask\interfaces;
use Exception;
use helpers\xlvask_customer;
use helpers\xlvask_vehicle;
interface xlvask_cache_i
{
/**
* Check if a customer is cached by their customer number.
* @param int $customer_number The customer number to check.
* @return bool True if the customer is cached, false otherwise.
*/
public function isCustomerCached(int $customer_number): bool;
/**
* Get the cached customer object by customer number.
* @param int $customer_number The customer number to retrieve.
* @return object The cached customer object.
* @throws Exception If the customer is not cached.
*/
public function getCustomerCache(int $customer_number): xlvask_customer;
/**
* Set the cache for a specific customer.
* @param int $customer_number The customer number to cache.
* @param xlvask_customer $customer The customer object to cache.
*/
public function setCustomerCache(int $customer_number, xlvask_customer $customer): void;
/**
* Clear the cache for a specific customer.
* @param int $customer_number The customer number to clear the cache for.
*/
public function clearCustomerCache(int $customer_number): void;
/**
* Clear all cached customers.
* This will remove all customer caches, so use with caution.
*/
public function clearAllCustomerCache(): void;
/**
* Get all cached customers.
* @return array[xlvask_customer] An array of all cached customer objects.
* @example [xlvask_customer, xlvask_customer, ...]
* @see xlvask_customer
*/
public function getAllCachedCustomers(): array;
/**
* Get the count of cached customers.
* @return int
*/
public function getCachedCustomerCount(): int;
/**
* Get cached customers by their customer numbers.
* @param array $customer_numbers [int] An array of customer numbers to retrieve.
* @param bool $allow_missing If true, will return null for missing customers, otherwise will throw an exception.
* @return array[xlvask_customer]
* @example [xlvask_customer, xlvask_customer, ...]
*/
public function getCachedCustomersByCustomerNumbers(array $customer_numbers, bool $allow_missing = false): array;
/**
* Check if a vehicle is cached by its registration number.
* @param string $registration The vehicle registration number to check.
* @return bool True if the vehicle is cached, false otherwise.
*/
public function isVehicleCached(string $registration): bool;
/**
* Get the cached vehicle object by its registration number.
* @param string $registration The vehicle registration number to retrieve.
* @return xlvask_vehicle The cached vehicle object.
* @throws Exception If the vehicle is not cached.
*/
public function getVehicleCache(string $registration): xlvask_vehicle;
/**
* Set the cache for a specific vehicle.
* @param string $registration The vehicle registration number to cache.
* @param xlvask_vehicle $vehicle The vehicle object to cache.
*/
public function setVehicleCache(string $registration, xlvask_vehicle $vehicle): void;
/**
* Clear the cache for a specific vehicle.
* @param string $registration The vehicle registration number to clear the cache for.
*/
public function clearVehicleCache(string $registration): void;
/**
* Clear all cached vehicles.
* This will remove all vehicle caches, so use with caution.
*/
public function clearAllVehicleCache(): void;
/**
* Get all cached vehicles.
* @return array<xlvask_vehicle> An array of all cached vehicle objects.
* @example [xlvask_vehicle, xlvask_vehicle, ...]
* @see xlvask_vehicle
*/
public function getAllCachedVehicles(): array;
}