Commit Graph

52 Commits

Author SHA1 Message Date
Achintha Isuru
96056d0170 feat: Implement available orders feature in staff marketplace
- Added `AvailableOrder` and `AvailableOrderSchedule` entities to represent available orders and their schedules.
- Introduced `GetAvailableOrdersUseCase` and `BookOrderUseCase` for fetching and booking orders.
- Created `AvailableOrdersBloc` to manage the state of available orders and handle booking actions.
- Developed UI components including `AvailableOrderCard` to display order details and booking options.
- Added necessary events and states for the BLoC architecture to support loading and booking orders.
- Integrated new enums and utility functions for handling order types and scheduling.
2026-03-19 13:23:28 -04:00
Achintha Isuru
5792aa6e98 feat: add UTC parsing utilities and update date handling across entities
- Introduced `utc_parser.dart` with functions to convert UTC timestamps to local time.
- Updated date parsing in various entities to use the new utility functions for consistency.
- Refactored date handling in `BenefitHistory`, `Business`, `AttendanceStatus`, `AssignedWorker`, `TimeRange`, `Invoice`, `PaymentChartPoint`, `StaffPayment`, `TimeCardEntry`, `OrderItem`, `OrderPreview`, `RecentOrder`, `StaffRating`, `CoverageDayPoint`, `ForecastWeek`, `NoShowIncident`, `SpendDataPoint`, `AssignedShift`, `CancelledShift`, `CompletedShift`, `OpenShift`, `PendingAssignment`, `Shift`, `ShiftDetail`, `TodayShift`, `BusinessMembership`, and `Staff`.
- Updated `ReorderWidget` and `OrderEditSheet` to handle date formatting correctly.
2026-03-19 13:00:17 -04:00
Achintha Isuru
493891eea0 Add staff reliability stats & shift location
Introduce staff reliability statistics and location fields across domain, data, and UI. Changes include:

- New API endpoint StaffEndpoints.profileStats ('/staff/profile/stats').
- New domain entity StaffReliabilityStats with JSON (de)serialization and export.
- Profile repository: getReliabilityStats implementation and interface addition.
- New GetReliabilityStatsUseCase and DI registration in StaffProfileModule.
- ProfileCubit/state: load and store reliabilityStats; UI wired to display ReliabilityStatsCard and ReliabilityScoreBar using state values.
- Coverage/shift updates: Added AssignedWorker.hasReview to track if a worker was reviewed; added locationName/locationAddress to ShiftWithWorkers and show location in ShiftHeader; hide rate button if worker.hasReview.
- Clock-in handling: treat backend ALREADY_CLOCKED_IN (409) as idempotent by re-fetching attendance and emitting success when appropriate.

These changes wire backend stats through repository/usecase/cubit to the profile UI and add shift location and review-awareness to client views.
2026-03-19 10:53:37 -04:00
Achintha Isuru
b317c53e7e feat(review): implement worker review functionality with rating, feedback, and issue flags 2026-03-18 19:01:51 -04:00
Achintha Isuru
9039aa63d6 feat: add benefit history feature with lazy loading and pagination
- Implemented `getBenefitsHistory` method in `HomeRepository` to retrieve paginated benefit history.
- Enhanced `BenefitsOverviewCubit` to manage loading and displaying benefit history.
- Created `BenefitHistoryPage` for full-screen display of benefit history with infinite scroll support.
- Added `BenefitHistoryPreview` widget for expandable history preview in benefit cards.
- Introduced `BenefitHistoryRow` to display individual history records.
- Updated `BenefitsOverviewState` to include history management fields.
- Added new entities and use cases for handling benefit history.
- Created design system documentation for UI patterns and known gaps.
2026-03-18 17:21:30 -04:00
Achintha Isuru
e1d30c124b feat: migrate experience management to V2 API; add support for industries and skills 2026-03-17 13:44:48 -04:00
Achintha Isuru
376b4e4431 feat: Update API endpoint usage in repositories to remove redundant path property
- Refactored multiple repository implementations across client and staff features to directly use endpoint objects without accessing the `path` property.
- Introduced a new `FeatureGate` class for client-side feature gating based on user scopes, allowing for better access control to API endpoints.
- Added `ApiEndpoint` class to represent API endpoints with their paths and required scopes for future feature gating.
2026-03-17 12:01:06 -04:00
Achintha Isuru
eccd2c6dbd Use UserRole enum for session role handling
Replace string-based role handling with a typed UserRole enum. Adds src/entities/enums/user_role.dart and exports it from krow_domain. Update SessionHandlerMixin to use List<UserRole> and change fetchUserRole to return UserRole?. V2SessionService now derives the role via UserRole.fromSessionData, and client/staff SessionListener widgets pass const <UserRole>[...] when initializing the auth listener. This centralizes role derivation and eliminates scattered role string literals.
2026-03-17 11:19:54 -04:00
Achintha Isuru
4834266986 feat: add entities for staff personal info, reports, shifts, and user sessions
- Implemented StaffPersonalInfo entity for staff profile data.
- Created ReportSummary entity for summarizing report metrics.
- Added SpendReport and SpendDataPoint entities for spend reporting.
- Introduced AssignedShift, CancelledShift, CompletedShift, OpenShift, PendingAssignment, ShiftDetail, TodayShift entities for shift management.
- Developed ClientSession and StaffSession entities for user session management.
2026-03-16 15:59:22 -04:00
Achintha Isuru
7b576c0ed4 feat: Implement notification and storage services, geofence management, and BLoC for geofence verification
- Add NotificationService for handling local notifications.
- Introduce StorageService for key-value storage using SharedPreferences.
- Create DeviceLocation model to represent geographic locations.
- Define LocationPermissionStatus enum for managing location permissions.
- Implement BackgroundGeofenceService for periodic geofence checks while clocked in.
- Develop GeofenceServiceImpl for geofence proximity verification using LocationService.
- Create GeofenceResult model to encapsulate geofence check results.
- Define GeofenceServiceInterface for geofence service abstraction.
- Implement GeofenceBloc to manage geofence verification and background tracking.
- Create events and states for GeofenceBloc to handle various geofence scenarios.
- Add GeofenceStatusBanner widget to display geofence verification status in the UI.
2026-03-13 16:01:26 -04:00
Achintha Isuru
425bf19a9b feat: Implement full certificate management with upload, upsert, delete, and new domain models for staff certificates and their statuses. 2026-02-26 23:28:59 -05:00
Achintha Isuru
5ab5182c1b feat: Implement comprehensive staff document management with verification status tracking and complete document listing. 2026-02-26 22:23:27 -05:00
Achintha Isuru
0ad70a4a42 Merge branch 'dev' into 503-build-dedicated-interface-to-display-hub-details 2026-02-25 13:07:59 -05:00
Achintha Isuru
e2f3de3a54 feat: introduce BaseDeviceService to standardize interactions with native device features. 2026-02-25 12:29:47 -05:00
Achintha Isuru
a21fbf6871 feat: Introduce FileVisibility enum and refactor FileUploadService to use it instead of magic strings for file access levels. 2026-02-25 10:50:42 -05:00
Achintha Isuru
77bb469186 refactor: introduce base API service and core service for standardized API interaction and error handling. 2026-02-25 10:33:27 -05:00
Achintha Isuru
71c1610c0e feat: Implement ApiService with Dio for standardized API requests and responses using ApiResponse entity. 2026-02-25 10:05:41 -05:00
eeb8c28a61 hub & manager issues 2026-02-25 19:58:28 +05:30
Achintha Isuru
fd0208efa0 feat: Introduce AttireVerificationStatus enum and add verificationId to staff attire items. 2026-02-24 17:31:41 -05:00
7e26b54c50 feat: complete client billing UI and staff benefits display (#524, #527)
- Client App: Built dedicated ShiftCompletionReviewPage  and InvoiceReadyPage
- Client App: Wired up invoice summary mapping and parsing logic from Data Connect
- Staff App: Added dynamic BenefitsOverviewPage tracking worker limits matching client mockup
- Staff App: Display progress ring values wired to real VendorBenefitPlan & BenefitsData balances
2026-02-24 16:17:19 +05:30
Achintha Isuru
214e0d1237 feat: Implement order details retrieval for pre-filling new order forms for reordering. 2026-02-22 02:18:33 -05:00
Achintha Isuru
6de6661394 feat: add OrderType enum and integrate orderType in OrderItem and ViewOrdersCubit 2026-02-21 20:53:27 -05:00
Achintha Isuru
6e50369e17 refactor: remove OrderType entity and update order types to use UiOrderType 2026-02-21 20:29:59 -05:00
8849bf2273 feat: architecture overhaul, launchpad-style reports, and uber-style locations
- Strengthened Buffer Layer architecture to decouple Data Connect from Domain
- Rewired Coverage, Performance, and Forecast reports to match Launchpad logic
- Implemented Uber-style Preferred Locations search using Google Places API
- Added session recovery logic to prevent crashes on app restart
- Synchronized backend schemas & SDK for ShiftStatus enums
- Fixed various build/compilation errors and localization duplicates
2026-02-20 17:20:06 +05:30
José Salazar
bb8c5733ba Merge pull request #434 from Oloodi/recreate_validation
recurring + permanent order
2026-02-18 14:38:35 -05:00
José Salazar
75e534620d permanent order v1 2026-02-17 18:59:31 -05:00
José Salazar
85c8a09d9e first version of recurring order 2026-02-17 16:24:59 -05:00
Achintha Isuru
9e1af17328 feat: Refactor bank account handling in billing and staff modules
- Introduced new bank account entities: BusinessBankAccount and StaffBankAccount.
- Updated bank account adapter to handle new entities.
- Removed legacy BankAccount entity and its adapter.
- Implemented use case for fetching bank accounts in billing repository.
- Updated BillingBloc and BillingState to include bank accounts.
- Refactored PaymentMethodCard to display bank account information.
- Adjusted actions widget layout for better UI consistency.
- Updated staff bank account repository and use cases to utilize new entity structure.
- Ensured all references to bank accounts in the codebase are updated to the new structure.
2026-02-17 12:05:24 -05:00
Achintha Isuru
9b6cad3bde feat(breaks): Implement break functionality with Break entity and adapter 2026-02-16 13:26:04 -05:00
Achintha Isuru
08b96cea6f feat: Introduce CoverageWorker entity and update coverage repository
- Added CoverageWorker entity to represent worker status and check-in information.
- Updated CoverageRepositoryImpl to utilize CoverageWorker and its status.
- Removed legacy coverage_entities.dart file and replaced references with krow_domain imports.
- Enhanced coverage statistics calculations based on new worker status logic.
- Updated UI components to reflect changes in worker status representation.
- Modified acceptance of shifts to align with new status definitions.
- Cleaned up QA testing checklist to remove outdated items and clarify requirements.
2026-02-01 21:05:14 -05:00
bwnyasse
caac050ac9 feat(core_localization): add error translation utility and new error messages
feat(client_auth): implement error handling with localized messages
feat(client_hubs): implement error handling with localized messages
feat(client_billing): navigate to home after billing
feat(client_coverage): navigate to home after coverage
feat(client_create_order): navigate to home after create order
feat(client_settings): navigate to home after settings
feat(client_view_orders): show hub name in order card
fix(client_auth): handle existing firebase accounts during sign-up

This commit introduces a new utility function, `translateErrorKey`,
to translate error message keys to localized strings. It also adds
new error messages to the localization files for both English and
Spanish.

The commit also implements error handling with localized messages in
the client authentication and hubs features. This makes it easier for
users to understand what went wrong and how to fix it.

Additionally, the commit updates the navigation flow for the billing,
coverage, create order, and settings features to navigate to the home
page after the user completes the action.

Finally, the commit fixes a bug where the hub name was not being
displayed in the order card.
2026-01-31 18:56:48 -05:00
Achintha Isuru
e85912b6cf feat: update shift repository implementation and add shift adapter 2026-01-30 17:53:28 -05:00
Achintha Isuru
452f029108 feat: integrate payment summary and adapter for staff earnings management 2026-01-30 17:37:08 -05:00
Achintha Isuru
1268da45b0 feat: integrate Clock In functionality with Firebase support and refactor attendance management 2026-01-30 17:22:51 -05:00
Achintha Isuru
0b763bae44 feat: integrate availability adapter and repository implementation for staff availability management 2026-01-30 16:04:05 -05:00
Achintha Isuru
4fb2f17ea5 feat: integrate TimeCard feature with Firebase support and restructure related components 2026-01-30 15:29:19 -05:00
Achintha Isuru
078f828aad feat: introduce TaxForm entity and adapter, refactor tax forms repository and use cases for improved data handling 2026-01-27 16:25:47 -05:00
Achintha Isuru
35c0b19d6b feat: implement BankAccountAdapter for mapping data layer values to domain entity and refactor BankAccountRepositoryImpl for improved staff ID handling 2026-01-27 15:43:21 -05:00
Achintha Isuru
93779c21bb feat: enhance experience management by introducing ExperienceSkill and Industry enums, refactoring related components 2026-01-27 14:34:09 -05:00
Achintha Isuru
157ace0e77 feat: implement ExperienceAdapter and update ExperienceRepositoryImpl to use Data Connect and FirebaseAuth 2026-01-27 13:49:23 -05:00
Achintha Isuru
450683c45c feat: implement emergency contact management with Firebase integration and relationship type handling 2026-01-27 12:27:22 -05:00
Achintha Isuru
2a820b3e4f feat: Implement staff availability feature with BLoC architecture
- Created AvailabilityPage with UI for managing staff availability.
- Integrated BLoC for state management, including LoadAvailability and ToggleDayStatus events.
- Added quick set options for availability (All Week, Weekdays, Weekends, Clear All).
- Implemented week navigation and day selection with visual feedback.
- Developed time slot management for each day, allowing toggling of availability.
- Established StaffAvailabilityModule for dependency injection and routing.
- Updated pubspec.yaml with necessary dependencies for the feature.
2026-01-25 22:35:09 -05:00
José Salazar
b41943a53c adding missing vendor line 2026-01-25 17:32:40 -05:00
Achintha Isuru
7c9252e0c3 Merge branch '208-p0-auth-05-get-started-screen' of https://github.com/Oloodi/krow-workforce into 208-p0-auth-05-get-started-screen 2026-01-25 17:01:38 -05:00
Achintha Isuru
8e429dda03 feat: add ShiftAssignmentCard widget and StaffShifts module
- Implemented ShiftAssignmentCard widget for displaying shift assignments with client details, pay calculation, and confirmation actions.
- Created StaffShiftsModule to manage dependencies, routes, and use cases related to staff shifts.
- Added necessary dependencies in pubspec.yaml and generated pubspec.lock.
2026-01-25 16:09:11 -05:00
José Salazar
a9a64caff6 reoder view working 2026-01-25 16:06:07 -05:00
Achintha Isuru
533a545da7 feat: add staff attire management feature
- Introduced localization for staff attire in English and Spanish.
- Created AttireItem entity to represent attire items.
- Implemented StaffAttireModule with repository, use cases, and BLoC for state management.
- Developed UI components including AttirePage, AttireGrid, AttireInfoCard, AttestationCheckbox, and AttireBottomBar.
- Added navigation for attire management and integrated with existing staff profile flow.
- Implemented functionality for selecting attire items, uploading photos, and saving selections with validation.
2026-01-25 12:23:28 -05:00
Achintha Isuru
753a93c24a feat: add staff documents feature with document card and progress card
- Implemented DocumentCard widget to display individual staff documents with status and actions.
- Created DocumentsProgressCard widget to show overall verification progress of documents.
- Established StaffDocumentsModule for dependency injection and routing to documents page.
- Updated pubspec.yaml and pubspec.lock for new dependencies and configurations.
2026-01-25 02:19:30 -05:00
Achintha Isuru
45d6710183 Add vendor selection and rates to order creation flow
Introduces a Vendor entity and integrates vendor selection into the one-time order creation and order editing flows. Vendor-specific rates are now displayed and used for position roles, and UI components have been updated to allow users to select a vendor and see corresponding rates. Mock vendor data is used for demonstration purposes.
2026-01-23 12:42:26 -05:00
Achintha Isuru
960b21ec8c Add client view orders feature module
Introduces the client 'View Orders' feature, including domain entity, repository, use case, Cubit, state, navigation extension, UI page, and widget. Integrates the feature into the client main module, updates localization files for English and Spanish, and adds supporting icons to the design system. Also updates the mock repository to provide sample order data.
2026-01-23 11:28:51 -05:00