- 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.
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.