feat: добавить поддержку Tag и TransactionRecord в Hive

This commit is contained in:
2025-06-09 16:10:45 +03:00
parent 673ce8bfd3
commit 06557638e8
3 changed files with 28 additions and 8 deletions
+16 -6
View File
@@ -11,13 +11,23 @@ class HiveService {
static Future<void> init() async {
await Hive.initFlutter();
Hive.registerAdapter(CategoryAdapter());
Hive.registerAdapter(TagAdapter());
Hive.registerAdapter(TransactionRecordAdapter());
// Регистрация адаптеров
if (!Hive.isAdapterRegistered(CategoryAdapter().typeId)) {
Hive.registerAdapter(CategoryAdapter());
}
if (!Hive.isAdapterRegistered(TagAdapter().typeId)) {
Hive.registerAdapter(TagAdapter());
}
if (!Hive.isAdapterRegistered(TransactionRecordAdapter().typeId)) {
Hive.registerAdapter(TransactionRecordAdapter());
}
await Hive.openBox<Category>(_categoryBox);
await Hive.openBox<Tag>(_tagBox);
await Hive.openBox<TransactionRecord>(_transactionBox);
// Открытие всех Box'ов
await Future.wait([
Hive.openBox<Category>(_categoryBox),
Hive.openBox<Tag>(_tagBox),
Hive.openBox<TransactionRecord>(_transactionBox),
]);
}
static Box<Category> get categories => Hive.box<Category>(_categoryBox);
+6 -2
View File
@@ -1,6 +1,10 @@
/// Модель тега для дополнительной маркировки транзакций
/// Позволяет добавлять дополнительные метки к операциям
import 'package:hive/hive.dart';
part 'tag.g.dart';
@HiveType(typeId: 1)
class Tag {
@HiveField(0)
/// Уникальный идентификатор тега
final String id;
+6
View File
@@ -1,4 +1,9 @@
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
part 'transaction_record.g.dart';
@HiveType(typeId: 2)
import 'category.dart';
import 'tag.dart';
@@ -7,6 +12,7 @@ import 'tag.dart';
class TransactionRecord {
/// Уникальный идентификатор транзакции
@HiveField(0)
final String id;
/// Ссылка на категорию транзакции