sync bloc

This commit is contained in:
efrilm
2025-10-24 22:25:01 +07:00
parent 4fdd1e44f8
commit 6892895021
10 changed files with 965 additions and 0 deletions
@@ -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()));
}
}
}