111 Commits

Author SHA1 Message Date
39263a4af5 chore: fix 273+ analysis issues and repair corrupted core files 2026-03-20 21:05:23 +05:30
d3159bc2ae Merge branch 'origin/dev' into feature/session-persistence-new 2026-03-20 12:44:25 +05:30
Achintha Isuru
1e4c8982a5 feat: Add additional fields to OrderItem and update cost calculation in ViewOrderCard 2026-03-19 23:55:57 -04:00
Achintha Isuru
591b5d7b88 feat: Enhance CancelledShift and PendingAssignment models with additional fields for client and pay details 2026-03-19 16:44:54 -04:00
Achintha Isuru
bd2d5610b3 feat: Add cancellation reason handling and display in shift details 2026-03-19 16:36:35 -04:00
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
230942e776 dev merge 2026-03-19 15:25:37 +05:30
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
baf426935e feat(shift): enhance Shift entity with client and role names, update JSON deserialization 2026-03-18 17:56:48 -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
f70bdc4fca feat(shifts): add client name support in OpenShift and RecommendedShiftCard 2026-03-18 15:58:58 -04:00
Achintha Isuru
47508f54e4 feat(shifts): enhance TodayShift and shift card components with client details and pay calculations 2026-03-18 15:39:05 -04:00
Achintha Isuru
3a5f2cc9c6 feat(shifts): implement submit for approval functionality
- Added `submitForApproval` method to `ShiftsRepositoryInterface` and its implementation in `ShiftsRepositoryImpl`.
- Created `SubmitForApprovalUseCase` to handle the submission logic.
- Updated `ShiftsBloc` to handle `SubmitForApprovalEvent` and manage submission state.
- Enhanced `HistoryShiftsTab` and `MyShiftsTab` to support submission actions and display appropriate UI feedback.
- Refactored date utilities for better calendar management and filtering of past shifts.
- Improved UI components for better spacing and alignment.
- Localized success messages for shift submission actions.
2026-03-18 14:37:55 -04:00
Achintha Isuru
0b5254311d feat(api): update DeviceLocation model and clean up AuthRepositoryImpl and BillingPageSkeleton 2026-03-18 10:00:27 -04:00
Achintha Isuru
de388c9a77 feat: update profile setup and bank account management; enhance API integration and data handling 2026-03-17 14:32:26 -04:00
Achintha Isuru
b6a655a261 feat: enhance API error handling and response structure; introduce ApiException for V2 error codes 2026-03-17 14:15:26 -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
a0d5a18e6f Refactor shift history and my shifts tabs to use a unified ShiftCard widget
- Introduced ShiftCard widget to standardize the display of shift information across different states (assigned, completed, cancelled, pending).
- Removed redundant card implementations (_CompletedShiftCard, MyShiftCard, ShiftAssignmentCard) and replaced them with ShiftCard.
- Updated localization for empty states and shift titles in HistoryShiftsTab and MyShiftsTab.
- Enhanced MyShiftsTab to track submitted shifts locally and show appropriate actions based on shift status.
- Added meta package dependency for improved type annotations.
2026-03-17 13:08:32 -04:00
Achintha Isuru
d12b45a37d Expose parseDouble; fix shift mapping and UI
Rename and expose numeric parser (from _parseDouble to parseDouble) with a doc comment so other modules can reuse it. Update ClockIn repository mapping to populate orderId and prefer clientName for the shift title, and map latitude/longitude using Shift.parseDouble. Remove outdated TODOs and remove the selected/today badge text from the shift card UI. These changes consolidate parsing logic, improve today-shift mapping fidelity, and simplify the shift card display.
2026-03-17 12:14:14 -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
b31a615092 feat: Migrate staff profile features from Data Connect to V2 REST API
- Removed data_connect package from mobile pubspec.yaml.
- Added documentation for V2 profile migration status and QA findings.
- Implemented new session management with ClientSessionStore and StaffSessionStore.
- Created V2SessionService for handling user sessions via the V2 API.
- Developed use cases for cancelling late worker assignments and submitting worker reviews.
- Added arguments and use cases for payment chart retrieval and profile completion checks.
- Implemented repository interfaces and their implementations for staff main and profile features.
- Ensured proper error handling and validation in use cases.
2026-03-16 22:45:06 -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
38007d32bc refactor: Enhance StaffPayment model and PaymentHistoryItem widget with shift details 2026-03-04 13:37:42 -05:00
Achintha Isuru
6d9cb64487 refactor: Move constructor to the top of the Benefit class for improved readability 2026-03-03 21:26:48 -05:00
Achintha Isuru
f39f8860ea Persist verificationId for staff certificates
Add support for verificationId throughout the certificate flow: schema, GraphQL mutations/queries, domain, repositories, service implementation, and UI.

- Backend: add verificationId to Certificate schema and include it in upsert/create mutations; add auth insecureReason notes to related connector operations.
- Data layer: add verificationId parameter to StaffConnectorRepository API and propagation in implementation (SDK call remains commented with FIXME until dataconnect SDK is regenerated).
- Domain: add verificationId field to StaffCertificate (constructor, copyWith, props).
- Certificates flow: create verification via verificationService, pass returned verificationId to upsertStaffCertificate so the verification record is persisted with the certificate.
- UI: update certificate upload page to show existing file path, disable editing of name/issuer/number, rearrange fields, move remove button, change file icon and text style.
- Misc: minor lambda formatting cleanup in benefits mapping.

Note: the generated dataconnect SDK must be refreshed to enable the new .verificationId(...) call (there is a commented FIXME in the connector implementation).
2026-02-27 15:27:15 -05: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
4515d42cd3 feat: Enhance attire verification status system with more granular states and update related UI and data handling. 2026-02-25 19:05:03 -05:00
Achintha Isuru
9c9cdaca78 feat: Implement attire photo capture, update AttireItem entity, and streamline the photo upload and state management flow. 2026-02-25 13:56:35 -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
239fdb99a8 Fix remaining stash issues by reverting to origin/dev 2026-02-25 13:46:19 +05:30
4e7838bf93 Fix stash conflict 2026-02-25 13:35:58 +05:30
4d4a9b6a66 Merge dev 2026-02-25 13:35:18 +05:30
17c2c2afbb Merge dev 2026-02-25 13:34:52 +05:30
714702015c UI fields for cost center 2026-02-25 13:03:04 +05:30
Achintha Isuru
fd0208efa0 feat: Introduce AttireVerificationStatus enum and add verificationId to staff attire items. 2026-02-24 17:31:41 -05:00
Achintha Isuru
616f23fec9 feat: Implement staff attire management including fetching options, user attire status, and upserting attire details. 2026-02-24 17:16:52 -05:00
Achintha Isuru
b29351a3aa refactor: Replace attire option 'icon' field with 'description' across the schema and data models, and update the UI to display the new description. 2026-02-24 15:13:06 -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
9e38fb7d5f feat: Add event name to order items and refactor navigation and shift data access to use direct object properties. 2026-02-22 21:07:57 -05:00
Achintha Isuru
6e81d403c3 feat: Add support for displaying recurring shift details including start/end dates and recurring days. 2026-02-22 15:15:41 -05:00