update cart/favorite
This commit is contained in:
@@ -36,6 +36,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
required List<String> itemIds,
|
||||
required List<double> quantities,
|
||||
required List<double> prices,
|
||||
List<double?>? conversionFactors,
|
||||
}) async {
|
||||
try {
|
||||
// Validate input
|
||||
@@ -48,11 +49,16 @@ class CartRepositoryImpl implements CartRepository {
|
||||
// Build API request items
|
||||
final items = <Map<String, dynamic>>[];
|
||||
for (int i = 0; i < itemIds.length; i++) {
|
||||
items.add({
|
||||
final item = <String, dynamic>{
|
||||
'item_id': itemIds[i],
|
||||
'quantity': quantities[i],
|
||||
'amount': prices[i],
|
||||
});
|
||||
};
|
||||
// Add conversion_of_sm if provided
|
||||
if (conversionFactors != null && i < conversionFactors.length) {
|
||||
item['conversion_of_sm'] = conversionFactors[i] ?? 0.0;
|
||||
}
|
||||
items.add(item);
|
||||
}
|
||||
|
||||
// Try API first
|
||||
@@ -66,6 +72,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
productId: itemIds[i],
|
||||
quantity: quantities[i],
|
||||
unitPrice: prices[i],
|
||||
conversionOfSm: conversionFactors?[i],
|
||||
);
|
||||
await _localDataSource.addCartItem(cartItemModel);
|
||||
}
|
||||
@@ -80,6 +87,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
productId: itemIds[i],
|
||||
quantity: quantities[i],
|
||||
unitPrice: prices[i],
|
||||
conversionOfSm: conversionFactors?[i],
|
||||
);
|
||||
await _localDataSource.addCartItem(cartItemModel);
|
||||
}
|
||||
@@ -176,6 +184,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
required String itemId,
|
||||
required double quantity,
|
||||
required double price,
|
||||
double? conversionFactor,
|
||||
}) async {
|
||||
try {
|
||||
// API doesn't have update endpoint, use add with new quantity
|
||||
@@ -184,6 +193,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
itemIds: [itemId],
|
||||
quantities: [quantity],
|
||||
prices: [price],
|
||||
conversionFactors: conversionFactor != null ? [conversionFactor] : null,
|
||||
);
|
||||
} catch (e) {
|
||||
throw UnknownException('Failed to update cart item quantity', e);
|
||||
@@ -268,6 +278,9 @@ class CartRepositoryImpl implements CartRepository {
|
||||
unitPrice: model.unitPrice,
|
||||
subtotal: model.subtotal,
|
||||
addedAt: model.addedAt,
|
||||
itemName: model.itemName,
|
||||
image: model.image,
|
||||
conversionOfSm: model.conversionOfSm,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -276,6 +289,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
required String productId,
|
||||
required double quantity,
|
||||
required double unitPrice,
|
||||
double? conversionOfSm,
|
||||
}) {
|
||||
return CartItemModel(
|
||||
cartItemId: DateTime.now().millisecondsSinceEpoch.toString(),
|
||||
@@ -285,6 +299,7 @@ class CartRepositoryImpl implements CartRepository {
|
||||
unitPrice: unitPrice,
|
||||
subtotal: quantity * unitPrice,
|
||||
addedAt: DateTime.now(),
|
||||
conversionOfSm: conversionOfSm,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user