Jeppe B
4703e07951
Enforce department access on Stripe payment intent order routes
2026-06-01 22:36:49 +02:00
Jeppe Bundgaard
4945abfd8e
Add new route for superuser invoicing period distribution and enhance date handling logic
2026-03-10 11:01:11 +01:00
Jeppe Bundgaard
d82c7d88ec
Implement Bird gate IVR flow
2026-03-09 11:03:45 +01:00
Jeppe Bundgaard
682bf8151c
Introduce Bird module with API integration for voice calls and number management, along with configurable channelId and workplaceId.
2026-03-09 10:18:16 +01:00
Jeppe Bundgaard
16bcc3a00c
Add custom monthly target calculation in goals_progress_alert_renderer for specific periods.
2026-03-09 09:58:48 +01:00
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
0ce9e79cb7
Update Traefik configuration to support additional domains and optimize certificate resolvers
2026-02-25 17:09:22 +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