55 Commits

Author SHA1 Message Date
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
843eec5692 feat: Refactor context reading in emergency contact and FAQs widgets
- Updated the context reading method in `EmergencyContactAddButton` and `EmergencyContactFormItem` to use `ReadContext`.
- Modified the `FaqsWidget` to utilize `ReadContext` for fetching FAQs.
- Adjusted the `PrivacySectionWidget` to read from `PrivacySecurityBloc` using `ReadContext`.

feat: Implement Firebase Auth isolation pattern

- Introduced `FirebaseAuthService` and `FirebaseAuthServiceImpl` to abstract Firebase Auth operations.
- Ensured features do not directly import `firebase_auth`, adhering to architecture rules.

feat: Create repository interfaces for billing and coverage

- Added `BillingRepositoryInterface` for billing-related operations.
- Created `CoverageRepositoryInterface` for coverage data access.

feat: Add use cases for order management

- Implemented use cases for fetching hubs, managers, and roles related to orders.
- Created `GetHubsUseCase`, `GetManagersByHubUseCase`, and `GetRolesByVendorUseCase`.

feat: Develop report use cases for client reports

- Added use cases for fetching various reports including coverage, daily operations, forecast, no-show, performance, and spend reports.
- Implemented `GetCoverageReportUseCase`, `GetDailyOpsReportUseCase`, `GetForecastReportUseCase`, `GetNoShowReportUseCase`, `GetPerformanceReportUseCase`, and `GetSpendReportUseCase`.

feat: Establish profile repository and use cases

- Created `ProfileRepositoryInterface` for staff profile data access.
- Implemented use cases for retrieving staff profile and section statuses: `GetStaffProfileUseCase` and `GetProfileSectionsUseCase`.
- Added `SignOutUseCase` for signing out the current user.
2026-03-19 01:10:27 -04:00
Achintha Isuru
499dceda37 fix(coverage_shift_list): update cancel button visibility logic based on shift start time 2026-03-19 00:31:33 -04:00
Achintha Isuru
c8f944e1ac style(shift_header): improve layout and styling of shift header components 2026-03-19 00:27:42 -04:00
Achintha Isuru
af1ff53749 fix(worker_row): correct condition for displaying cancel button 2026-03-19 00:19:18 -04:00
Achintha Isuru
8bb336d1b5 Refactor coverage-related widgets and improve UI consistency
- Updated CancelLateWorkerSheet to enhance layout and information display.
- Modified CoverageCalendarSelector to adjust color opacity for better visibility.
- Simplified CoveragePageSkeleton by removing unused quick stats row.
- Removed CoverageQuickStats widget as it was redundant.
- Enhanced CoverageShiftList to manage expanded state and improve worker display.
- Deleted CoverageStatCard as its functionality is no longer needed.
- Revamped CoverageStatsHeader to provide a clearer overview of coverage statistics.
- Improved LateWorkersAlert for better visual feedback on late workers.
- Redesigned ShiftHeader for a more interactive and informative shift card.
- Updated WorkerRow to streamline status display and action buttons.
2026-03-19 00:12:35 -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
9ee8467632 Refactor widgets & imports; add krow_domain
Add local krow_domain dependency to client, staff apps and client home package. Numerous UI/widget cleanups across features: add const where applicable, use explicit List<Widget> types and List<Widget>.generate, add super.key to constructors, tighten BlocProvider generics, replace some Containers with SizedBox, and simplify InputDecoration/Border constructors. Fix API error handler to return a const UnknownException. Update internal imports to package-style paths (staff_home, staff_payments, staff_main repository interface) and normalize Flutter imports (use material.dart). Add missing braces for early returns in tax form pages. Mostly formatting and small API/typing refactors with no behavioral changes intended.
2026-03-18 10:27:31 -04:00
Achintha Isuru
c9f7e41cbe refactor(skeletons): update children type annotations and improve consistency in skeleton widgets 2026-03-18 10:01:23 -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
57bba8ab4e Refactor API endpoint usage across multiple repositories to use ClientEndpoints and StaffEndpoints
- Updated ClientOrderQueryRepositoryImpl to replace V2ApiEndpoints with ClientEndpoints for vendor, role, hub, and manager retrieval methods.
- Modified ViewOrdersRepositoryImpl to utilize ClientEndpoints for order viewing, editing, and vendor retrieval.
- Refactored ReportsRepositoryImpl to switch from V2ApiEndpoints to ClientEndpoints for various report fetching methods.
- Changed SettingsRepositoryImpl to use AuthEndpoints for sign-out functionality.
- Adjusted AuthRepositoryImpl to replace V2ApiEndpoints with AuthEndpoints for phone authentication and sign-out processes.
- Updated ProfileSetupRepositoryImpl to utilize StaffEndpoints for profile setup.
- Refactored AvailabilityRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for availability management.
- Changed ClockInRepositoryImpl to use StaffEndpoints for clock-in and clock-out functionalities.
- Updated HomeRepositoryImpl to replace V2ApiEndpoints with StaffEndpoints for dashboard and profile completion retrieval.
- Refactored PaymentsRepositoryImpl to utilize StaffEndpoints for payment summaries and history.
- Changed ProfileRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for staff profile and section status retrieval.
- Updated CertificatesRepositoryImpl to use StaffEndpoints for certificate management.
- Refactored DocumentsRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for document management.
- Changed TaxFormsRepositoryImpl to utilize StaffEndpoints for tax form management.
- Updated BankAccountRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for bank account management.
- Refactored TimeCardRepositoryImpl to use StaffEndpoints for time card retrieval.
- Changed AttireRepositoryImpl to utilize StaffEndpoints for attire management.
- Updated EmergencyContactRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for emergency contact management.
- Refactored ExperienceRepositoryImpl to use StaffEndpoints for industry and skill retrieval.
- Changed PersonalInfoRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for personal information management.
- Updated FaqsRepositoryImpl to utilize StaffEndpoints for FAQs retrieval.
- Refactored PrivacySettingsRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for privacy settings management.
- Changed ShiftsRepositoryImpl to use StaffEndpoints for shift management and retrieval.
- Updated StaffMainRepositoryImpl to switch from V2ApiEndpoints to StaffEndpoints for profile completion checks.
2026-03-17 11:40:15 -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
4423775fa1 feat: add shimmer loading skeletons for various pages and components
- Implemented ReorderCardSkeleton and ReorderSectionSkeleton for the client home page.
- Added SpendingCardSkeleton and SpendingSectionSkeleton for spending-related UI.
- Created OrderCardSkeleton and associated skeletons for the view orders page.
- Developed MetricCardSkeleton and MetricsGridSkeleton for reports page metrics.
- Introduced HomePageSkeleton and its components for staff home page.
- Added PaymentItemSkeleton and PaymentsPageSkeleton for payments page.
- Created ShiftDetailsPageSkeleton and related components for shift details.
- Implemented ShiftsPageSkeleton and ShiftCardSkeleton for shifts page.
2026-03-10 14:25:56 -04:00
Achintha Isuru
0f0714c55b feat: add shimmer loading skeletons for various pages and components
- Implemented UiShimmer as a core shimmer wrapper for animated gradient effects.
- Created shimmer presets for list items, stats cards, section headers, and more.
- Developed specific skeletons for billing, invoices, coverage, hubs, reports, payments, shifts, and home pages.
- Enhanced user experience by providing visual placeholders during data loading.
2026-03-10 13:21:30 -04:00
Achintha Isuru
80b83a16f3 Refactor coverage widgets and improve localization
- Replaced custom navigation buttons with a new CalendarNavButton widget in coverage_calendar_selector.dart.
- Removed the CoverageHeader widget as it is no longer needed.
- Updated CoverageQuickStats to use CoverageStatCard for displaying statistics.
- Refactored CoverageShiftList to utilize ShiftHeader and WorkerRow for better structure.
- Added LateWorkersAlert with improved localization for late worker notifications.
- Introduced CoverageBadge and CoverageStatCard for better encapsulation of UI components.
- Created CoverageStatsHeader for displaying coverage metrics in a consistent format.
- Implemented ShiftHeader to manage shift-related information display.
- Developed WorkerRow to represent individual worker statuses with proper localization.
2026-03-10 12:27:27 -04:00
Achintha Isuru
a22a092b56 fix: Adjust border width and improve layout of stat card in coverage quick stats 2026-03-10 12:08:51 -04:00
Achintha Isuru
825cffbc33 feat: Update typography styles and improve layout in coverage components 2026-03-10 12:07:36 -04:00
Achintha Isuru
7a5c130289 refactor: change singleton registrations to lazySingleton for improved performance 2026-03-09 15:01:18 -04:00
Achintha Isuru
76ffeb9667 refactor: Clean up imports and comment out unused button in CoverageShiftList widget 2026-03-04 13:19:43 -05:00
Achintha Isuru
f453f8aadd feat: Refine badge and status indicator styling across various client features, including updated colors, borders, and typography, and remove unused action buttons. 2026-02-23 12:14:28 -05:00
13f8003bda refactor of usecases 2026-02-23 17:18:50 +05:30
474be43448 fix: add ignore_for_file to data connect Repos and modify CI to avoid analyzing deleted files 2026-02-20 19:51:44 +05:30
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
Achintha Isuru
789fe24f2b feat: Refactor CoverageModule and CoverageRepositoryImpl to utilize DataConnectService 2026-02-16 17:38:09 -05:00
4e1a41ebff Fix build errors: localization syntax, key paths, and ViewOrderCard widget 2026-02-14 16:26:10 +05:30
ad6db7d851 chore: refactor UI consistency using design system tokens and remove LucideIcons 2026-02-12 18:37:31 +05:30
Achintha Isuru
d3b4ea3406 Delete outdated demo plan for Milestone 3 and replace with new feature testing plan; add detailed testing steps and feedback notes for client and staff applications; outline development tasks for Milestone 4 including backend and frontend requirements; establish research and business tasks for operational improvements and compliance. 2026-02-11 21:12:34 -05:00
c1112ac01c feat: Centralized Error Handling & Crash Fixes 2026-02-11 18:52:23 +05:30
José Salazar
761d718ffe deleting files with accepeted status of application 2026-02-10 12:11:25 -05:00
7570ffa3b9 Fix: Resolve critical linting issues and bugs (concurrency, syntax, dead code) 2026-02-10 19:12:01 +05:30
Achintha Isuru
fa6fa90bb8 feat: implement child route management for client and staff modules; enhance routing structure for better navigation 2026-02-04 17:13:55 -05:00
Achintha Isuru
c05261ddd7 feat: address missing features and bugs identified during Milestone 3 demo; improve localization, error handling, and navigation 2026-02-04 16:45:16 -05:00
Achintha Isuru
c2cb0bd82a Enhance Makefile help output with improved formatting and additional commands; update NEXT_SPRINT_TASKS with new improvement points; fix location fallback logic in CoverageRepositoryImpl 2026-02-03 12:15:57 -05:00
Achintha Isuru
476d697dc3 feat: Integrate ShiftAdapter for mapping application data to Shift entities and update status handling in Coverage and Shifts repositories 2026-02-01 22:18:07 -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
Achintha Isuru
9f8b60d571 feat: Update application status handling and improve build configuration
- Added handling for the COMPLETED application status in the CoverageRepositoryImpl to return 'confirmed'.
- Updated mobile client build and run commands in the makefile to include `--dart-define-from-file=../../config.dev.json` for better configuration management.
2026-02-01 13:20:24 -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
1e8d6ae65b refactor: update CoveragePage layout to use fixed height for shift list spacing 2026-01-30 01:36:19 -05:00
Achintha Isuru
bfe00a700a refactor: update CoveragePage to use StatefulWidget and implement scroll listener 2026-01-30 00:24:12 -05:00
José Salazar
c3263262af no 100% with 0/0 workers 2026-01-29 22:05:18 -05:00
José Salazar
3bed200625 counting # of shifs in the day 2026-01-29 22:00:01 -05:00
José Salazar
13a3f5a007 Merge remote-tracking branch 'origin/312-feature-integrate-google-maps-places-autocomplete-for-hub-address-validation' into 298-bug-enhance-order-creation-flow-implement-robust-timezone-handling-in-mobile-client-app 2026-01-29 14:36:43 -05:00
Achintha Isuru
e2d223c714 fix: improve layout and styling for empty state and shift header in CoverageShiftList 2026-01-29 12:30:30 -05:00
Achintha Isuru
dc129c4515 fix: remove background color from CoveragePage and adjust layout spacing 2026-01-29 11:38:40 -05:00
Achintha Isuru
8c8951ff51 fix: update package versions and dependencies across multiple pubspec.yaml files 2026-01-29 10:51:16 -05:00
José Salazar
75e7c35cea Merge Google Maps branch 2026-01-29 09:59:10 -05:00
José Salazar
9067d14475 converting all the dates to utc 2026-01-29 09:54:59 -05:00
Achintha Isuru
960aa9f003 chore: update pubspec files to include workspace resolution and remove unnecessary pubspec.lock 2026-01-28 23:17:17 -05:00
José Salazar
5840a5b793 validation date as utc and converting in coverage 2026-01-28 19:47:03 -05:00
José Salazar
ab5fed8639 adding extra shifts with no application 2026-01-27 11:52:44 -05:00