import 'package:hub/shared/services/license/license_service.dart'; import 'package:hub/shared/services/sqlite/sqlite_service.dart'; import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import 'dart:developer'; class DatabaseStorage { static final String _dbName = 'database.db'; static final int _dbVersion = 2; static final DatabaseStorage instance = DatabaseStorage._internal(); factory DatabaseStorage() => instance; DatabaseStorage._internal(); static late final Database _database; static Database get database => _database; Future init() async { _database = await openDatabase( join(await getDatabasesPath(), _dbName), version: _dbVersion, onCreate: _onCreate, onUpgrade: _onUpgrade, onDowngrade: _onDowngrade, ); } Future _onCreate(Database database, int version) async { log('Creating database...'); await database.execute(SQLiteStorage.createTableQuery); await database.execute(LicenseService.createTableQuery); await LicenseService.setupLicense(); } Future _onUpgrade(Database database, int oldVersion, int newVersion) async { log('Upgrading database from version $oldVersion to $newVersion...'); if (oldVersion < 2) { await database.execute(LicenseService.createTableQuery); await LicenseService.setupLicense(); } } Future _onDowngrade(Database database, int oldVersion, int newVersion) async {} }