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,37 @@
import 'package:hive_ce/hive.dart';
import '../models/category_model.dart';
/// Category local data source using Hive
abstract class CategoryLocalDataSource {
Future<List<CategoryModel>> getAllCategories();
Future<CategoryModel?> getCategoryById(String id);
Future<void> cacheCategories(List<CategoryModel> categories);
Future<void> clearCategories();
}
class CategoryLocalDataSourceImpl implements CategoryLocalDataSource {
final Box<CategoryModel> box;
CategoryLocalDataSourceImpl(this.box);
@override
Future<List<CategoryModel>> getAllCategories() async {
return box.values.toList();
}
@override
Future<CategoryModel?> getCategoryById(String id) async {
return box.get(id);
}
@override
Future<void> cacheCategories(List<CategoryModel> categories) async {
final categoryMap = {for (var c in categories) c.id: c};
await box.putAll(categoryMap);
}
@override
Future<void> clearCategories() async {
await box.clear();
}
}