part of 'noti_bloc.dart';

abstract class NotiEvent {
  const NotiEvent();

  @override
  List<Object> get props => [];
}

class DataFetched extends NotiEvent {}

class OnRefresh extends NotiEvent {}

class OnRefreshFromNotification extends NotiEvent {}

class OnUpdate<T> extends NotiEvent {
  final int unread;
  final int read;
  final int? currentItemId;
  final List<T> currentItems;
  final int currentPage;
  final bool hasReachedMax;
  OnUpdate(
      {required this.unread,
      required this.read,
      this.currentItemId,
      required this.currentItems,
      required this.currentPage,
      required this.hasReachedMax});
}

class MarkAllNotificationUpdate extends NotiEvent {
  final String status;
  MarkAllNotificationUpdate({required this.status});
}

class ReceiveDataFromSocket extends NotiEvent {
  final List<NotificationDTO> currentItems;
  final int page;
  final bool hasReachedMax;
  final NotificationObjectDTO updatedItemObject;
  ReceiveDataFromSocket({
    required this.currentItems,
    required this.page,
    required this.hasReachedMax,
    required this.updatedItemObject,
  });
}
