Commit Graph
702 Commits
Author SHA1 Message Date
Jeppe Bundgaard 5d1980768a Refactor birdVoiceWebhooksRoute to simplify gate handling by removing single-gate auto-selection logic, enhance multi-gate prompt text, and improve configuration parsing in callGateToOpen. 2026-03-04 16:11:54 +01:00
Jeppe Bundgaard d24a2c7cec Refactor birdVoiceWebhooksRoute to simplify gate handling by removing single-gate auto-selection logic, enhance multi-gate prompt text, and improve configuration parsing in callGateToOpen. 2026-03-04 14:39:30 +01:00
Jeppe Bundgaard 72a4c91e5f Refactor Bird API client to extract reusable executeCallAndHangupWhenAccepted method, update callGateAndHangupWhenAccepted and test outbound call logic to use shared implementation, and enhance timeout handling. 2026-03-04 14:24:11 +01:00
Jeppe Bundgaard da8a01479b Add callGateAndHangupWhenAccepted method to Bird API client, refactor gate opening logic in birdVoiceWebhooksRoute, and implement separate entrance/exit gate handling in department_gates_o. 2026-03-04 14:16:53 +01:00
Jeppe Bundgaard 342209fd2f Add input gathering feature to Bird API client and routes, integrate multi-gate selection flow in birdVoiceWebhooksRoute, and enhance error handling for invalid or expired sessions. 2026-03-04 13:43:19 +01:00
Jeppe Bundgaard 84ba2a1fad Localize user-facing messages in birdVoiceWebhooksRoute to Danish. 2026-03-04 13:25:28 +01:00
Jeppe Bundgaard 4f5ce36667 Simplify getCallerDepartments in birdVoiceWebhooksRoute by removing redundant user and subuser handling, reducing logic to fetch visible department IDs. 2026-03-04 13:20:23 +01:00
Jeppe Bundgaard db41842162 Enhance birdVoiceWebhooksRoute to handle automated gate opening via inbound calls, introduce gate/relay identification methods, refactor phone normalization logic, and improve error handling for unmatched destinations and departments. 2026-03-04 13:13:37 +01:00
Jeppe Bundgaard 96629cba0d Add sayMessage method to Bird API client, extend birdVoiceWebhooksRoute with TTS capability for inbound calls, introduce /bird/voice/calls/{id}/say route, and update OpenAPI spec accordingly. 2026-03-04 12:47:44 +01:00
Jeppe B 37f0f280d8 Adjust Bird inbound department prompt to press-digit menu 2026-03-04 11:17:57 +01:00
Jeppe Bundgaard a69df10b77 Add birdVoiceWebhooksRoute to handle incoming voice call webhooks, support fallback workspace and channel configuration, and send Slack notifications for inbound calls 2026-03-04 10:57:17 +01:00
Jeppe Bundgaard 3d2e8396cc Replace inline schemas with reusable BirdVoiceCallListResponse, BirdVoiceCallSingleResponse, and BirdTestOutboundCallResponse components in OpenAPI spec, define new BirdVoiceCall schema, and require permissions for Bird voice call listing 2026-03-04 10:50:10 +01:00
Jeppe Bundgaard cbac9181f6 Refactor Bird API routes to support fallback workspace and channel configuration, centralize helper methods, and update OpenAPI spec to reflect optional parameters. 2026-03-04 10:42:33 +01:00
Jeppe Bundgaard 70b7f5de87 Add workspace support to Bird numbers API and update routes, methods, and tests accordingly 2026-03-04 10:28:36 +01:00
Jeppe Bundgaard b46d29c87f Add validation to ensure orders have transactions and wash certificates attached before sending to customers 2026-03-03 15:07:26 +01:00
Jeppe Bundgaard 7a43fbf383 Add department_relay_config and department_gate_config classes and refactor gate/relay handling logic to use strongly-typed configuration models 2026-03-03 12:24:01 +01:00
Jeppe B acc913c9b5 Implement department gates and relays objects and routes 2026-03-03 12:01:02 +01:00
Jeppe Bundgaard 29b6df381e Add department_relays and department_gates object classes to support relay and gate management for departments 2026-03-03 11:47:11 +01:00
Jeppe Bundgaard a62bcdb47d Add Redis-based caching for department lane dynamic images to improve performance and reduce processing overhead 2026-03-02 16:34:46 +01:00
Jeppe Bundgaard 7efc73d19d Add dynamic_image_id to guest lane response and streamline department lane image access logic 2026-03-02 16:16:13 +01:00
Jeppe Bundgaard 24842ceaee Add support for fetching self-serve status in departments and include it in guest route responses 2026-03-02 13:13:55 +01:00
Jeppe Bundgaard 3d4f9d9973 Update Redis key for Monday message tracking to 2026-03-02 12:30:11 +01:00
Jeppe Bundgaard c1145495a0 Move Monday department Slack notifications logic to GoalsProgressAlertsCron and remove duplicate implementation from exampleRoute. 2026-03-02 12:25:10 +01:00
Jeppe Bundgaard cc77066617 Reapply "Update Bird module to use AccessKey authorization header instead of Bearer, improve error handling, and add support for workspace/channel configuration."
This reverts commit 1087ffb413.
2026-02-27 03:15:38 +01:00
Jeppe Bundgaard 1087ffb413 Revert "Update Bird module to use AccessKey authorization header instead of Bearer, improve error handling, and add support for workspace/channel configuration."
This reverts commit 2ad9bcfd37.
2026-02-27 03:09:48 +01:00
Jeppe Bundgaard 2ad9bcfd37 Update Bird module to use AccessKey authorization header instead of Bearer, improve error handling, and add support for workspace/channel configuration. 2026-02-27 03:08:28 +01:00
Jeppe B 0bb032bd0f Fix selfserve lane logging bootstrap dependency handling 2026-02-27 02:02:30 +01:00
Jeppe Bundgaard abd33ed6d9 Add Bird configuration endpoints (GET/POST) and update OpenAPI documentation 2026-02-27 01:38:45 +01:00
Jeppe Bundgaard 32f017778f Add voice call management endpoints and enhance logging for HTTP requests 2026-02-27 01:29:32 +01:00
Jeppe Bundgaard a0727cd14e Add optional per-department weekly targets and update related calculations 2026-02-27 01:11:22 +01:00
Jeppe Bundgaard f74210bca8 Add date range fields to goal criteria and update OpenAPI documentation 2026-02-27 00:46:30 +01:00
Jeppe Bundgaard 647b7f2d94 Refactor progress calculation to avoid mutating instance and improve clarity 2026-02-27 00:32:41 +01:00
Jeppe Bundgaard ea7633a908 Enhance departmental goal tracking by adding yearly and to-date progress calculations 2026-02-27 00:31:24 +01:00
Jeppe Bundgaard ece9f5108a Enhance progress tracking by adding yearly and to-date calculations for departmental targets 2026-02-27 00:23:02 +01:00
Jeppe Bundgaard bf636c0108 Add configuration files for HTTP client and Nginx logs visualization 2026-02-26 23:01:59 +01:00
Jeppe Bundgaard fc9d7882ae Refactor user retrieval logic to improve existence check for customer numbers 2026-02-26 22:51:37 +01:00
Jeppe Bundgaard 88f4f34c34 Update department daily targets to support floats
- Refactored `department_daily_targets` logic to accept and process float values instead of integers.
- Adjusted relevant type declarations, validations, and calculations in `GoalsCriteria`.
- Updated OpenAPI schema to align with new data type for per-department daily targets.
2026-02-25 14:40:26 +01:00
Jeppe Bundgaard 49f07c40c8 Add time-based progress tracking and department-specific target calculations
- Added support for `today`, `week`, and `month` progress tracking in `GoalsCriteria`.
- Introduced `setTimeframeByName` method to manage time-based progress criteria.
- Enhanced `calculateProgressFromArray` and `calculateProgressDetailsFromArray` to include customizable timeframes.
- Updated departmental progress calculations with detailed breakdowns for multiple time periods.
- Replaced obsolete single-value progress tracking with comprehensive progress details.
2026-02-25 14:30:03 +01:00
Jeppe Bundgaard cc494583e0 Add support for time-based departmental progress tracking
- Introduced calculation of departmental progress for today, week, and month in `department_goals_o.php`.
- Removed unnecessary blank line in `object_property.php` for code clarity.
2026-02-25 14:20:25 +01:00
Jeppe Bundgaard 11a677416b Enhance department goal criteria handling
- Refactored department daily targets logic for optimization and better maintainability.
- Ensured department-specific targets are validated, sanitized, and consistently applied in updates.
- Improved database interaction safety by preventing unnecessary updates for unchanged object properties.
- Adjusted route and API behavior for criteria and department updates to handle validations comprehensively.
2026-02-25 14:15:19 +01:00
Jeppe Bundgaard ffc5d6bc21 Add support for per-department custom daily targets
- Introduced `department_daily_targets` field in criteria, renderer, and API to define daily target overrides for departments.
- Enhanced daily target logic to honor per-department overrides while maintaining backward compatibility.
- Updated SMS, email, and Slack renderers for consistent enforcement of text length limits with fallback to non-mbstring functions.
- Refactored order item update logic to improve database interaction safety by using setters.
2026-02-25 13:03:04 +01:00
Jeppe Bundgaard 5cc311ae32 Add Redis-based permission caching for users and subusers
- Introduced Redis-backed caching for user and subuser permission evaluations in the `route_t` trait, reducing database queries.
- Enhanced `Redis` class with methods for permission caching: `cache_permission`, `get_permission`, and `clear_permission`.
- Added test coverage for the new caching logic in `PermissionRedisCacheTest.php`.
- Implemented Redis caching for authentication sessions with `cache_auth_session`, `get_auth_session`, and `clear_auth_session`.
- Improved CORS handling for preflight requests in `index.php`.
2026-02-24 15:00:22 +01:00
Jeppe Bundgaard 2534ffb1b9 Add Redis caching to autoloader for improved class and module loading performance
- Integrated Redis caching in the autoloading process to store and retrieve class and file paths dynamically.
- Added fallback mechanisms for Redis errors to ensure compatibility.
- Cached module directories and individual class paths with expiration to enhance performance and reduce filesystem scans.
2026-02-24 13:55:34 +01:00
Jeppe Bundgaard e8f0c630cf Remove redundant require_once statement in bird.php. 2026-02-24 13:38:30 +01:00
Jeppe Bundgaard 3bf514ce3f Refactor autoloading logic for efficient class, interface, and module loading
- Replaced manual file inclusion with `spl_autoload_register` for dynamic loading of classes, interfaces, traits, and modules.
- Added support for autoloading across core folders (`classes`, `interfaces`, `traits`, etc.) and module directories.
- Introduced a fallback mechanism for module-specific class loading with suffix-based file matching.
- Improved maintainability and scalability by eliminating extensive manual requires.
2026-02-24 13:38:20 +01:00
Jeppe Bundgaard 1050f72aa6 Refactor route and trait loading logic; simplify 404 handling. 2026-02-24 12:56:56 +01:00
Jeppe Bundgaard 817fcb974c Add Redis caching for object properties
- Added a private `getCacheKey()` method for consistent Redis key generation.
- Integrated Redis caching in `get`, `set`, and `delete` methods to improve performance.
- Ensured JSON values are correctly serialized/deserialized with caching.
- Implemented cache expiration and invalidation logic for updates and deletions.
2026-02-24 12:51:56 +01:00
Jeppe Bundgaard 79d0b2f270 Add Redis caching methods for customer-user mappings
- Introduced methods `cache_customer_number_from_user_id`, `get_customer_number_from_user_id`, and `clear_customer_number_from_user_id` to the `Redis` class.
- Updated the `Redis_i` interface to define these new methods.
- Enhances customer-user mapping logic by integrating Redis for efficient caching and retrieval.
2026-02-24 12:44:57 +01:00
Jeppe Bundgaard e143f084e4 Remove language pack logic and introduce Redis caching for customer-user mapping.
- Removed all language pack-related files, traits, and classes.
- Enhanced `users_o.php` with Redis caching for mapping `customer_number` to `user_id` and vice versa.
- Added Redis checks and caching for improved performance in user retrieval methods.
2026-02-24 12:44:43 +01:00
Jeppe Bundgaard f1c0ea2228 Remove language pack management and associated logic; add detailed logging for backups and cron processes. 2026-02-24 12:36:41 +01:00