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.
This commit is contained in:
Achintha Isuru
2026-03-19 01:10:27 -04:00
parent a45a3f6af1
commit 843eec5692
123 changed files with 2102 additions and 1087 deletions

View File

@@ -2,8 +2,8 @@ import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:krow_core/core.dart';
import 'package:krow_domain/krow_domain.dart';
import 'package:staff_home/src/domain/repositories/home_repository.dart';
import 'package:staff_home/src/domain/usecases/get_benefits_history_usecase.dart';
import 'package:staff_home/src/domain/usecases/get_home_shifts.dart';
part 'benefits_overview_state.dart';
@@ -14,14 +14,14 @@ class BenefitsOverviewCubit extends Cubit<BenefitsOverviewState>
with BlocErrorHandler<BenefitsOverviewState> {
/// Creates a [BenefitsOverviewCubit].
BenefitsOverviewCubit({
required HomeRepository repository,
required GetDashboardUseCase getDashboard,
required GetBenefitsHistoryUseCase getBenefitsHistory,
}) : _repository = repository,
}) : _getDashboard = getDashboard,
_getBenefitsHistory = getBenefitsHistory,
super(const BenefitsOverviewState.initial());
/// The repository used for dashboard data access.
final HomeRepository _repository;
/// Use case for fetching dashboard data.
final GetDashboardUseCase _getDashboard;
/// Use case for fetching benefit history.
final GetBenefitsHistoryUseCase _getBenefitsHistory;
@@ -33,7 +33,7 @@ class BenefitsOverviewCubit extends Cubit<BenefitsOverviewState>
await handleError(
emit: emit,
action: () async {
final StaffDashboard dashboard = await _repository.getDashboard();
final StaffDashboard dashboard = await _getDashboard();
if (isClosed) return;
emit(
state.copyWith(

View File

@@ -50,7 +50,7 @@ class StaffHomeModule extends Module {
// Cubit for benefits overview page (includes history support)
i.addLazySingleton<BenefitsOverviewCubit>(
() => BenefitsOverviewCubit(
repository: i.get<HomeRepository>(),
getDashboard: i.get<GetDashboardUseCase>(),
getBenefitsHistory: i.get<GetBenefitsHistoryUseCase>(),
),
);