feat: Implement staff availability feature with BLoC architecture
- Created AvailabilityPage with UI for managing staff availability. - Integrated BLoC for state management, including LoadAvailability and ToggleDayStatus events. - Added quick set options for availability (All Week, Weekdays, Weekends, Clear All). - Implemented week navigation and day selection with visual feedback. - Developed time slot management for each day, allowing toggling of availability. - Established StaffAvailabilityModule for dependency injection and routing. - Updated pubspec.yaml with necessary dependencies for the feature.
This commit is contained in:
@@ -36,4 +36,23 @@ class StaffRepositoryMock {
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
return staff;
|
||||
}
|
||||
|
||||
// Mock Availability Data Store
|
||||
final Map<String, dynamic> _mockAvailability = {};
|
||||
|
||||
Future<Map<String, dynamic>> getAvailability(String userId, DateTime start, DateTime end) async {
|
||||
await Future.delayed(const Duration(milliseconds: 300));
|
||||
// Return mock structure: Date ISO String -> { isAvailable: bool, slots: { id: bool } }
|
||||
|
||||
// Auto-generate some data if empty
|
||||
if (_mockAvailability.isEmpty) {
|
||||
// Just return empty, let the caller handle defaults
|
||||
}
|
||||
return _mockAvailability;
|
||||
}
|
||||
|
||||
Future<void> updateAvailability(String userId, String dateIso, Map<String, dynamic> data) async {
|
||||
await Future.delayed(const Duration(milliseconds: 200));
|
||||
_mockAvailability[dateIso] = data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user