Introduce self-serve module with lane management functionality
- Added `selfserve_lane` class to handle self-serve lane operations. - Implemented commands (START, STOP, RESET) and states (IDLE, IN_WASH, FAULT, etc.) for lane lifecycle. - Introduced traits for managing lane status, mode, state, caching, and port control. - Added enums for cohesive type definitions (`selfserve_lane_command`, `selfserve_lane_status`, `selfserve_lane_state`, etc.). - Configured `/modules/self-serve/lane/status` route to expose lane state and status via API. - Linked self-serve configuration via `selfserve_c` and `selfserve_enabled_c` for module toggling. - Integrated lane caching logic with Redis for performance improvements. - Updated `index.php` to include the self-serve module.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace classes;
|
||||
|
||||
require_once WD . '/modules/selfserve/selfserve_c.php';
|
||||
require_once WD . '/modules/selfserve/classes/selfserve_lane.php';
|
||||
|
||||
|
||||
/**
|
||||
* Actions
|
||||
*/
|
||||
|
||||
|
||||
use Exception;
|
||||
use interfaces\universal_module_i;
|
||||
use modules\selfserve\classes\selfserve_lane;
|
||||
use modules\selfserve\selfserve_c;
|
||||
|
||||
class selfserve implements universal_module_i
|
||||
{
|
||||
/**
|
||||
* The configuration of the module
|
||||
* @var selfserve_c
|
||||
*/
|
||||
public selfserve_c $config;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->config = new selfserve_c();
|
||||
}
|
||||
|
||||
public function lane(int $lane_id): selfserve_lane
|
||||
{
|
||||
return new selfserve_lane($lane_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @throws Exception If the module is not enabled
|
||||
*/
|
||||
public function requireModuleEnabled(): void
|
||||
{
|
||||
if (!(bool)$this->config->enabled->getVariableValue()) {
|
||||
throw new Exception('selfserve module is not enabled');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user