sync bloc
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:injectable/injectable.dart';
|
||||
import '../../../domain/product/product.dart';
|
||||
import '../datasources/local_data_provider.dart';
|
||||
import '../datasources/remote_data_provider.dart';
|
||||
import '../product_dtos.dart';
|
||||
|
||||
@Injectable(as: IProductRepository)
|
||||
class ProductRepository implements IProductRepository {
|
||||
@@ -328,4 +329,22 @@ class ProductRepository implements IProductRepository {
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<ProductFailure, Unit>> saveProductsBatch(
|
||||
List<Product> products,
|
||||
) async {
|
||||
try {
|
||||
final productDtos = products.map(ProductDto.fromDomain).toList();
|
||||
|
||||
// Simpan batch ke local DB
|
||||
await _localDataProvider.saveProductsBatch(productDtos);
|
||||
|
||||
log('💾 Saved ${products.length} products to local DB', name: _logName);
|
||||
return right(unit);
|
||||
} catch (e, stack) {
|
||||
log('❌ Failed to save products batch: $e\n$stack', name: _logName);
|
||||
return left(ProductFailure.dynamicErrorMessage(e.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user