import 'package:flutter/material.dart';
import 'dart:async';

// Event untuk memberitahu bahwa jadwal telah diperbarui
class ScheduleUpdatedEvent {
  final bool success;
  
  ScheduleUpdatedEvent({this.success = true});
}

// Event bus sederhana untuk komunikasi antar widget
class AppEventBus {
  static final AppEventBus _instance = AppEventBus._internal();
  
  factory AppEventBus() {
    return _instance;
  }
  
  AppEventBus._internal();
  
  // Stream controller untuk event ScheduleUpdated
  final _scheduleUpdatedController = StreamController<ScheduleUpdatedEvent>.broadcast();
  
  // Stream untuk mendengarkan event ScheduleUpdated
  Stream<ScheduleUpdatedEvent> get onScheduleUpdated => _scheduleUpdatedController.stream;
  
  // Method untuk memicu event ScheduleUpdated
  void fireScheduleUpdated({bool success = true}) {
    _scheduleUpdatedController.add(ScheduleUpdatedEvent(success: success));
  }
  
  // Method untuk dispose stream controller
  void dispose() {
    _scheduleUpdatedController.close();
  }
} 