40 lines
1.0 KiB
Dart
40 lines
1.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'package:item_tracker/models/item_category_model.dart';
|
|
import 'package:item_tracker/repository/item_category_repository.dart';
|
|
|
|
class ItemCategoryProvider extends ChangeNotifier {
|
|
List<ItemCategory> _categories = [];
|
|
|
|
List<ItemCategory> get categories => _categories;
|
|
|
|
final ItemCategoryRepository repository;
|
|
|
|
ItemCategoryProvider({required this.repository});
|
|
|
|
Future<void> loadCategories() async {
|
|
_categories = await repository.getAll();
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> addCategory(ItemCategory) async {
|
|
await repository.insert(ItemCategory);
|
|
await loadCategories();
|
|
}
|
|
|
|
Future<void> updateCategory(ItemCategory) async {
|
|
await repository.update(ItemCategory);
|
|
await loadCategories();
|
|
}
|
|
|
|
Future<void> deleteCategory(ItemCategory) async {
|
|
await repository.delete(ItemCategory.id!);
|
|
await loadCategories();
|
|
}
|
|
|
|
Future<ItemCategory?> getCategoryById(int id) async {
|
|
final data = await repository.getById(id);
|
|
return data;
|
|
}
|
|
}
|