Replace string-based role handling with a typed UserRole enum. Adds src/entities/enums/user_role.dart and exports it from krow_domain. Update SessionHandlerMixin to use List<UserRole> and change fetchUserRole to return UserRole?. V2SessionService now derives the role via UserRole.fromSessionData, and client/staff SessionListener widgets pass const <UserRole>[...] when initializing the auth listener. This centralizes role derivation and eliminates scattered role string literals.
128 lines
5.0 KiB
Dart
128 lines
5.0 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/shift_status.dart';
|
|
export 'src/entities/enums/staff_status.dart';
|
|
export 'src/entities/enums/user_role.dart';
|
|
|
|
// Core
|
|
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/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';
|
|
|
|
// 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';
|