Skip to content

Commit

Permalink
feat: add title alias
Browse files Browse the repository at this point in the history
  • Loading branch information
mumu-lhl committed Feb 4, 2025
1 parent 34c12a8 commit 214e01d
Show file tree
Hide file tree
Showing 18 changed files with 1,208 additions and 30 deletions.
1 change: 1 addition & 0 deletions drift_schemas/app/drift_schema_v7.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":false},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"dictionary_list","was_declared_in_moor":false,"columns":[{"name":"alias","getter_name":"alias","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"font_path","getter_name":"fontPath","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"path","getter_name":"path","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[],"type":"table","data":{"name":"wordbook","was_declared_in_moor":false,"columns":[{"name":"tag","getter_name":"tag","moor_type":"int","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"word","getter_name":"word","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[],"type":"table","data":{"name":"wordbook_tags","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"tag","getter_name":"tag","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"UNIQUE","dialectAwareDefaultConstraints":{"sqlite":"UNIQUE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[],"type":"table","data":{"name":"history","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"word","getter_name":"word","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[],"type":"table","data":{"name":"dict_group","was_declared_in_moor":false,"columns":[{"name":"dict_ids","getter_name":"dictIds","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"UNIQUE","dialectAwareDefaultConstraints":{"sqlite":"UNIQUE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":5,"references":[1],"type":"index","data":{"on":1,"name":"idx_wordbook","sql":null,"unique":false,"columns":["word"]}},{"id":6,"references":[2],"type":"index","data":{"on":2,"name":"idx_wordbook_tags","sql":null,"unique":false,"columns":["tag"]}}]}
30 changes: 23 additions & 7 deletions lib/database/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,15 @@ class AppDatabase extends _$AppDatabase {
await m.dropColumn(schema.dictionaryList, "backup_path");
await m.create(schema.dictGroup);
},
from6To7: (m, schema) async {
await m.addColumn(schema.dictionaryList, schema.dictionaryList.alias);
},
),
);
}

@override
int get schemaVersion => 6;
int get schemaVersion => 7;
}

class DictGroup extends Table {
Expand Down Expand Up @@ -98,6 +101,7 @@ class DictGroupDao extends DatabaseAccessor<AppDatabase>
}

class DictionaryList extends Table {
TextColumn get alias => text().nullable()();
TextColumn get fontPath => text().nullable()();
IntColumn get id => integer().autoIncrement()();
TextColumn get path => text()();
Expand All @@ -117,6 +121,19 @@ class DictionaryListDao extends DatabaseAccessor<AppDatabase>
return (select(dictionaryList)).get();
}

Future<bool> dictionaryExist(String path) async {
return (await (select(dictionaryList)..where((t) => t.path.isValue(path)))
.get())
.isNotEmpty;
}

Future<String?> getAlias(int id) async {
final result = await (select(dictionaryList)
..where((t) => t.id.isValue(id)))
.getSingleOrNull();
return result?.alias;
}

Future<String?> getFontPath(int id) async {
return (await ((select(dictionaryList)..where((t) => t.id.isValue(id)))
.getSingle()))
Expand All @@ -139,15 +156,14 @@ class DictionaryListDao extends DatabaseAccessor<AppDatabase>
return (delete(dictionaryList)..where((t) => t.path.isValue(path))).go();
}

Future<int> updateFont(int id, String? fontPath) {
Future<int> updateAlias(int id, String? alias) {
return (update(dictionaryList)..where((t) => t.id.isValue(id)))
.write(DictionaryListCompanion(fontPath: Value(fontPath)));
.write(DictionaryListCompanion(alias: Value(alias)));
}

Future<bool> dictionaryExist(String path) async {
return (await (select(dictionaryList)..where((t) => t.path.isValue(path)))
.get())
.isNotEmpty;
Future<int> updateFont(int id, String? fontPath) {
return (update(dictionaryList)..where((t) => t.id.isValue(id)))
.write(DictionaryListCompanion(fontPath: Value(fontPath)));
}
}

Expand Down
68 changes: 60 additions & 8 deletions lib/database/app.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 214e01d

Please sign in to comment.