diff --git a/lib/features/profile/data/data_sources/profile_local_data_source.dart b/lib/features/profile/data/data_sources/profile_local_data_source.dart index 99393e17..71788f92 100644 --- a/lib/features/profile/data/data_sources/profile_local_data_source.dart +++ b/lib/features/profile/data/data_sources/profile_local_data_source.dart @@ -1,12 +1,10 @@ import 'dart:developer'; +import 'package:hub/features/storage/index.dart'; import 'package:hub/shared/constants/index.dart'; import 'package:sqflite/sqflite.dart'; -import '../../../storage/application/service/database_service.dart'; -import '../../../storage/domain/entities/base_storage.dart'; - abstract class ProfileLocalDataSource { Future init(); Future get(String key); diff --git a/lib/features/storage/application/index.dart b/lib/features/storage/application/index.dart index adb07df6..810de75e 100644 --- a/lib/features/storage/application/index.dart +++ b/lib/features/storage/application/index.dart @@ -1 +1 @@ -export 'service/index.dart'; +export 'services/index.dart'; diff --git a/lib/features/storage/application/service/database_service.dart b/lib/features/storage/application/services/database_service.dart similarity index 100% rename from lib/features/storage/application/service/database_service.dart rename to lib/features/storage/application/services/database_service.dart diff --git a/lib/features/storage/application/service/index.dart b/lib/features/storage/application/services/index.dart similarity index 100% rename from lib/features/storage/application/service/index.dart rename to lib/features/storage/application/services/index.dart diff --git a/lib/features/storage/data/data_sources/database_storage_helper.dart b/lib/features/storage/data/data_sources/database_data_source.dart similarity index 56% rename from lib/features/storage/data/data_sources/database_storage_helper.dart rename to lib/features/storage/data/data_sources/database_data_source.dart index 653506b9..43d7894a 100644 --- a/lib/features/storage/data/data_sources/database_storage_helper.dart +++ b/lib/features/storage/data/data_sources/database_data_source.dart @@ -1,6 +1,23 @@ import 'package:hub/features/storage/index.dart'; +import 'package:sqflite/sqflite.dart'; class DatabaseStorage implements BaseStorage { + DatabaseStorage._(); + + static final DatabaseStorage instance = DatabaseStorage._(); + + late final Database _database; + bool _isInitialized = false; + + + static DatabaseStorageKey getInstanceByKey(String key) { + if (ProfileStorageKey.values.map((e) => e.value).toList().contains(key)) { + return ProfileStorageKey.instance; + } else (SharedPreferencesKey.values.map((e) => e.value).toList().contains(key)) { + return LocalsStorageKey.instance; + + } + @override Future clearAll() { // TODO: implement clearAll diff --git a/lib/features/storage/data/data_sources/index.dart b/lib/features/storage/data/data_sources/index.dart index 39123043..b66c53d7 100644 --- a/lib/features/storage/data/data_sources/index.dart +++ b/lib/features/storage/data/data_sources/index.dart @@ -1,3 +1,3 @@ -export 'database_storage_helper.dart'; -export 'secure_storage_helper.dart'; -export 'shared_storage_helper.dart'; +export 'database_data_source.dart'; +export 'secure_data_source.dart'; +export 'shared_data_source.dart'; diff --git a/lib/features/storage/data/data_sources/secure_storage_helper.dart b/lib/features/storage/data/data_sources/secure_data_source.dart similarity index 100% rename from lib/features/storage/data/data_sources/secure_storage_helper.dart rename to lib/features/storage/data/data_sources/secure_data_source.dart diff --git a/lib/features/storage/data/data_sources/shared_storage_helper.dart b/lib/features/storage/data/data_sources/shared_data_source.dart similarity index 100% rename from lib/features/storage/data/data_sources/shared_storage_helper.dart rename to lib/features/storage/data/data_sources/shared_data_source.dart diff --git a/lib/features/storage/data/models/database_storage.dart b/lib/features/storage/data/models/database_storage.dart index 8c2ff39e..48167dff 100644 --- a/lib/features/storage/data/models/database_storage.dart +++ b/lib/features/storage/data/models/database_storage.dart @@ -3,6 +3,7 @@ import 'package:hub/features/storage/index.dart'; abstract class DatabaseStorageKey implements IDatabaseStorage { final String key; const DatabaseStorageKey(this.key); + List get values => []; } class ProfileStorageKey extends DatabaseStorageKey { @@ -18,6 +19,20 @@ class ProfileStorageKey extends DatabaseStorageKey { static const ProfileStorageKey ownerUUID = ProfileStorageKey._('fre_ownerUUID'); static const ProfileStorageKey clientName = ProfileStorageKey._('fre_cliName'); static const ProfileStorageKey ownerName = ProfileStorageKey._('fre_ownerName'); + + @override + List get values => [ + userEmail.key, + devUUID.key, + userUUID.key, + userDevUUID.key, + status.key, + userName.key, + clientUUID.key, + ownerUUID.key, + clientName.key, + ownerName.key, + ]; } class LocalsStorageKey extends DatabaseStorageKey { @@ -35,6 +50,22 @@ class LocalsStorageKey extends DatabaseStorageKey { static const LocalsStorageKey person = LocalsStorageKey._('fre_person'); static const LocalsStorageKey requestOSNotification = LocalsStorageKey._('fre_requestOSnotification'); static const LocalsStorageKey isNewVersion = LocalsStorageKey._('fre_isNewVersion'); + + @override + List get values => [ + petAmount.key, + whatsapp.key, + provisional.key, + pets.key, + local.key, + notify.key, + fingerprint.key, + access.key, + panic.key, + person.key, + requestOSNotification.key, + isNewVersion.key, + ]; } // enum DatabaseStorageKey implements IDatabaseStorage { diff --git a/lib/features/storage/data/repositories/storage_repository.dart b/lib/features/storage/data/repositories/storage_repository.dart index af5953af..d71ee26c 100644 --- a/lib/features/storage/data/repositories/storage_repository.dart +++ b/lib/features/storage/data/repositories/storage_repository.dart @@ -38,7 +38,7 @@ class StorageHelper { case Storage.sharedPreferences: return SharedPreferencesStorage.instance; default: - return ProfileLocalDataSourceImpl.instance; + return DatabaseStorage.instance; } } diff --git a/lib/features/storage/domain/respositories/storage_repository.dart b/lib/features/storage/domain/respositories/storage_repository.dart new file mode 100644 index 00000000..1e4eb962 --- /dev/null +++ b/lib/features/storage/domain/respositories/storage_repository.dart @@ -0,0 +1 @@ +abstract class StorageRepository {}