
import 'package:flutter/material.dart';
import '../models/category_products.dart';

import '../models/business.dart';
import '../models/comment.dart';
import '../models/position.dart';
import '../models/product.dart';

class OpenDrawer {

}

class OnGetCurrentUserFailed {
  dynamic error;
  OnGetCurrentUserFailed(this.error);
}

class OnCurrentUserUpdated {
  OnCurrentUserUpdated();
}

class OnProgressEvent {
  bool showProgress;
  double progress;
  OnProgressEvent(this.showProgress, this.progress);
}

class OnUploadCommentImageProgressEvent {
  bool showProgress;
  double progress;
  OnUploadCommentImageProgressEvent(this.showProgress, this.progress);
}

class OnCommentUpdatedEvent {
  Comment comment;
  OnCommentUpdatedEvent(this.comment);
}

class OnAddressesUpdated {
  OnAddressesUpdated();
}

class OnTicketsUpdated {
  OnTicketsUpdated();
}

class OnUpdateLocatedAddressSuccess {
  OnUpdateLocatedAddressSuccess();
}

class OnGotDeepLinkUri {
  Uri uri;
  OnGotDeepLinkUri(this.uri);
}

class OnUploadImageProgressEvent {
  int id;
  bool showProgress;
  double progress;
  OnUploadImageProgressEvent(this.id, this.showProgress, this.progress);
}

class OnSubmitProgressEvent {
  bool showProgress;
  double progress;
  OnSubmitProgressEvent(this.showProgress, this.progress);
}

class OnCartInfoUpdated {
  OnCartInfoUpdated();
}

class OnAttributePageChanged {
  int index;
  OnAttributePageChanged(this.index);
}

class OnAttributeSelectionsChanged {
  Map<String, dynamic> selections;
  OnAttributeSelectionsChanged(this.selections);
}

class OnProductWillAddToCart {
  Product product;
  Map<String, dynamic> selections;
  double price;
  String description;
  Business business;
  GlobalKey? buttonKey;
  OnProductWillAddToCart(this.product, this.selections, this.price, this.description, this.business, {this.buttonKey});
}

class OnProductWillRemoveFromCart {
  Product product;
  int productListIndex;
  Business business;
  OnProductWillRemoveFromCart(this.product, this.productListIndex, this.business);
}

class OnOrderUpdated {
  OnOrderUpdated();
}

class SubscribeToTopic {
  String topic;
  SubscribeToTopic(this.topic);
}

class UnSubscribeToTopic {
  String topic;
  UnSubscribeToTopic(this.topic);
}

class GetCurrentPositionSuccess {
  Position position;
  bool getAddressFromServer = true;
  GetCurrentPositionSuccess(this.position, this.getAddressFromServer);
}

class GetCurrentPositionFailed {
  Exception exception;
  GetCurrentPositionFailed(this.exception);
}

class ShopPageScrollUpdated {
  double offset;
  ShopPageScrollUpdated(this.offset);
}

class GetCategoryProducts {
  dynamic data;
  GetCategoryProducts(this.data);
}

class MoreCategoryProducts {
  List<CategoryProducts> data;
  MoreCategoryProducts(this.data);
}

class CategoryChangeEvent {
  int categoryId;
  CategoryChangeEvent(this.categoryId);
}