Commit Graph
41 Commits
Author SHA1 Message Date
Jeppe Bundgaard 45b7250480 Add Edge Agent implementation for gateway connection lifecycle, agent commands, Shelly device discovery, relay control, and WebSocket communication with broker. Include unit tests for critical flows. 2026-04-08 19:01:42 +02:00
Jeppe Bundgaard 0dc1581eb4 Add unit tests for self-serve invoice billing logic, refactor minute-based billing calculations, and improve error handling for billable minutes adjustments. 2026-03-26 21:09:21 +01:00
Jeppe Bundgaard b42a1a69a0 Refactor and centralize Shelly rate-limiting logic in the shelly class, add global enforcement and unit tests, and remove redundant implementations in self-serve lane controllers. 2026-03-26 20:15:36 +01:00
Jeppe Bundgaard 0d825fb45a Refactor Bird voice call route with streamlined call flow, department options listing, and removed redundant methods. Adjust self-serve lane command invoicing logic for better sequence clarity. 2026-03-26 18:29:21 +01:00
Jeppe Bundgaard b0ed00cb0c Add exception annotation to openDepartmentGateForCommand method for clarity 2026-03-26 16:38:48 +01:00
Jeppe Bundgaard 2ba9c30b85 Add bird_payload classes for payload abstraction and normalization across flash and voice call routes, integrate with request validators, and add unit tests. 2026-03-26 15:56:49 +01:00
Jeppe Bundgaard fcf9924adc Add bird_flash_calls_client implementation with endpoint builder, request schemas, and validator for managing flash call functionality. 2026-03-26 15:18:55 +01:00
Jeppe Bundgaard 95063d2a70 Add Bird gate call flow unit tests, self-serve machine wash minutes config, relay sync improvements, and OpenAPI updates. Refactor Bird call handling with terminal status detection and timeout normalization. 2026-03-26 13:16:18 +01:00
Jeppe Bundgaard a4654398d0 Add dynamic_images_vehicle_type column to legacy self-serve schemas, update wash flow logic, and add unit tests for schema compatibility. 2026-03-26 11:58:12 +01:00
Jeppe Bundgaard f148b39a85 Add unit tests for legacy schema compatibility, property gate commands, lane state transitions, and relay synchronization. Extend relay logic with demo relay handling, dynamic image updates, phone normalization, and machine relay hard set methods. 2026-03-26 11:11:34 +01:00
Jeppe Bundgaard 76729f1b99 Add department self-serve config versioning routes with lifecycle actions (list, validate, publish, rollback) and associated logic for managing config versions. 2026-03-25 17:54:41 +01:00
Jeppe Bundgaard 482a17f093 Add unit tests for cleaner and machine relay flows, refactor relay logic with hard set methods, enhance route handling for lane state transitions, and update session management. 2026-03-25 15:08:50 +01:00
Jeppe Bundgaard 416eba7de5 Add unit tests and route updates for department self-serve enabled flag relay synchronization. Refactor relay handling with hard set methods and lane status guard bypass. 2026-03-25 14:24:30 +01:00
Jeppe Bundgaard 2a9ed5af0f Add unit tests for STOP command flow, including relay shutoff sequencing, vehicle-type product addition, and invoice handling. Refactor STOP logic to enable relay configuration checks, error handling, and session finalization without blocking. 2026-03-25 14:12:31 +01:00
Jeppe Bundgaard 4c81cfd0fe Add unit tests for lane relay Shelly batching, rate limit handling, and retry logic. Refactor Shelly relay state handling with snapshot caching, readiness checks, and reduced delay intervals. 2026-03-25 13:40:12 +01:00
Jeppe Bundgaard 5a29683fe8 Add MACHINE_PROGRAM_PICKER and MACHINE_CLEANER relay endpoints with GET/POST actions, unit tests, retry logic, and OpenAPI spec updates. 2026-03-25 12:21:47 +01:00
Jeppe Bundgaard 7fc70184df Add unit tests and routes for department weather targets, including GET/PUT endpoints, thresholds validation, and aggregate status handling. Extend OpenAPI spec with schema mappings for department weather targets and machine relay endpoints. 2026-03-25 11:14:25 +01:00
Jeppe Bundgaard 7c55beae42 Refactor self-serve wash flow to decouple visible question logic, improve condition evaluation, and handle nullable fields in the OpenAPI spec. 2026-03-18 13:05:41 +01:00
Jeppe Bundgaard 2ecae070a2 Add documentation for the self-serve module, detailing architecture, flow, API routes, domain model, runtime tables, and eligibility rules. Includes end-to-end examples and PHP usage. 2026-03-16 13:06:17 +01:00
Jeppe Bundgaard d890d589ff Add reusable routes for department self-serve machine types, n8n workflows, and executions, with corresponding unit tests and service integration. 2026-03-16 11:36:48 +01:00
Jeppe B 0bb032bd0f Fix selfserve lane logging bootstrap dependency handling 2026-02-27 02:02:30 +01:00
Jeppe Bundgaard 6d09e5449e Enhance MACHINE relay control logic and add emergency override functionality
- Add `forceTurnOffMachineRelay` method for superuser/emergency operations to bypass gating restrictions.
- Enforce `toggle_after = 0` to prevent auto-toggle behavior.
- Update routes to explicitly reflect relay state when modifying MACHINE relay.
- Extend Shelly device switch handling with optional `skip_toggle_after` parameter.
2026-02-19 11:37:16 +01:00
Jeppe Bundgaard 4bdbe40329 Add superuser endpoints for forced MACHINE relay control
- Implement emergency operations to forcibly enable or disable MACHINE relays (`forceTurnOnMachineRelay`).
- Add OpenAPI specifications for `/modules/self-serve/lane/force/machine/enable` and `/modules/self-serve/lane/force/machine/disable`.
- Update route definitions and introduce validation for input parameters.
2026-02-19 10:39:43 +01:00
Jeppe Bundgaard 28a4a9d8e6 Add StopTurnsOffRelayTest to verify machine relay behavior during STOP with self-serve enabled
- Introduce a minimal, self-contained test to ensure the relay turns off when STOP is executed.
- Enhance `selfserve_lane_command_t` to handle relay shutdown based on department configuration.
- Include `isDepartmentSelfServeEnabled` method for testing override and I/O avoidance.
2026-02-18 16:14:33 +01:00
Jeppe Bundgaard 9881e57698 Ensure proper initialization of lane status via getter methods, refactor email template structure for better MSO compatibility, and add machine_available field to guest API response. 2026-02-18 16:06:14 +01:00
Jeppe Bundgaard 51014bf774 Add development guidelines, testing rules, and secure routes documentation
- Add `.junie/guidelines.md` with comprehensive development instructions.
- Include `.aiassistant/rules/Creating and maintaining tests.md` and `.aiassistant/rules/Creating and securing routes.md`.
- Introduce `CACHE_SELFSERVE_LANE_KEY_ALLOWED_SERVICES` for lane service validation.
- Update `selfserve_lane_relay_controller_t` to enforce service-specific permissions for machine relay.
2026-02-18 14:13:05 +01:00
Jeppe Bundgaard 008e2af09a Add support for self-serve task services and validation logic
- Introduce `services` property to `department_selfserve_tasks_o` for task-specific functionalities.
- Add service validation and normalization via `selfserve_lane_services` enum.
- Extend `departmentSelfserveTasksRoute` to handle `services` input for add/edit operations.
- Create `selfserve_lane_services` enum to define and validate service types.
2026-02-18 12:47:00 +01:00
Jeppe Bundgaard f5d430c0c7 Add relay control functionality to selfserve_lane with selfserve_lane_relay_controller_t trait
Integrate relay control methods to turn on/off machine relays, introduce `selfserve_lane_relay` enum, and ensure proper validation of lane states and relay IDs.
2026-01-21 11:01:16 +01:00
Jeppe Bundgaard 03dde04df6 Remove redundant return statement from selfserve_lane_port_controller_t::openRelay method. 2026-01-20 16:22:39 +01:00
Jeppe Bundgaard ed7299fc43 Add lane reservation support: implement reservation timer, expiration logic, and new self-serve lane commands (RESERVE and RELEASE); enhance permission checks across routes for global and department-level operations. 2026-01-15 11:22:02 +01:00
Jeppe Bundgaard d576a4741b Replace question with condition_id across department_selfserve_tasks logic, routes, OpenAPI spec, and associated methods for improved consistency and clarity. 2026-01-09 13:47:10 +01:00
Jeppe Bundgaard 1fc2a96eb7 Remove redundant return statement in selfserve_lane_port_controller_t 2026-01-08 14:20:05 +01:00
Jeppe Bundgaard c7e5e037bc Update field handling in self-serve modules and add deleted_at to searchable fields in tasks and questions routes 2026-01-08 14:19:20 +01:00
Jeppe Bundgaard 30abc6c593 Set lane ID on order initialization in selfserve_lane_invoice_t. 2026-01-06 12:02:04 +01:00
Jeppe Bundgaard c197276a6e Integrate lane action logging mechanism across controllers, commands, and status management. 2026-01-06 11:08:57 +01:00
Jeppe Bundgaard 0b08d8dbe6 Add selfserve_lane_log_action enum for lane action definitions and outline logging mechanism. 2026-01-06 11:04:50 +01:00
Jeppe Bundgaard e5c728f703 Cast department ID to integer and license plate to string in self-serve lane invoice creation 2025-12-18 11:09:58 +01:00
Jeppe Bundgaard 3115856fc8 Remove redundant return statement in Shelly relay control logic 2025-12-16 11:41:00 +01:00
Jeppe Bundgaard 3eef3b45c4 Add customer number validation and bypass mechanism for self-serve lane operations
- Introduced customer number validation during STOP command to ensure the lane's customer matches the provided customer number.
- Added a flag and methods to bypass customer number validation when authorized.
- Updated routes to set the bypass flag for users with appropriate permissions.
- Included customer number in command arguments for enhanced validation.
2025-12-16 11:40:41 +01:00
Jeppe Bundgaard 1b914b546e Add minute-based billing and lane management extensions to self-serve module
- Introduced `selfserve_lane_command_arguments` class for managing lane command parameters (e.g., customer number, license plate).
- Added traits for handling lane timer, invoice generation, license plate, and customer number management.
- Implemented minute-based billing logic with `selfserve_minute_product_c` configuration.
- Enhanced `selfserve_lane` with new behaviors: command arguments, invoicing, and time handling.
- Added `/modules/self-serve/lane/command` route for executing lane commands (START, STOP, RESET).
- Updated `/modules/self-serve/lane/status` route to include additional lane details (wash start, elapsed time, license plate, etc.).
- Improved Shelly device relay control for port management.
2025-12-08 23:05:35 +01:00
Jeppe Bundgaard cc6639e61b 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.
2025-12-08 15:34:40 +01:00