runable
This commit is contained in:
15
lib/features/home/domain/usecases/add_to_cart.dart
Normal file
15
lib/features/home/domain/usecases/add_to_cart.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../../../core/errors/failures.dart';
|
||||
import '../entities/cart_item.dart';
|
||||
import '../repositories/cart_repository.dart';
|
||||
|
||||
/// Use case to add item to cart
|
||||
class AddToCart {
|
||||
final CartRepository repository;
|
||||
|
||||
AddToCart(this.repository);
|
||||
|
||||
Future<Either<Failure, void>> call(CartItem item) async {
|
||||
return await repository.addToCart(item);
|
||||
}
|
||||
}
|
||||
8
lib/features/home/domain/usecases/calculate_total.dart
Normal file
8
lib/features/home/domain/usecases/calculate_total.dart
Normal file
@@ -0,0 +1,8 @@
|
||||
import '../entities/cart_item.dart';
|
||||
|
||||
/// Use case to calculate cart total
|
||||
class CalculateTotal {
|
||||
double call(List<CartItem> items) {
|
||||
return items.fold(0.0, (sum, item) => sum + item.total);
|
||||
}
|
||||
}
|
||||
14
lib/features/home/domain/usecases/clear_cart.dart
Normal file
14
lib/features/home/domain/usecases/clear_cart.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../../../core/errors/failures.dart';
|
||||
import '../repositories/cart_repository.dart';
|
||||
|
||||
/// Use case to clear cart
|
||||
class ClearCart {
|
||||
final CartRepository repository;
|
||||
|
||||
ClearCart(this.repository);
|
||||
|
||||
Future<Either<Failure, void>> call() async {
|
||||
return await repository.clearCart();
|
||||
}
|
||||
}
|
||||
14
lib/features/home/domain/usecases/remove_from_cart.dart
Normal file
14
lib/features/home/domain/usecases/remove_from_cart.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../../../core/errors/failures.dart';
|
||||
import '../repositories/cart_repository.dart';
|
||||
|
||||
/// Use case to remove item from cart
|
||||
class RemoveFromCart {
|
||||
final CartRepository repository;
|
||||
|
||||
RemoveFromCart(this.repository);
|
||||
|
||||
Future<Either<Failure, void>> call(String productId) async {
|
||||
return await repository.removeFromCart(productId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user