Commit Graph
100 Commits
Author SHA1 Message Date
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 6fdc8d466e Add unit tests for various modules: attachments grouping, department weather caching behaviors, economic module order sanitization, enriched order batching, and user cashier name lookups. Update related route logic for enhanced data fetching and caching integrations. 2026-03-24 14:59:16 +01:00
Jeppe Bundgaard 4a5dd3a83f Add unit tests for department weather API: cache helpers, fallback behavior, timeline range handling, and schema conformance. Enhance route logic with custom date ranges, cache support, and fallback handling. Update OpenAPI spec and schema mappings. 2026-03-24 13:59:57 +01:00
Jeppe Bundgaard 228efb74fb Enhance department weather timeline API: support multiple IDs, add timeline date override, improve ID parsing, update schema examples, and expand related tests. 2026-03-24 13:06:40 +01:00
Jeppe Bundgaard c714af6c9e Add unit tests for Workfeed weather timeline range, schema conformance, and employee hours calculations. Enhance Workfeed API with improved department ID resolution, timeline range configuration, and workfeed shift handling. Update route logic to remove opening hours dependency and integrate Workfeed data. 2026-03-24 12:50:01 +01:00
Jeppe Bundgaard 28b571e2e6 Add unit tests for advanced target duration parsing, goal range calculations, and Workfeed query normalization. Extend OpenAPI spec with updated schemas and examples. 2026-03-24 11:35:13 +01:00
Jeppe Bundgaard 8c9388546b Add advanced target duration configurations and parsing logic to Goals module. Update Workfeed with new CompanyID config. Extend OpenAPI spec with detailed schema mappings and examples. 2026-03-24 11:23:08 +01:00
Jeppe Bundgaard 40171d9719 Update Workfeed OpenAPI spec with detailed schema definitions for employees, shifts, and departments. Add pagination support and replace generic response references with specific ones. 2026-03-24 10:37:43 +01:00
Jeppe Bundgaard 48a74ad34d Add Workfeed module with routes, configurations, and API integration handling for employees, shifts, and departments. Update OpenAPI spec and include unit tests for endpoint wiring and filtering logic. 2026-03-24 10:33:17 +01:00
Jeppe Bundgaard ac164a5e81 Add debug Redis configuration support, enhance Redis connection handling, and refactor worker status endpoint 2026-03-24 10:09:37 +01:00
Jeppe Bundgaard de89c4d635 Add database and Redis port configuration support, connection health checks, and refactor worker status endpoint. 2026-03-20 13:01:21 +01:00
Jeppe Bundgaard 219f739b54 Invalidate user permission and session caches when group permissions change; add tests. 2026-03-19 17:13:45 +01:00
Jeppe Bundgaard b547a8b029 Refactor permission handling to leverage standardized "forbidden" responses and enhance unit test coverage. 2026-03-19 15:59:25 +01:00
Jeppe Bundgaard 3752fdec4c Add support for "forbidden" response with missing permissions in Nginx response handler 2026-03-19 14:39:23 +01:00
Jeppe Bundgaard 60f6cbee84 Enhance CORS handling with dynamic origin validation and credentials support in Nginx. Update Traefik to include additional allowed origins. 2026-03-18 14:15:28 +01:00
Jeppe Bundgaard 6b928cfce7 Add PreRenderDynamicImagesCron for dynamic image variant caching and idempotency guard for order bookings. 2026-03-18 13:59:48 +01:00
Jeppe Bundgaard 90acf50b55 Add idempotency handling for order booking creation using Redis to prevent duplicate requests. 2026-03-18 13:42:47 +01:00
Jeppe Bundgaard da2cbee987 Disable sending welcome emails to info@truckwash.dk as requested by Christian. 2026-03-18 13:29:37 +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 f04f79e3da Update Traefik configuration with enhanced routing rules, local IP allowlist for dashboard access, new strip prefix middleware, and extended CORS origins. Add ACME account configurations for certificate management. 2026-03-18 10:58:17 +01:00
Jeppe Bundgaard db42f9ef95 Add staging environment configuration for Caddy, Nginx, and Traefik with updated routing and logging settings 2026-03-18 10:32:41 +01:00
Jeppe Bundgaard b3772293f3 Add auto-generated documentation for new API endpoints: branding option, button press webhook, and customer attribute. 2026-03-17 16:51:10 +01:00
Jeppe Bundgaard 6cc5dc2210 Add initial Copenhagen Truck Wash API documentation, including API overview, authentication, error handling, introduction, and Writerside configuration. 2026-03-17 15:55:11 +01:00
Jeppe Bundgaard 979b0f8fac Add atomic reservation support in Redis for goal alert deduplication with expiration. Update Cron logic and add unit tests for validation. 2026-03-17 15:23:02 +01:00
Jeppe Bundgaard bd4a90cdaa Add bulk booked invoice line handling and optimized distribution logic for department 75. Update unit tests, Economic endpoint URL encoding, and service integration. 2026-03-17 14:53:20 +01:00
Jeppe Bundgaard 6aa04eb951 Add logic for booked department 75 redistribution with fixed pricing and subscription weights. Update OpenAPI spec, unit tests, and service integration. 2026-03-16 13:40:03 +01:00
Jeppe Bundgaard 425c2c9142 Update README to include self-serve module implementation and API guide location 2026-03-16 13:08:21 +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 39ab007281 Update Copilot workflow to create GitHub issues for assigned tasks with proper permissions and repository checkout 2026-03-16 11:41:00 +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 Bundgaard ca573783d2 Add support for department_goals entity in system search with title resolution logic and unit tests 2026-03-15 18:58:52 +01:00
Jeppe Bundgaard 78a8dd35b9 Add system_search_document_index class to manage document indexing for system search with table creation, entity-specific document builders, and index refresh logic. 2026-03-13 13:58:48 +01:00
Jeppe Bundgaard 1e1576fe87 Add system_search_economic_customer_index class with table creation, refresh logic, and integration into system search fields, synonyms, and entity matching. Update service logic, unit tests, and cron tasks accordingly. 2026-03-13 01:52:33 +01:00
Jeppe Bundgaard 5be31bee1c Extend system search to include local e-conomic customer index fields, synonym expansion (e.g., rabat -> discount), and enhanced entity matching. Update OpenAPI spec, unit tests, and cron sync tasks accordingly. 2026-03-13 00:59:40 +01:00
Jeppe Bundgaard efc5906974 Expand system search to include users entity type with comprehensive OpenAPI spec updates, route adjustments, and unit test coverage. 2026-03-12 23:09:50 +01:00
Jeppe Bundgaard a22a3f4ee9 Add comprehensive unit tests for invoicing period cache logic, system search behavior, and OpenAPI spec coverage. Expand search service with generic entity support and refine association type handling. 2026-03-12 21:21:14 +01:00
Jeppe Bundgaard 1190290899 Strengthen SQL injection safeguards across objects and traits, add input validation and sanitization, and refine query efficiency with deduplication and null checks. 2026-03-12 20:36:08 +01:00
Jeppe Bundgaard a5963da4e6 Cap expanded query terms, aliases, and hints to prevent amplification, add permission-context scoping for query cache, and encapsulate term capping logic in helper methods with relevant tests. 2026-03-12 20:20:43 +01:00
Jeppe Bundgaard 6e887b315f Introduce a centralized search service with OpenAI-powered intent parsing and caching 2026-03-12 20:14:06 +01:00
Jeppe Bundgaard f651309d6a Add caching for Economic V2 distribution responses and optimize service methods with localized in-memory caches 2026-03-12 19:32:57 +01:00
Jeppe Bundgaard 69c7c834d9 Update OpenAPI spec to add InvoicingWashSubscriptionsDistributionResponse schema and reference it in the related endpoint 2026-03-12 18:51:10 +01:00
Jeppe Bundgaard 4ef20a1c90 Add economic V2 modules for history backfill, comparison, and distribution services. 2026-03-12 17:57:27 +01:00
Jeppe Bundgaard 72454ff328 Update OpenAPI spec to include application/json response schemas and add optional request bodies where applicable 2026-03-12 16:51:18 +01:00
Jeppe Bundgaard 4523115584 Introduce centralized date normalization and duplicate filtering for invoicing logic, and add comprehensive unit tests 2026-03-12 16:09:54 +01:00
Jeppe Bundgaard 2ca29a77f1 Optimize order and transaction processing logic with caching, and implement opt-in Slack summaries to reduce request latency. 2026-03-12 16:00:57 +01:00
Jeppe Bundgaard 07dab83e36 Add caching for department metadata and invoicing exclusion checks, optimize department resolution logic in invoicing route 2026-03-12 14:40:47 +01:00
Jeppe Bundgaard 0deeb7f121 Add scripts to clone live DB into debug DB for local development 2026-03-12 14:10:06 +01:00
Jeppe Bundgaard c78ea57409 Add mysql-debug to local development stack and update related configurations 2026-03-12 13:48:07 +01:00
Jeppe Bundgaard 5cb197898d Improve live DB clone speed 2026-03-12 13:26:22 +01:00
Jeppe Bundgaard e91dda0799 Add run scripts and actions setup 2026-03-12 12:27:46 +01:00
Jeppe Bundgaard e7ff44bf50 Return vehicle subscriptions array 2026-03-12 12:19:59 +01:00
Jeppe Bundgaard ddc45bf206 Update getCustomersWithVehicleSubscriptions to exclude fixed pricing customers and remove unused return statement in invoicing route 2026-03-12 12:17:52 +01:00
Jeppe Bundgaard be358309d6 Add schema definitions for InvoicingFixedPricingDistributionResponse and related components in OpenAPI spec 2026-03-12 11:26:25 +01:00
Jeppe Bundgaard bd36540f2b Add schema definitions and responses for Weather API endpoints in OpenAPI spec 2026-03-12 09:19:17 +01:00
Jeppe Bundgaard 36c9472a40 Integrate historical data into weather forecast, sort timeline entries, and update local development server URL in OpenAPI configuration. 2026-03-11 14:31:39 +01:00
Jeppe Bundgaard 6713a67eb5 Update generateDirectDownloadUrl to use static https://api.truckwash.io host and simplify URL generation logic 2026-03-11 11:25:53 +01:00
Jeppe Bundgaard 44a0146c9f Enable permission checks, adjust weekly iteration logic, and update cache key for department weekly results functionality 2026-03-11 11:21:14 +01:00
Jeppe Bundgaard ed19a7482d Add offset support to getFieldsWhereContaining for enhanced query control 2026-03-11 11:07:48 +01:00
Jeppe Bundgaard 15a7a7b8a5 Add weekly department results route, enhance date handling in invoicing and statistics logic, and improve Slack notification configuration 2026-03-11 10:52:49 +01: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 6bb026ad61 Merge remote-tracking branch 'origin/codex/setup-ingoing-call-automation-for-bird' into codex/setup-ingoing-call-automation-for-bird
# Conflicts:
#	services/nginx/app/routes/birdVoiceWebhooksRoute.php
2026-03-09 09:46:39 +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 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 98203282ba Replace inline schemas with reusable BirdNumberListResponse and BirdNumberSingleResponse components in OpenAPI spec, and define new BirdNumber and BirdNumberCapability schemas. 2026-03-04 10:31:32 +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 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 80701117f4 Add include_lanes query parameter to guest departments endpoint and define DepartmentGuest and DepartmentLaneGuest schemas in OpenAPI documentation 2026-03-02 13:18:02 +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 78a6860eca Remove .env file from version control and update .gitignore to exclude it permanently. 2026-02-27 03:22:03 +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 Bundgaard 52b467fe59 Update configuration response schemas in OpenAPI documentation to include detailed data structures 2026-02-27 01:55:22 +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