create static method

Creates a comprehensive notification manager with proper initialization.

Parameters:

  • firebaseRepository: Firebase repository for remote notifications (optional)
  • localRepository: Local repository for device notifications (optional)
  • templateBuilder: Template builder for creating notifications (optional)
  • scheduler: Scheduler for notification timing (optional)
  • permissionManager: Permission manager (optional)

Implementation

static Future<ComprehensiveNotificationManager> create({
  FirebaseNotificationRepository? firebaseRepository,
  LocalNotificationRepository? localRepository,
  NotificationTemplateBuilder? templateBuilder,
  NotificationScheduler? scheduler,
  NotificationPermissionManager? permissionManager,
}) async {
  final FirebaseNotificationRepository finalFirebaseRepository =
      firebaseRepository ??
      await FirebaseNotificationRepository.getInstance();

  final LocalNotificationRepository finalLocalRepository =
      localRepository ?? await LocalNotificationRepository.getInstance();

  final NotificationPermissionManager finalPermissionManager =
      permissionManager ??
      NotificationPermissionManager(repository: finalLocalRepository);

  return ComprehensiveNotificationManager._(
    firebaseRepository: finalFirebaseRepository,
    localRepository: finalLocalRepository,
    templateBuilder: templateBuilder ?? const NotificationTemplateBuilder(),
    scheduler: scheduler ?? const NotificationScheduler(),
    permissionManager: finalPermissionManager,
  );
}