import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; import 'package:drift/drift.dart'; import 'package:drift/native.dart'; import 'package:fl_clash/common/common.dart'; import 'package:fl_clash/enum/enum.dart'; import 'package:fl_clash/models/models.dart'; part 'generated/database.g.dart'; part 'links.dart'; part 'profiles.dart'; part 'rules.dart'; part 'scripts.dart'; @DriftDatabase( tables: [Profiles, Scripts, Rules, ProfileRuleLinks], daos: [ProfilesDao, ScriptsDao, RulesDao], ) class Database extends _$Database { Database([QueryExecutor? executor]) : super(executor ?? _openConnection()); @override int get schemaVersion => 1; static LazyDatabase _openConnection() { return LazyDatabase(() async { final databaseFile = File(await appPath.databasePath); return NativeDatabase.createInBackground(databaseFile); }); } Future restore( List profiles, List