Files
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

1.0 KiB

name, description, type
name description type
Firebase Auth Isolation Pattern FirebaseAuthService in core/lib/src/services/auth/ abstracts all Firebase Auth SDK operations so feature packages never import firebase_auth directly project

FirebaseAuthService (interface) and FirebaseAuthServiceImpl live in core/lib/src/services/auth/firebase_auth_service.dart.

Registered in CoreModule as i.addLazySingleton<FirebaseAuthService>(FirebaseAuthServiceImpl.new).

Exported from core.dart.

Why: Architecture rule requires firebase_auth only in core. Features inject FirebaseAuthService via DI.

How to apply: Any new feature needing Firebase Auth operations (sign-in, sign-out, phone verification, get current user info) should depend on FirebaseAuthService from krow_core, not import firebase_auth directly. The service provides: authStateChanges, currentUserPhoneNumber, currentUserUid, verifyPhoneNumber, signInWithPhoneCredential (returns PhoneSignInResult), signInWithEmailAndPassword, signOut, getIdToken.