- Introduced `departmentDailyReportComplaintCategories.js` for managing complaint categories with validation utilities.
- Added category and wash date fields to the complaint editing interface with validation in `DepartmentDailyReportComplaints.vue`.
- Developed `PosOrderDetailItemsTable.vue` for displaying order details with inline actions and price highlighting.
- Implemented `PosOrderItemEditModal.vue` for editable order items with validations for price and quantity.
- Created unit tests for `PosLastScannedLicensePlatesV2.vue` to verify scanning, caching, and error handling behaviors.
- Implemented `departmentDailyReportComplaintCustomers.js` module for handling customer complaint data, including search, normalization, and API integration.
- Added `EdgeGatewayTerminal.vue` for root shell access with session approval, dynamic status handling, and user feedback.
- Developed `mobilePos.js` for simulating mobile POS fixtures and workflows in e2e tests.
- Introduced relevant e2e and unit tests to ensure functionality and error handling across modules.
- Implemented `CustomerComplaints.vue` and `CustomerComplaintsPagination.vue` for managing complaints with department filters, search functionality, and sorting.
- Added `CustomerComplaintsTable.vue` for displaying complaint details with edit and delete actions.
- Introduced `DepartmentDailyReportComplaints` module for managing CRUD operations and validation.
- Added e2e tests for complaint workflows, including pagination, filtering, and customer interaction validation (`superuser-customer-complaints.spec.ts`).
- Included validation logic and error handling for phone call gate configurations (`DepartmentGates.vue`).
- Enhanced department gate e2e tests with validation scenarios (`superuser-department-gates.spec.ts`).
- Introduced tests for admin daily report features, including tile rendering, complaint management, and stale response handling.
- Added department visibility tests to ensure hidden departments are excluded from UI controls.
- Implemented night wash overview tests for breakdown validation, missing hours detection, and stable range updates.
- Introduced e2e test for "Change Invoice Collection" in `change-invoice-collection.spec.ts`.
- Added unit tests for `CollectedOrderInvoiceOverview.vue` including edit flow for `closed_at`.
- Implemented tests for queue reliability, state handling, and customer actions:
- `CollectedOrderInvoicesQueueHistory.vue`: polling, error handling, richer diagnostics, and retry logic.
- `InvoicingBillingPeriod` views: refresh and queue state handling.
- Enhanced test coverage for Stripe queue functionality and related actions.
- Introduced `CollectedOrderInvoicesQueueHistory.vue` for displaying and managing job queue history.
- Added queue management features: polling with active status detection, error handling, retry logic, and pagination controls.
- Implemented e2e tests for economic queue workflows, including export polling, retries, validation errors, and component unmount behavior.
- Added unit tests for queue logic, payload normalization, and retry scenarios.
- Created `EconomicQueuePlaywrightHarness.vue` to support e2e testing with mock workflows.
- Introduced `getDepartmentOutsideGateCapabilities` with caching, input normalization, and error handling.
- Added tests for department gate detection, normalization, and fallback scenarios.
- Implemented `XLVaskUsageFilters` to filter and detect attached usage orders.
- Enhanced `XLVaskUsagePagination` with computed visible object counts and filtering functionality.
- Introduced `openOutsideEntranceGate` and `openOutsideExitGate` actions.
- Added dynamic button rendering based on department gate capabilities.
- Implemented unit tests for gate visibility and action triggers.
- Introduced unit tests for `DepartmentGates` config modal and gate commands in `useWashSessionActions`.
- Added E2E tests to verify gate commands and button functionality in self-serve in-progress flow.
- Updated localization files to include gate control labels (`open_property_access_gate`, `open_property_exit_gate`).
- Enhanced `DepartmentGates.vue` with config modal logic, field validation, and dynamic input rendering.
- Introduced `openPropertyAccessGate` and `openPropertyExitGate` actions in `useWashSessionActions.js`.
- Added Vue button components for gate control in `MyWashStart.vue`.
- Updated localization files with translations for gate control labels.
- Added `UNKNOWN` and `VALID` statuses to `MachineStatusType` with corresponding icon and style mappings.
- Updated `SelfServeMachineRelayControls` to use `UNKNOWN` and `VALID` statuses for machine and customer displays.
- Introduced `decimalRound` function for precise rounding in `DepartmentWeather.vue` data rendering.
- Applied `decimalRound` to display hours with two decimal precision in department reports.
- Added dynamic image previews with query parameter handling and error recovery in `SelfServeTryModal.vue`.
- Introduced outside gate controls (`Entrance` and `Exit`) in `SelfServeMachineRelayControls.vue` with corresponding command handling logic.
- Enhanced vehicle type scoping logic in `SelfServeTasksPagination.vue` and `SelfServeConditionsPagination.vue` to ensure machine-type filtering consistency.
- Updated related unit tests to verify new dynamic image logic, gate controls, and scoping behaviors.
- Added drag-and-drop functionality for task prioritization, with visual indicators and reordering logic.
- Updated UI to support draggable tasks and ensure accessibility for admin users.
- Included unit tests to verify drag-and-drop behavior, task priority updates, and error handling.
- Introduced task order priority, dynamic image thumb position, and improved task gate type handling in the self-serve studio.
- Enhanced task payload normalization with nullable fields and parameter verification.
- Updated UI with order priority controls, dynamic images configuration, and machine type-specific scoping options.
- Added and refined unit tests for task sorting, form controls, and validation rules.
- Introduced tests for legacy scope selectors and task submission validation.
- Added guards for vehicle type, lane, and department scoping in questions and tasks.
- Verified cache clearing and consistent data loading for self-serve studio.
- Updated navigation and localization for new self-serve paths.
- Added tests to verify legacy scope selectors for lanes and vehicle types.
- Ensured condition submission is guarded for both machine type and legacy scopes.
- Validated vehicle type scoping with product query filtering and new record defaults.
- Introduced `scopedProductId` for vehicle-specific filtering and configuration adjustments.
- Added `Vehicle Type` dropdown for filtering questions, conditions, and tasks.
- Enhanced validation for department, lane, and vehicle type scoping.
- Updated UI to include vehicle type scoping indicators and selection components.
- Added alignment fixes for action buttons and corresponding unit test coverage.
- Introduced a new Vue component supporting versioned configuration authoring for questions, conditions, tasks, and rules.
- Implemented scoped editing with lane and machine type-specific configurations.
- Added version tracking features, including validation, publication, and rollback.
- Enhanced UI with tabbed navigation, modals for adding/editing records, and notifications for actions.
- Added `INCLUDED` and `BILLABLE` statuses to `MachineStatusType` for enhanced session tracking.
- Introduced `configVersionId` and `evaluationTrace` support in self-serve logic and UI.
- Enhanced `SelfServeMachineRelayControls` with billable session parsing and UI updates.
- Updated `SelfServeMachineStatus` to reflect new statuses with appropriate icons and labels.
- Improved session summary displays with detailed evaluation trace output.
- Enhanced `SelfServeMachineRelayControls` with detailed `b-tooltip` descriptions for Machine, Program Picker, and Cleaner relays.
- Added `b-tooltip` to `SelfServeMachine` for the "Allow Self-Serve" toggle, explaining its impact on machine accessibility.
- Updated imports to include `BTooltip` from Buefy.
- Implemented department self-serve status management in `SelfServeMachine` with fetching, updating, and error handling.
- Added unit tests for status retrieval, toggle behavior, and error scenarios.
- Enhanced UI with `b-switch` for self-serve enablement control.
- Introduced `DepartmentModulesDisplay` and `DepartmentModulesSetup` components for self-serve enablement management.
- Implemented `getDepartmentSelfServeEnabled` and `setDepartmentSelfServeEnabled` helpers.
- Added unit tests for self-serve status fetching, updating, and UI synchronization.
- Enhanced connectivity and relay logic with in-progress wash session handling and detailed displays.
- Implement shared gate relay handling in `SelfServeMachineRelayControls` with unified button for entrance/exit.
- Add unit tests for gate control variations (shared vs. separate relays).
- Extend OpenAPI with endpoints for in-progress wash session details and gate operations.
- Update `MachineType` with relay configurations for comprehensive gate handling.
- Implemented `openEntranceGate` and `openExitGate` actions in connectivity relay.
- Added gate normalization logic and error handling for invalid gate types.
- Updated components and unit tests to support entrance/exit gate opening.
- Implemented tests for self-serve connectivity relay API wrappers, covering status retrieval, set operations, and lane commands.
- Added tests for the machine connectivity store, including relay toggling, polling, force operations, and error handling.
- Refactored relay functionality to improve maintainability and testability, introducing helper functions for lane and relay commands.
- Updated machine and connectivity-related components to align with new relay definitions and shared store logic.
- Added `MachineRelayType` for defining relay types and statuses.
- Refactored relay logic into `SelfServeConnectivityRelay` for cleaner separation of concerns.
- Updated `MachineType` to include relay configurations for machine, program picker, and cleaner.
- Replaced inline relay handling in `SelfServeMachineConnectivity` with the reusable `SelfServeConnectivityRelay` module.
- Refactored relay status retrieval with a polling mechanism using `setInterval`.
- Added relay toggle controls (`b-switch`) for machine, program picker, and cleaner relays.
- Improved error handling for relay status fetch and toggle operations.
- Updated lifecycle hooks to clean up polling on component unmount.
- Added `relay_machine_program_picker_id` and `relay_machine_cleaner_id` fields across components, views, and localization files.
- Updated relay control logic to include program picker and cleaner relays.
- Extended e2e and unit tests to validate new relay functionalities.
- Refactored related components to handle expanded relay configurations.
- Implemented `DepartmentSelfServe` dashboard for managing machine statuses and relays.
- Added components for machine display, controls, and relay connectivity (`SelfServeMachine`, `SelfServeMachineControls`, `SelfServeMachineRelayControls`).
- Integrated machine relay API endpoints (`/modules/self-serve/lane/relay/machine/*`) for status retrieval and updates.
- Updated router configuration with a new route for the self-serve dashboard.
- Extended OpenAPI definition to include machine relay APIs and enhance department weather targets documentation.
- Added behavior tests covering shared date range updates across multiple components, including `DepartmentDailyReportThisWeek` and `DepartmentDailyReportSmall`.
- Updated `DepartmentDashboardOverviewNavigation` to route date updates via the shared daily report store.
- Refactored components to use shared `DepartmentDailyReportObject` for date state management.
- Adjusted e2e tests to validate date range synchronization and department goal progress tracking.
- Implemented `computeCadenceTargetForTimeframe` utility to calculate dynamic targets based on timeframe and cadence criteria.
- Extended tests to validate timeframe-specific progress key selection, slice resolution, and cadence-based targets.
- Refactored `DepartmentGoals` to integrate cadence-aware target resolution and fallback logic.
- Enhanced e2e tests to cover bi-weekly cadence goals and dynamic target updates across timeframes.
- Implemented `goalProgressResolver` utility for resolving progress keys, slices, and periods.
- Refactored `DepartmentGoals` to integrate `goalProgressResolver` for improved clarity and modularity.
- Updated progress calculations with cadence-aware key handling and fallback resolution.
- Add isLoading handling and loader animations to `DepartmentWeather` and improve `GET` request concurrency.
- Added `getEntryKey` function to generate unique keys for dynamic entries.
- Enhanced `isMultiDaySelection` watcher with immediate execution option.
- Updated DOM structure for action buttons with inline export button support.
- Adjusted unit tests to cover functional changes and new test case for summary mode toggling.
- Implemented a daily summary toggle for multi-day selections in `DepartmentWeather`.
- Refactored state computation to support hourly and daily views with weather/status aggregation.
- Added unit tests for summary toggle functionality and entry summarization logic.
- Added unit tests for `DepartmentWeather` component to validate weather API calls, state handling, and edge cases (e.g., no departments, stale responses, hidden hours).
- Updated `DepartmentDailyReport` wiring to pass `department_ids`, `date_from`, and `date_to` to `DepartmentWeather`.
- Enhanced OpenAPI definition for weather timeline API with refined query parameters (`date_from`, `date_to`) and updated descriptions.
- Improved `GoalFormModal` layout, adding `department-grid--single-scroll` for better scrolling behavior and responsiveness.
- Restructured goal form modal with new tabbed layout for better usability.
- Updated and corrected i18n strings across multiple languages.
- Enhanced API descriptions for department weather timeline, added support for multiple department IDs, and refined query parameter logic.
- Introduced target duration modes (`weeks`, `months`, `years`, `legacy`) with optional cadence.
- Implemented input normalization for department daily targets and progress alerts.
- Added validations for duration cadence and date ranges.
- Updated internationalization strings for new form fields and validation messages.
- Extended tests for goal criteria serialization, normalization, and API payload generation.
- Updated `listShifts` diagnostic modal to include new filters (date range, employee, release state) with improved UI/UX.
- Simplified employee and department lookup diagnostics by removing unnecessary search inputs.
- Standardized error handling and validation messages for shift diagnostics.
- Extended localization files across all supported languages with new diagnostic strings.
- Adjusted Workfeed module logic to reflect updated query parameters (`startFrom`, `startTo`, `employeeID`, `released`).
- Updated and added unit and e2e tests to validate new diagnostic flows and parameter constraints.
- Removed unnecessary query parameters and pagination fields from `employees`, `shifts`, and `departments` endpoints.
- Standardized `description` fields with explicit API request details.
- Consolidated schema components (e.g., `WorkfeedPagination`) and enhanced examples for clarity.
- Updated API URL from `https://api.workfeed.io` to the new production endpoint.
- Improved shift schemas with granular fields for approvals, breaks, and comments.
- Extend i18n locales to include `company_id` and `company_id_desc` strings for API synchronization.
- Add `CompanyID` field to Workfeed configuration UI in `ConfigurationWorkfeed.vue`.
- Update unit and e2e tests to validate `CompanyID` functionality.
- Adjust Workfeed module logic to handle `CompanyID` get/set operations.
- Implement `Workfeed` module with endpoints for employees, shifts, departments, and diagnostics.
- Add configuration UI for enabling Workfeed, API settings (`api_url`, `api_key`), and integration diagnostics.
- Add unit tests for module schema validation, API endpoints, and diagnostics contract.
- Introduce smoke test for Workfeed configuration and modal diagnostics.
- Extend i18n locales to support Workfeed integration.
- Introduced examples for `WorkfeedConfigResponse` to demonstrate configurations like `enabled`, `api_url`, `api_key`, and `CompanyID`.
- Split `WorkfeedConfigEntry` into specific schema components with updated discriminator logic for easier validation and understanding.
- Enhanced OpenAPI documentation for `Workfeed` module configuration endpoints.
- Introduced `Workfeed` API endpoints for employees, shifts, and departments with optional filtering and pagination.
- Added configuration endpoints for Workfeed including `getWorkfeedConfig` and `updateWorkfeedConfig`.
- Defined schema components for `WorkfeedEmployee`, `WorkfeedShift`, `WorkfeedDepartment`, and related list/pagination responses.
- Updated tags to include new `Security` and `Modules` categories.
- Add unit tests covering `ActionSettingsWheelButton` behavior for resolving user ID and customer lookups.
- Refactor `ActionSettingsWheelButton` to use `watch` for reactive user ID and customer number changes.
- Replace `getUserId` with `resolveUserId` for improved error handling and cancellation of outdated requests.
- Simplify `hasUser` logic using a computed property and update dependent logic accordingly.
- Add unit tests for `EditableTableColumn` covering tooltip multiline behavior with `hoverHtml`.
- Update tooltip logic to use `isTooltipMultiline` computed property for slot checks.
- Adjust `OrderBookingsTable` to fix incorrect usage of `permissionCheckFunction` arguments.
- Optimize `RequestQueueProgress` state handling by removing unused visibility logic.
- Add unit test to ensure no recursive update errors occur during large request processing.