62 Commits

Author SHA1 Message Date
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
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
a12539ba07 feat: normalize user ID in auth envelope and update hub manager assignment logic 2026-03-17 14:47:01 -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
8fcf1d9d98 feat: Enhance background geofence functionality with notifications and localization support 2026-03-13 21:44:39 -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
94e15ae05d refactor: Refactor hub form from a dialog to a dedicated widget and streamline HubDetailsPage UI and bloc initialization. 2026-02-26 13:39:33 -05:00
Achintha Isuru
d8d3c3c79b refactor: Remove 'Edit Profile' and 'Hubs' buttons from settings actions and migrate client hubs page to use UiAppBar. 2026-02-26 11:57:12 -05:00
b85a83b446 #537 (Cost Center)#539 (Hub Manager) 2026-02-25 21:18:51 +05:30
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
cd51e8488c refactor: Extract hub details UI components into dedicated widgets and introduce new edit hub form elements. 2026-02-24 14:22:34 -05:00
Achintha Isuru
f30cd89217 refactor: move HubDetailsPage edit/delete actions to a bottom navigation bar and display hub name/address within the body, adding loading state management. 2026-02-24 14:06:58 -05:00
Achintha Isuru
e084dad4a7 feat: Refactor client hubs to centralize hub actions and update UI styling. 2026-02-24 13:59:55 -05:00
Achintha Isuru
e78d5938dd client hub bloc updated 2026-02-24 13:53:36 -05:00
Achintha Isuru
7591e71c3d feat: refactor hub management to use dedicated pages for adding, editing, and viewing hub details. 2026-02-24 13:46:39 -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
9e9eb0f374 finalcommitform4 2026-02-19 16:09:54 +05:30
c4610003b4 feat: complete client reports and hub management UI, comment out export buttons 2026-02-19 13:00:48 +05:30
Achintha Isuru
ddf270074b feat: Refactor session management and improve user session data retrieval 2026-02-17 16:05:45 -05:00
Achintha Isuru
21f0e2ee89 feat: Refactor HubRepositoryImpl to remove FirebaseAuth dependency and utilize DataConnectService 2026-02-16 17:43:50 -05:00
Achintha Isuru
6ed12a0519 feat(api-keys): Replace Google Places API key with Google Maps API key across the application 2026-02-16 13:46:01 -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
c1112ac01c feat: Centralized Error Handling & Crash Fixes 2026-02-11 18:52:23 +05:30
5e7bf0d5c0 refactor: centralize data connect error handling and resolve build issues across applications
This commit addresses several critical issues across the mobile monorepo:

1. Centralized Error Handling: Integrated DataErrorHandler mixin into all repository implementations, ensuring consistent mapping of Data Connect exceptions to domain AppExceptions.
2. Build Stabilization: Fixed numerous type mismatches, parameter signature errors in widgets (e.g., google_places_flutter itemBuilder), and naming conflicts (StaffSession, FirebaseAuth).
3. Code Quality: Applied 'dart fix' across all modified packages and manually cleared debug print statements and UI clutter.
4. Mono-repo alignment: Standardized Data Connect usage and aliasing ('dc.') for better maintainability.

Signed-off-by: Suriya <suriya@tenext.in>
2026-02-06 13:28:57 +05:30
3924801f70 feat(mobile): implement centralized error handling and project cleanup
- Implemented centralized error handling system (#377)
- Unified UIErrorSnackbar and BlocErrorHandler mixin
- Migrated ClientAuthBloc and ClientHubsBloc
- Consolidated documentation
- Addresses Mobile Apps: Project Cleanup (#378)
2026-02-05 15:35:35 +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
e3268d4722 refactor: Replace HubsConstants.googlePlacesApiKey with AppConfig.googlePlacesApiKey for better configuration management 2026-02-04 08:47:43 -05:00
1ba83e3ea6 feat: Implement Google Places Autocomplete for Staff Location
- Implemented strictly filtered Google Places Autocomplete (cities only) for Staff Profile Setup.
- Centralized Google Places API Key configuration in Core AppConfig.
- Updated Client Hubs to use the centralized AppConfig.
- Verified ViewOrdersCubit logic for weekly order summaries.
2026-02-04 12:30:54 +05:30
Achintha Isuru
2083b5dbff refactor: replace Navigator with Modular for dialog dismissal in client hubs and settings actions 2026-02-03 22:59:00 -05:00
José Salazar
90bacf6695 adding dialog box before delete a hub 2026-02-04 11:16:54 +09: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
José Salazar
4a52e1b0e3 solving problem of repetations of messajes succes, and exception 2026-01-29 18:18:28 -05:00
José Salazar
da8b7d2627 validation if a hug has orders 2026-01-29 18:12:16 -05:00
José Salazar
0afb89e86a hubs ready 2026-01-29 15:03:26 -05:00
Achintha Isuru
c212e8be00 feat: integrate Google Maps Places Autocomplete for hub address validation 2026-01-29 03:01:14 -05:00
Achintha Isuru
2e54014501 refactor: reorder field declarations for improved readability and add explicit type parameters 2026-01-24 10:11:00 -05:00
Achintha Isuru
e95b9a0b36 refactor: update import paths for consistency and clarity across multiple files 2026-01-24 10:07:22 -05:00
Achintha Isuru
f57f41c508 Add explicit types and improve type safety across codebase
This commit adds explicit type annotations to variables, function parameters, and return types throughout the codebase, particularly in widget trees, Bloc logic, and repository implementations. The changes improve code readability, maintainability, and type safety, and align with Dart best practices. No business logic was changed.
2026-01-24 10:00:36 -05:00
Achintha Isuru
1320fcfc6a feat(hub_card): remove NFC button from HubCard widget 2026-01-23 17:31:10 -05:00