cache
This commit is contained in:
43
lib/database/converter.dart
Normal file
43
lib/database/converter.dart
Normal file
@@ -0,0 +1,43 @@
|
||||
part of 'database.dart';
|
||||
|
||||
class StringMapConverter extends TypeConverter<Map<String, String>, String> {
|
||||
const StringMapConverter();
|
||||
|
||||
@override
|
||||
Map<String, String> fromSql(String fromDb) {
|
||||
return Map<String, String>.from(json.decode(fromDb));
|
||||
}
|
||||
|
||||
@override
|
||||
String toSql(Map<String, String> value) {
|
||||
return json.encode(value);
|
||||
}
|
||||
}
|
||||
|
||||
class StringListConverter extends TypeConverter<List<String>, String> {
|
||||
const StringListConverter();
|
||||
|
||||
@override
|
||||
List<String> fromSql(String fromDb) {
|
||||
return List<String>.from(json.decode(fromDb));
|
||||
}
|
||||
|
||||
@override
|
||||
String toSql(List<String> value) {
|
||||
return json.encode(value.toList());
|
||||
}
|
||||
}
|
||||
|
||||
class StringSetConverter extends TypeConverter<Set<String>, String> {
|
||||
const StringSetConverter();
|
||||
|
||||
@override
|
||||
Set<String> fromSql(String fromDb) {
|
||||
return Set<String>.from(json.decode(fromDb));
|
||||
}
|
||||
|
||||
@override
|
||||
String toSql(Set<String> value) {
|
||||
return json.encode(value.toList());
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,9 @@ import 'package:fl_clash/common/common.dart';
|
||||
import 'package:fl_clash/enum/enum.dart';
|
||||
import 'package:fl_clash/models/models.dart';
|
||||
|
||||
part 'converter.dart';
|
||||
part 'generated/database.g.dart';
|
||||
part 'groups.dart';
|
||||
part 'links.dart';
|
||||
part 'profiles.dart';
|
||||
part 'rules.dart';
|
||||
|
||||
59
lib/database/groups.dart
Normal file
59
lib/database/groups.dart
Normal file
@@ -0,0 +1,59 @@
|
||||
part of 'database.dart';
|
||||
|
||||
@DataClassName('RawGroup')
|
||||
class Groups extends Table {
|
||||
@override
|
||||
String get tableName => 'groups';
|
||||
|
||||
IntColumn get profileId => integer().nullable().references(
|
||||
Profiles,
|
||||
#id,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
|
||||
TextColumn get name => text().named('name')();
|
||||
|
||||
TextColumn get type => text().named('type')();
|
||||
|
||||
TextColumn get proxies =>
|
||||
text().map(const StringListConverter()).nullable().named('proxies')();
|
||||
|
||||
TextColumn get use =>
|
||||
text().map(const StringListConverter()).nullable().named('use')();
|
||||
|
||||
TextColumn get url => text().nullable().named('url')();
|
||||
|
||||
IntColumn get interval => integer().nullable().named('interval')();
|
||||
|
||||
IntColumn get testTimeout => integer().nullable().named('timeout')();
|
||||
|
||||
IntColumn get maxFailedTimes =>
|
||||
integer().nullable().named('max_failed_times')();
|
||||
|
||||
BoolColumn get lazy => boolean().nullable().named('lazy')();
|
||||
|
||||
BoolColumn get disableUdp => boolean().nullable().named('disable_udp')();
|
||||
|
||||
TextColumn get filter => text().nullable().named('filter')();
|
||||
|
||||
TextColumn get excludeFilter => text().nullable().named('exclude_filter')();
|
||||
|
||||
TextColumn get excludeType => text().nullable().named('exclude_type')();
|
||||
|
||||
TextColumn get expectedStatus => text().nullable().named('expected_status')();
|
||||
|
||||
BoolColumn get includeAll => boolean().nullable().named('include_all')();
|
||||
|
||||
BoolColumn get includeAllProxies =>
|
||||
boolean().nullable().named('include_all_proxies')();
|
||||
|
||||
BoolColumn get includeAllProviders =>
|
||||
boolean().nullable().named('include_all_providers')();
|
||||
|
||||
BoolColumn get hidden => boolean().nullable().named('hidden')();
|
||||
|
||||
TextColumn get icon => text().nullable().named('icon')();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {profileId, name};
|
||||
}
|
||||
@@ -99,34 +99,6 @@ class ProfilesDao extends DatabaseAccessor<Database> with _$ProfilesDaoMixin {
|
||||
}
|
||||
}
|
||||
|
||||
class StringMapConverter extends TypeConverter<Map<String, String>, String> {
|
||||
const StringMapConverter();
|
||||
|
||||
@override
|
||||
Map<String, String> fromSql(String fromDb) {
|
||||
return Map<String, String>.from(json.decode(fromDb));
|
||||
}
|
||||
|
||||
@override
|
||||
String toSql(Map<String, String> value) {
|
||||
return json.encode(value);
|
||||
}
|
||||
}
|
||||
|
||||
class StringSetConverter extends TypeConverter<Set<String>, String> {
|
||||
const StringSetConverter();
|
||||
|
||||
@override
|
||||
Set<String> fromSql(String fromDb) {
|
||||
return Set<String>.from(json.decode(fromDb));
|
||||
}
|
||||
|
||||
@override
|
||||
String toSql(Set<String> value) {
|
||||
return json.encode(value.toList());
|
||||
}
|
||||
}
|
||||
|
||||
extension RawProfilExt on RawProfile {
|
||||
Profile toProfile() {
|
||||
return Profile(
|
||||
|
||||
Reference in New Issue
Block a user