Files
Krow-workspace/apps/mobile/packages/domain/lib/krow_domain.dart
Achintha Isuru 493891eea0 Add staff reliability stats & shift location
Introduce staff reliability statistics and location fields across domain, data, and UI. Changes include:

- New API endpoint StaffEndpoints.profileStats ('/staff/profile/stats').
- New domain entity StaffReliabilityStats with JSON (de)serialization and export.
- Profile repository: getReliabilityStats implementation and interface addition.
- New GetReliabilityStatsUseCase and DI registration in StaffProfileModule.
- ProfileCubit/state: load and store reliabilityStats; UI wired to display ReliabilityStatsCard and ReliabilityScoreBar using state values.
- Coverage/shift updates: Added AssignedWorker.hasReview to track if a worker was reviewed; added locationName/locationAddress to ShiftWithWorkers and show location in ShiftHeader; hide rate button if worker.hasReview.
- Clock-in handling: treat backend ALREADY_CLOCKED_IN (409) as idempotent by re-fetching attendance and emitting success when appropriate.

These changes wire backend stats through repository/usecase/cubit to the profile UI and add shift location and review-awareness to client views.
2026-03-19 10:53:37 -04:00

134 lines
5.3 KiB
Dart

/// The Shared Domain Layer.
///
/// This package contains the core business entities and rules.
/// It is pure Dart and has no dependencies on Flutter or Firebase.
///
/// Note: Repository Interfaces are now located in their respective Feature packages.
library;
// Enums (shared status/type enums aligned with V2 CHECK constraints)
export 'src/entities/enums/account_type.dart';
export 'src/entities/enums/application_status.dart';
export 'src/entities/enums/assignment_status.dart';
export 'src/entities/enums/attendance_status_type.dart';
export 'src/entities/enums/availability_status.dart';
export 'src/entities/enums/benefit_status.dart';
export 'src/entities/enums/business_status.dart';
export 'src/entities/enums/invoice_status.dart';
export 'src/entities/enums/onboarding_status.dart';
export 'src/entities/enums/order_type.dart';
export 'src/entities/enums/payment_status.dart';
export 'src/entities/enums/review_issue_flag.dart';
export 'src/entities/enums/shift_status.dart';
export 'src/entities/enums/staff_industry.dart';
export 'src/entities/enums/staff_skill.dart';
export 'src/entities/enums/staff_status.dart';
export 'src/entities/enums/user_role.dart';
// Core
export 'src/core/services/api_services/api_endpoint.dart';
export 'src/core/services/api_services/api_response.dart';
export 'src/core/services/api_services/base_api_service.dart';
export 'src/core/services/api_services/base_core_service.dart';
export 'src/core/services/api_services/file_visibility.dart';
// Device
export 'src/core/services/device/base_device_service.dart';
export 'src/core/services/device/location_permission_status.dart';
// Models
export 'src/core/models/device_location.dart';
// Users & Membership
export 'src/entities/users/user.dart';
export 'src/entities/users/staff.dart';
export 'src/entities/users/biz_member.dart';
export 'src/entities/users/staff_session.dart';
export 'src/entities/users/client_session.dart';
// Business & Organization
export 'src/entities/business/business.dart';
export 'src/entities/business/hub.dart';
export 'src/entities/business/vendor.dart';
export 'src/entities/business/cost_center.dart';
export 'src/entities/business/vendor_role.dart';
export 'src/entities/business/hub_manager.dart';
export 'src/entities/business/team_member.dart';
// Shifts
export 'src/entities/shifts/shift.dart';
export 'src/entities/shifts/today_shift.dart';
export 'src/entities/shifts/assigned_shift.dart';
export 'src/entities/shifts/open_shift.dart';
export 'src/entities/shifts/pending_assignment.dart';
export 'src/entities/shifts/cancelled_shift.dart';
export 'src/entities/shifts/completed_shift.dart';
export 'src/entities/shifts/shift_detail.dart';
// Orders
export 'src/entities/orders/order_item.dart';
export 'src/entities/orders/assigned_worker_summary.dart';
export 'src/entities/orders/order_preview.dart';
export 'src/entities/orders/recent_order.dart';
// Financial & Payroll
export 'src/entities/benefits/benefit.dart';
export 'src/entities/benefits/benefit_history.dart';
export 'src/entities/financial/invoice.dart';
export 'src/entities/financial/billing_account.dart';
export 'src/entities/financial/current_bill.dart';
export 'src/entities/financial/savings.dart';
export 'src/entities/financial/spend_item.dart';
export 'src/entities/financial/bank_account.dart';
export 'src/entities/financial/payment_summary.dart';
export 'src/entities/financial/staff_payment.dart';
export 'src/entities/financial/payment_chart_point.dart';
export 'src/entities/financial/time_card.dart';
// Profile
export 'src/entities/profile/staff_personal_info.dart';
export 'src/entities/profile/profile_section_status.dart';
export 'src/entities/profile/profile_completion.dart';
export 'src/entities/profile/profile_document.dart';
export 'src/entities/profile/certificate.dart';
export 'src/entities/profile/emergency_contact.dart';
export 'src/entities/profile/tax_form.dart';
export 'src/entities/profile/privacy_settings.dart';
export 'src/entities/profile/attire_checklist.dart';
export 'src/entities/profile/accessibility.dart';
// Ratings
export 'src/entities/ratings/staff_rating.dart';
export 'src/entities/ratings/staff_reliability_stats.dart';
// Home
export 'src/entities/home/client_dashboard.dart';
export 'src/entities/home/spending_summary.dart';
export 'src/entities/home/coverage_metrics.dart';
export 'src/entities/home/live_activity_metrics.dart';
export 'src/entities/home/staff_dashboard.dart';
// Clock-In & Availability
export 'src/entities/clock_in/attendance_status.dart';
export 'src/entities/availability/availability_day.dart';
export 'src/entities/availability/time_slot.dart';
// Coverage
export 'src/entities/coverage_domain/shift_with_workers.dart';
export 'src/entities/coverage_domain/assigned_worker.dart';
export 'src/entities/coverage_domain/time_range.dart';
export 'src/entities/coverage_domain/coverage_stats.dart';
export 'src/entities/coverage_domain/core_team_member.dart';
// Reports
export 'src/entities/reports/report_summary.dart';
export 'src/entities/reports/daily_ops_report.dart';
export 'src/entities/reports/spend_data_point.dart';
export 'src/entities/reports/coverage_report.dart';
export 'src/entities/reports/forecast_report.dart';
export 'src/entities/reports/performance_report.dart';
export 'src/entities/reports/no_show_report.dart';
// Exceptions
export 'src/exceptions/app_exception.dart';