This commit is contained in:
Phuoc Nguyen
2025-10-10 16:38:07 +07:00
parent e5b247d622
commit b94c158004
177 changed files with 25080 additions and 152 deletions

View 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);
}
}

View 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);
}
}

View 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();
}
}

View 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);
}
}