85 Commits

Author SHA1 Message Date
39263a4af5 chore: fix 273+ analysis issues and repair corrupted core files 2026-03-20 21:05:23 +05:30
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
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
d6ddb7829e fix: change saveContacts method to use POST instead of PUT for emergency contacts 2026-03-17 14:00:41 -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
e83b8fff1c refactor: update color definitions and improve UI component structure; handle null safety in repository data fetching 2026-03-17 13:20:04 -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
2071585158 feat: remove unused import and clean up emergency contact info banner widget 2026-03-10 23:54:38 -04:00
Achintha Isuru
e60413f45c feat: add shimmer loading skeletons for emergency contact section 2026-03-10 17:02:16 -04:00
Achintha Isuru
bd98a112a0 feat: add shimmer skeletons for various sections in the staff profile and onboarding features
- Implemented ProfilePageSkeleton for loading state in staff profile.
- Added ReliabilityScoreSkeleton and ReliabilityStatsSkeleton for reliability metrics.
- Created CertificatesSkeleton and related components for loading certificates.
- Developed DocumentsSkeleton and associated document card skeletons.
- Introduced TaxFormsSkeleton for loading tax forms.
- Added BankAccountSkeleton and its components for bank account loading state.
- Created TimeCardSkeleton for displaying time card loading state.
- Implemented AttireSkeleton for loading attire items.
- Added PersonalInfoSkeleton for loading personal information.
- Developed FaqsSkeleton for loading FAQ sections.
- Created PrivacySecuritySkeleton for loading privacy settings.
2026-03-10 15:20:24 -04:00
Achintha Isuru
c936d5f2ab feat: add attire section components for improved UI organization 2026-03-07 02:51:07 -05:00
Achintha Isuru
c9a46a1a71 feat: implement attire section toggles for required and non-essential items in AttirePage 2026-03-07 02:47:55 -05:00
Achintha Isuru
8497709356 fix: Correct formatting and improve comments in various files for clarity 2026-03-02 12:38:57 -05:00
Achintha Isuru
ca6c10552d feat: Implement attestation checkbox in attire capture page and refactor related components 2026-03-02 10:33:22 -05:00
Achintha Isuru
315e8f9598 feat: Implement rapid order creation with voice and text input in client mobile app 2026-03-01 12:33:42 -05:00
Achintha Isuru
b5001edf06 feat: Enhance locale management by retrieving saved language code and updating language selection UI 2026-03-01 12:11:41 -05:00
Achintha Isuru
1e1dc39e20 feat: Implement preferred locations feature with search and display components 2026-03-01 12:02:43 -05:00
Achintha Isuru
015f1fbc1b feat: Refactor onboarding experience and personal info pages
- Updated ExperiencePage to include subtitles in ExperienceSectionTitle.
- Modified ExperienceSectionTitle widget to accept an optional subtitle parameter.
- Refactored PersonalInfoPage to improve imports and structure.
- Removed unused PersonalInfoContent and PersonalInfoForm widgets.
- Introduced new widgets: EditableField, FieldLabel, ReadOnlyField, TappableRow, and LanguageSelector for better modularity.
- Added AccountCard and SecurityNotice widgets for bank account section.
- Enhanced SaveButton to utilize UiButton for consistency.
2026-03-01 03:06:28 -05:00
Achintha Isuru
ea6b3fcc76 feat: Refactor emergency contact screen and info banner for improved UI consistency 2026-03-01 02:16:26 -05:00
Achintha Isuru
ce095924bc feat: Implement notice and file types banners for attire upload and enhance incomplete profile messaging 2026-02-28 22:42:04 -05:00
Achintha Isuru
1ab5ba2e6f feat: Implement Android keystore setup for secure signing in release builds and update documentation for local and CI/CD environments 2026-02-28 22:32:54 -05:00
Achintha Isuru
53b612851c refactor: enhance navigation robustness by introducing popSafe and safePushNamedAndRemoveUntil methods and updating their usage. 2026-02-28 17:23:53 -05:00
34afe09963 feat: localization, file restriction banners, test credentials, edit icon fix
- #553: Audit and verify localizations (en/es), replace hardcoded strings
- #549: Incomplete profile banner in Find Shifts (staff app)
- #550: File restriction banner on document upload page
- #551: File restriction banner on certificate upload page
- #552: File restriction banner on attire upload page
- #492: Hide edit icon for past/completed orders (client app)
- #524: Display worker benefits in staff app
- Add test credentials to seed: testclient@gmail.com, staff +1-555-555-1234
- Fix document upload validation (context arg in _validatePdfFile on submit)
- Add PR_LOCALIZATION.md

Made-with: Cursor
2026-02-27 13:48:04 +05:30
Achintha Isuru
f32bd81a46 refactor: update AttireRepositoryImpl to use constructor injection, reorganize profile sections by moving documents and adding certificates, and introduce new UI icons. 2026-02-27 02:00:51 -05:00
Achintha Isuru
9f01c25dd3 refactor: update AttireCubit dependency injection to non-lazy and ensure uploadPhoto returns the updated attire item status. 2026-02-25 22:22:48 -05:00
Achintha Isuru
083744cd34 feat: Implement attire item filtering and refactor attire capture flow and repository logic 2026-02-25 22:18:25 -05:00
Achintha Isuru
c7c505f743 feat: Implement modular routing for the attire capture page with a new route path and navigator method. 2026-02-25 19:30:42 -05:00
Achintha Isuru
e0722c938d refactor: Decompose AttireCapturePage into dedicated widgets for info, image preview, and footer sections, and refine attestation and verification status logic. 2026-02-25 19:21:45 -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
6eafba311b refactor: Implement custom DioClient with AuthInterceptor and strongly typed API service responses. 2026-02-25 15:10:44 -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
74d8d4d4d9 feat: Implement local image preview and explicit submission for attire capture. 2026-02-25 13:06:11 -05:00
Achintha Isuru
ed2b4f0563 feat: Enable users to upload attire photos via camera or gallery. 2026-02-25 12:58:30 -05:00
Achintha Isuru
c3d2a8a910 style: Adjust vertical spacing in attire capture page. 2026-02-25 11:13:48 -05:00
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
cb180af7cf feat: Add example text to the attire capture page and remove explicit background color from the scaffold. 2026-02-24 16:23:25 -05:00
Achintha Isuru
9bc4778cc1 feat: Extract attire photo capture logic into AttireCaptureCubit and reorganize existing attire BLoC into a dedicated subdirectory. 2026-02-24 16:19:59 -05:00
Achintha Isuru
bb27e3f8fe refactor: extract attire UI components from pages into dedicated widgets for improved modularity. 2026-02-24 16:06:42 -05:00
Achintha Isuru
566b4e9839 feat: Add xSmall size and destructive variant to UiChip, refactor AttireItemCard to use these new chip features, and adjust body4r font size. 2026-02-24 15:58:49 -05:00
Achintha Isuru
54a8915fb6 feat: Implement dedicated attire capture page, refactor attire selection with item cards and filtering. 2026-02-24 15:51:28 -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
Achintha Isuru
7744dbf1b3 refactor: replace AttirePage's AppBar with UiAppBar and update attire page title localization. 2026-02-24 14:28:43 -05:00
Achintha Isuru
a9ead783e4 feat: Add post-save navigation to staff profile for emergency contact and experience, remove a placeholder page, and refine bloc usage and UI rendering. 2026-02-22 03:01:44 -05:00
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
b85ea5fb7f feat: Refactor LanguageSelectionPage to use StatelessWidget and improve localization handling 2026-02-19 15:49:56 -05:00