From e70129c6bac596cf65b9936fa2d988c29d0b7354 Mon Sep 17 00:00:00 2001 From: rem Date: Wed, 29 Nov 2023 14:46:08 +0100 Subject: [PATCH] just to merge master into me --- .gitignore | 4 ++++ lib/main.dart | 8 +++++++- lib/modele/local_db/model.dart | 23 +++++++++++++++++++++++ lib/modele/local_db/objectbox.dart | 25 +++++++++++++++++++++++++ pubspec.yaml | 4 ++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 lib/modele/local_db/model.dart create mode 100644 lib/modele/local_db/objectbox.dart diff --git a/.gitignore b/.gitignore index db7fc69..08b1475 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,10 @@ # Firebase .firebase/ +# ObjectBox +objectbox-model.json +objectbox.g.dart + # IntelliJ related *.iml *.ipr diff --git a/lib/main.dart b/lib/main.dart index 9452bdc..7a6a677 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,12 +1,18 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:smartfit_app_mobile/modele/local_db/objectbox.dart'; import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/view/login/signup_view.dart'; -void main() { +late ObjectBox localDB; + +Future main() async { runApp(ChangeNotifierProvider( create: (context) => User(), child: const MyApp())); + + localDB = await ObjectBox.create(); + localDB.init(); } class MyApp extends StatelessWidget { diff --git a/lib/modele/local_db/model.dart b/lib/modele/local_db/model.dart new file mode 100644 index 0000000..d5b4d8e --- /dev/null +++ b/lib/modele/local_db/model.dart @@ -0,0 +1,23 @@ +import 'package:objectbox/objectbox.dart'; + +@Entity() +class User { + int id = 0; + String username; + String email; + String token; + + User(this.id, this.username, this.email, this.token); +} + +@Entity() +class Activity { + int id; + @Index() + String uuid; + String filename; + String category; + DateTime date; + + Activity(this.id, this.uuid, this.filename, this.category, this.date); +} diff --git a/lib/modele/local_db/objectbox.dart b/lib/modele/local_db/objectbox.dart new file mode 100644 index 0000000..950a4e0 --- /dev/null +++ b/lib/modele/local_db/objectbox.dart @@ -0,0 +1,25 @@ +import 'package:smartfit_app_mobile/objectbox.g.dart'; +import 'package:path/path.dart' as p; +import 'package:path_provider/path_provider.dart'; +import 'package:smartfit_app_mobile/modele/local_db/model.dart'; + +class ObjectBox { + late final Store store; + late final Box userBox; + late final Box activityBox; + + ObjectBox._create(this.store); + + static Future create() async { + final docsDir = await getApplicationDocumentsDirectory(); + // Future openStore() {...} is defined in the generated objectbox.g.dart + final store = + await openStore(directory: p.join(docsDir.path, "obx-example")); + return ObjectBox._create(store); + } + + init() { + userBox = store.box(); + activityBox = store.box(); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 58e0dcd..c1a5239 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -58,6 +58,8 @@ dependencies: responsive_builder: ^0.7.0 universal_html: ^2.2.4 objectbox: ^2.3.1 + objectbox_flutter_libs: any + path: ^1.8.3 dev_dependencies: flutter_test: @@ -69,6 +71,8 @@ dev_dependencies: # package. See that file for information about deactivating specific lint # rules and activating additional ones. flutter_lints: ^2.0.0 + build_runner: ^2.4.7 + objectbox_generator: any # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec