diff --git a/lib/database/collections/account.g.dart b/lib/database/collections/account.g.dart
index ead950f..c7f17ee 100644
--- a/lib/database/collections/account.g.dart
+++ b/lib/database/collections/account.g.dart
@@ -17,11 +17,7 @@ const AccountSchema = CollectionSchema(
   name: r'Account',
   id: -6646797162501847804,
   properties: {
-    r'name': PropertySchema(
-      id: 0,
-      name: r'name',
-      type: IsarType.string,
-    )
+    r'name': PropertySchema(id: 0, name: r'name', type: IsarType.string),
   },
   estimateSize: _accountEstimateSize,
   serialize: _accountSerialize,
@@ -110,10 +106,7 @@ extension AccountQueryWhereSort on QueryBuilder<Account, Account, QWhere> {
 extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
   QueryBuilder<Account, Account, QAfterWhereClause> idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
@@ -139,8 +132,10 @@ extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
     });
   }
 
-  QueryBuilder<Account, Account, QAfterWhereClause> idGreaterThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Account, Account, QAfterWhereClause> idGreaterThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -148,8 +143,10 @@ extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
     });
   }
 
-  QueryBuilder<Account, Account, QAfterWhereClause> idLessThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Account, Account, QAfterWhereClause> idLessThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -164,12 +161,14 @@ extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -178,10 +177,9 @@ extension AccountQueryFilter
     on QueryBuilder<Account, Account, QFilterCondition> {
   QueryBuilder<Account, Account, QAfterFilterCondition> idEqualTo(Id value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
@@ -190,11 +188,13 @@ extension AccountQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -203,11 +203,13 @@ extension AccountQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -218,29 +220,31 @@ extension AccountQueryFilter
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNull() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(const FilterCondition.isNull(
-        property: r'name',
-      ));
+      return query.addFilterCondition(
+        const FilterCondition.isNull(property: r'name'),
+      );
     });
   }
 
   QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNotNull() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(const FilterCondition.isNotNull(
-        property: r'name',
-      ));
+      return query.addFilterCondition(
+        const FilterCondition.isNotNull(property: r'name'),
+      );
     });
   }
 
@@ -249,11 +253,13 @@ extension AccountQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -263,12 +269,14 @@ extension AccountQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -278,12 +286,14 @@ extension AccountQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -295,14 +305,16 @@ extension AccountQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'name',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'name',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -311,11 +323,13 @@ extension AccountQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -324,53 +338,59 @@ extension AccountQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Account, Account, QAfterFilterCondition> nameContains(
-      String value,
-      {bool caseSensitive = true}) {
+    String value, {
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Account, Account, QAfterFilterCondition> nameMatches(
-      String pattern,
-      {bool caseSensitive = true}) {
+    String pattern, {
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'name',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'name',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Account, Account, QAfterFilterCondition> nameIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'name', value: ''),
+      );
     });
   }
 }
@@ -424,8 +444,9 @@ extension AccountQuerySortThenBy
 
 extension AccountQueryWhereDistinct
     on QueryBuilder<Account, Account, QDistinct> {
-  QueryBuilder<Account, Account, QDistinct> distinctByName(
-      {bool caseSensitive = true}) {
+  QueryBuilder<Account, Account, QDistinct> distinctByName({
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
     });
diff --git a/lib/database/collections/beneficiary.g.dart b/lib/database/collections/beneficiary.g.dart
index d1acf98..7943e15 100644
--- a/lib/database/collections/beneficiary.g.dart
+++ b/lib/database/collections/beneficiary.g.dart
@@ -22,17 +22,13 @@ const BeneficiarySchema = CollectionSchema(
       name: r'imagePath',
       type: IsarType.string,
     ),
-    r'name': PropertySchema(
-      id: 1,
-      name: r'name',
-      type: IsarType.string,
-    ),
+    r'name': PropertySchema(id: 1, name: r'name', type: IsarType.string),
     r'type': PropertySchema(
       id: 2,
       name: r'type',
       type: IsarType.byte,
       enumMap: _BeneficiarytypeEnumValueMap,
-    )
+    ),
   },
   estimateSize: _beneficiaryEstimateSize,
   serialize: _beneficiarySerialize,
@@ -46,7 +42,7 @@ const BeneficiarySchema = CollectionSchema(
       name: r'account',
       target: r'Account',
       single: true,
-    )
+    ),
   },
   embeddedSchemas: {},
   getId: _beneficiaryGetId,
@@ -94,7 +90,7 @@ Beneficiary _beneficiaryDeserialize(
   object.name = reader.readString(offsets[1]);
   object.type =
       _BeneficiarytypeValueEnumMap[reader.readByteOrNull(offsets[2])] ??
-          BeneficiaryType.account;
+      BeneficiaryType.account;
   return object;
 }
 
@@ -111,16 +107,14 @@ P _beneficiaryDeserializeProp<P>(
       return (reader.readString(offset)) as P;
     case 2:
       return (_BeneficiarytypeValueEnumMap[reader.readByteOrNull(offset)] ??
-          BeneficiaryType.account) as P;
+              BeneficiaryType.account)
+          as P;
     default:
       throw IsarError('Unknown property with id $propertyId');
   }
 }
 
-const _BeneficiarytypeEnumValueMap = {
-  'account': 0,
-  'other': 1,
-};
+const _BeneficiarytypeEnumValueMap = {'account': 0, 'other': 1};
 const _BeneficiarytypeValueEnumMap = {
   0: BeneficiaryType.account,
   1: BeneficiaryType.other,
@@ -135,7 +129,10 @@ List<IsarLinkBase<dynamic>> _beneficiaryGetLinks(Beneficiary object) {
 }
 
 void _beneficiaryAttach(
-    IsarCollection<dynamic> col, Id id, Beneficiary object) {
+  IsarCollection<dynamic> col,
+  Id id,
+  Beneficiary object,
+) {
   object.id = id;
   object.account.attach(col, col.isar.collection<Account>(), r'account', id);
 }
@@ -153,15 +150,13 @@ extension BeneficiaryQueryWhere
     on QueryBuilder<Beneficiary, Beneficiary, QWhereClause> {
   QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idNotEqualTo(
-      Id id) {
+    Id id,
+  ) {
     return QueryBuilder.apply(this, (query) {
       if (query.whereSort == Sort.asc) {
         return query
@@ -183,8 +178,10 @@ extension BeneficiaryQueryWhere
     });
   }
 
-  QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idGreaterThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idGreaterThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -192,8 +189,10 @@ extension BeneficiaryQueryWhere
     });
   }
 
-  QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idLessThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idLessThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -208,12 +207,14 @@ extension BeneficiaryQueryWhere
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -221,12 +222,12 @@ extension BeneficiaryQueryWhere
 extension BeneficiaryQueryFilter
     on QueryBuilder<Beneficiary, Beneficiary, QFilterCondition> {
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> idEqualTo(
-      Id value) {
+    Id value,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
@@ -235,11 +236,13 @@ extension BeneficiaryQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -248,11 +251,13 @@ extension BeneficiaryQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -263,82 +268,87 @@ extension BeneficiaryQueryFilter
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathIsNull() {
+  imagePathIsNull() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(const FilterCondition.isNull(
-        property: r'imagePath',
-      ));
+      return query.addFilterCondition(
+        const FilterCondition.isNull(property: r'imagePath'),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathIsNotNull() {
+  imagePathIsNotNull() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(const FilterCondition.isNotNull(
-        property: r'imagePath',
-      ));
+      return query.addFilterCondition(
+        const FilterCondition.isNotNull(property: r'imagePath'),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathEqualTo(
-    String? value, {
-    bool caseSensitive = true,
-  }) {
+  imagePathEqualTo(String? value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'imagePath',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'imagePath',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathGreaterThan(
+  imagePathGreaterThan(
     String? value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'imagePath',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'imagePath',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathLessThan(
+  imagePathLessThan(
     String? value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'imagePath',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'imagePath',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathBetween(
+  imagePathBetween(
     String? lower,
     String? upper, {
     bool includeLower = true,
@@ -346,84 +356,86 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'imagePath',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'imagePath',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathStartsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  imagePathStartsWith(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'imagePath',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'imagePath',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathEndsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  imagePathEndsWith(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'imagePath',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'imagePath',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathContains(String value, {bool caseSensitive = true}) {
+  imagePathContains(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'imagePath',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'imagePath',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathMatches(String pattern, {bool caseSensitive = true}) {
+  imagePathMatches(String pattern, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'imagePath',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'imagePath',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathIsEmpty() {
+  imagePathIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'imagePath',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'imagePath', value: ''),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      imagePathIsNotEmpty() {
+  imagePathIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'imagePath',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'imagePath', value: ''),
+      );
     });
   }
 
@@ -432,11 +444,13 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -446,12 +460,14 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -461,12 +477,14 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -478,14 +496,16 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'name',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'name',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -494,11 +514,13 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -507,64 +529,70 @@ extension BeneficiaryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameContains(
-      String value,
-      {bool caseSensitive = true}) {
+    String value, {
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameMatches(
-      String pattern,
-      {bool caseSensitive = true}) {
+    String pattern, {
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'name',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'name',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      nameIsNotEmpty() {
+  nameIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> typeEqualTo(
-      BeneficiaryType value) {
+    BeneficiaryType value,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'type',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'type', value: value),
+      );
     });
   }
 
@@ -573,11 +601,13 @@ extension BeneficiaryQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'type',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'type',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -586,11 +616,13 @@ extension BeneficiaryQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'type',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'type',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -601,13 +633,15 @@ extension BeneficiaryQueryFilter
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'type',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'type',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -618,14 +652,15 @@ extension BeneficiaryQueryObject
 extension BeneficiaryQueryLinks
     on QueryBuilder<Beneficiary, Beneficiary, QFilterCondition> {
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> account(
-      FilterQuery<Account> q) {
+    FilterQuery<Account> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'account');
     });
   }
 
   QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
-      accountIsNull() {
+  accountIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'account', 0, true, 0, true);
     });
@@ -724,15 +759,17 @@ extension BeneficiaryQuerySortThenBy
 
 extension BeneficiaryQueryWhereDistinct
     on QueryBuilder<Beneficiary, Beneficiary, QDistinct> {
-  QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByImagePath(
-      {bool caseSensitive = true}) {
+  QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByImagePath({
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'imagePath', caseSensitive: caseSensitive);
     });
   }
 
-  QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByName(
-      {bool caseSensitive = true}) {
+  QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByName({
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
     });
diff --git a/lib/database/collections/budget.g.dart b/lib/database/collections/budget.g.dart
index d017b8e..2700779 100644
--- a/lib/database/collections/budget.g.dart
+++ b/lib/database/collections/budget.g.dart
@@ -17,11 +17,7 @@ const BudgetItemSchema = CollectionSchema(
   name: r'BudgetItem',
   id: 618999772191843499,
   properties: {
-    r'amount': PropertySchema(
-      id: 0,
-      name: r'amount',
-      type: IsarType.double,
-    )
+    r'amount': PropertySchema(id: 0, name: r'amount', type: IsarType.double),
   },
   estimateSize: _budgetItemEstimateSize,
   serialize: _budgetItemSerialize,
@@ -35,7 +31,7 @@ const BudgetItemSchema = CollectionSchema(
       name: r'expenseCategory',
       target: r'ExpenseCategory',
       single: true,
-    )
+    ),
   },
   embeddedSchemas: {},
   getId: _budgetItemGetId,
@@ -99,7 +95,11 @@ List<IsarLinkBase<dynamic>> _budgetItemGetLinks(BudgetItem object) {
 void _budgetItemAttach(IsarCollection<dynamic> col, Id id, BudgetItem object) {
   object.id = id;
   object.expenseCategory.attach(
-      col, col.isar.collection<ExpenseCategory>(), r'expenseCategory', id);
+    col,
+    col.isar.collection<ExpenseCategory>(),
+    r'expenseCategory',
+    id,
+  );
 }
 
 extension BudgetItemQueryWhereSort
@@ -115,10 +115,7 @@ extension BudgetItemQueryWhere
     on QueryBuilder<BudgetItem, BudgetItem, QWhereClause> {
   QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
@@ -144,8 +141,10 @@ extension BudgetItemQueryWhere
     });
   }
 
-  QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idGreaterThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idGreaterThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -153,8 +152,10 @@ extension BudgetItemQueryWhere
     });
   }
 
-  QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idLessThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idLessThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -169,12 +170,14 @@ extension BudgetItemQueryWhere
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -186,11 +189,13 @@ extension BudgetItemQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -200,12 +205,14 @@ extension BudgetItemQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -215,12 +222,14 @@ extension BudgetItemQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -232,24 +241,26 @@ extension BudgetItemQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'amount',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'amount',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition> idEqualTo(
-      Id value) {
+    Id value,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
@@ -258,11 +269,13 @@ extension BudgetItemQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -271,11 +284,13 @@ extension BudgetItemQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -286,13 +301,15 @@ extension BudgetItemQueryFilter
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -303,14 +320,15 @@ extension BudgetItemQueryObject
 extension BudgetItemQueryLinks
     on QueryBuilder<BudgetItem, BudgetItem, QFilterCondition> {
   QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition> expenseCategory(
-      FilterQuery<ExpenseCategory> q) {
+    FilterQuery<ExpenseCategory> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'expenseCategory');
     });
   }
 
   QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition>
-      expenseCategoryIsNull() {
+  expenseCategoryIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'expenseCategory', 0, true, 0, true);
     });
@@ -399,22 +417,14 @@ const BudgetSchema = CollectionSchema(
       name: r'includeOtherSpendings',
       type: IsarType.bool,
     ),
-    r'income': PropertySchema(
-      id: 1,
-      name: r'income',
-      type: IsarType.double,
-    ),
-    r'name': PropertySchema(
-      id: 2,
-      name: r'name',
-      type: IsarType.string,
-    ),
+    r'income': PropertySchema(id: 1, name: r'income', type: IsarType.double),
+    r'name': PropertySchema(id: 2, name: r'name', type: IsarType.string),
     r'period': PropertySchema(
       id: 3,
       name: r'period',
       type: IsarType.byte,
       enumMap: _BudgetperiodEnumValueMap,
-    )
+    ),
   },
   estimateSize: _budgetEstimateSize,
   serialize: _budgetSerialize,
@@ -434,7 +444,7 @@ const BudgetSchema = CollectionSchema(
       name: r'items',
       target: r'BudgetItem',
       single: false,
-    )
+    ),
   },
   embeddedSchemas: {},
   getId: _budgetGetId,
@@ -478,7 +488,7 @@ Budget _budgetDeserialize(
   object.name = reader.readString(offsets[2]);
   object.period =
       _BudgetperiodValueEnumMap[reader.readByteOrNull(offsets[3])] ??
-          BudgetPeriod.month;
+      BudgetPeriod.month;
   return object;
 }
 
@@ -497,18 +507,15 @@ P _budgetDeserializeProp<P>(
       return (reader.readString(offset)) as P;
     case 3:
       return (_BudgetperiodValueEnumMap[reader.readByteOrNull(offset)] ??
-          BudgetPeriod.month) as P;
+              BudgetPeriod.month)
+          as P;
     default:
       throw IsarError('Unknown property with id $propertyId');
   }
 }
 
-const _BudgetperiodEnumValueMap = {
-  'month': 0,
-};
-const _BudgetperiodValueEnumMap = {
-  0: BudgetPeriod.month,
-};
+const _BudgetperiodEnumValueMap = {'month': 0};
+const _BudgetperiodValueEnumMap = {0: BudgetPeriod.month};
 
 Id _budgetGetId(Budget object) {
   return object.id;
@@ -535,10 +542,7 @@ extension BudgetQueryWhereSort on QueryBuilder<Budget, Budget, QWhere> {
 extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
   QueryBuilder<Budget, Budget, QAfterWhereClause> idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
@@ -564,8 +568,10 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
     });
   }
 
-  QueryBuilder<Budget, Budget, QAfterWhereClause> idGreaterThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Budget, Budget, QAfterWhereClause> idGreaterThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -573,8 +579,10 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
     });
   }
 
-  QueryBuilder<Budget, Budget, QAfterWhereClause> idLessThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Budget, Budget, QAfterWhereClause> idLessThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -589,12 +597,14 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -602,10 +612,9 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
 extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
   QueryBuilder<Budget, Budget, QAfterFilterCondition> idEqualTo(Id value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
@@ -614,11 +623,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -627,11 +638,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -642,23 +655,27 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition>
-      includeOtherSpendingsEqualTo(bool value) {
+  includeOtherSpendingsEqualTo(bool value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'includeOtherSpendings',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'includeOtherSpendings',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -667,11 +684,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'income',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'income',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -681,12 +700,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'income',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'income',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -696,12 +717,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'income',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'income',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -713,14 +736,16 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'income',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'income',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -729,11 +754,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -743,12 +770,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -758,12 +787,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -775,14 +806,16 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'name',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'name',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -791,11 +824,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
@@ -804,62 +839,69 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
-  QueryBuilder<Budget, Budget, QAfterFilterCondition> nameContains(String value,
-      {bool caseSensitive = true}) {
+  QueryBuilder<Budget, Budget, QAfterFilterCondition> nameContains(
+    String value, {
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition> nameMatches(
-      String pattern,
-      {bool caseSensitive = true}) {
+    String pattern, {
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'name',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'name',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition> nameIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition> nameIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition> periodEqualTo(
-      BudgetPeriod value) {
+    BudgetPeriod value,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'period',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'period', value: value),
+      );
     });
   }
 
@@ -868,11 +910,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'period',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'period',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -881,11 +925,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'period',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'period',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -896,13 +942,15 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'period',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'period',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -911,7 +959,8 @@ extension BudgetQueryObject on QueryBuilder<Budget, Budget, QFilterCondition> {}
 
 extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
   QueryBuilder<Budget, Budget, QAfterFilterCondition> account(
-      FilterQuery<Account> q) {
+    FilterQuery<Account> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'account');
     });
@@ -924,14 +973,16 @@ extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition> items(
-      FilterQuery<BudgetItem> q) {
+    FilterQuery<BudgetItem> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'items');
     });
   }
 
   QueryBuilder<Budget, Budget, QAfterFilterCondition> itemsLengthEqualTo(
-      int length) {
+    int length,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'items', length, true, length, true);
     });
@@ -975,7 +1026,12 @@ extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
   }) {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(
-          r'items', lower, includeLower, upper, includeUpper);
+        r'items',
+        lower,
+        includeLower,
+        upper,
+        includeUpper,
+      );
     });
   }
 }
@@ -1105,8 +1161,9 @@ extension BudgetQueryWhereDistinct on QueryBuilder<Budget, Budget, QDistinct> {
     });
   }
 
-  QueryBuilder<Budget, Budget, QDistinct> distinctByName(
-      {bool caseSensitive = true}) {
+  QueryBuilder<Budget, Budget, QDistinct> distinctByName({
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
     });
diff --git a/lib/database/collections/expense_category.g.dart b/lib/database/collections/expense_category.g.dart
index b740c75..13012af 100644
--- a/lib/database/collections/expense_category.g.dart
+++ b/lib/database/collections/expense_category.g.dart
@@ -17,11 +17,7 @@ const ExpenseCategorySchema = CollectionSchema(
   name: r'ExpenseCategory',
   id: -6352499903118634,
   properties: {
-    r'name': PropertySchema(
-      id: 0,
-      name: r'name',
-      type: IsarType.string,
-    )
+    r'name': PropertySchema(id: 0, name: r'name', type: IsarType.string),
   },
   estimateSize: _expenseCategoryEstimateSize,
   serialize: _expenseCategorySerialize,
@@ -91,7 +87,10 @@ List<IsarLinkBase<dynamic>> _expenseCategoryGetLinks(ExpenseCategory object) {
 }
 
 void _expenseCategoryAttach(
-    IsarCollection<dynamic> col, Id id, ExpenseCategory object) {
+  IsarCollection<dynamic> col,
+  Id id,
+  ExpenseCategory object,
+) {
   object.id = id;
 }
 
@@ -107,17 +106,15 @@ extension ExpenseCategoryQueryWhereSort
 extension ExpenseCategoryQueryWhere
     on QueryBuilder<ExpenseCategory, ExpenseCategory, QWhereClause> {
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause> idEqualTo(
-      Id id) {
+    Id id,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause>
-      idNotEqualTo(Id id) {
+  idNotEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
       if (query.whereSort == Sort.asc) {
         return query
@@ -140,7 +137,7 @@ extension ExpenseCategoryQueryWhere
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause>
-      idGreaterThan(Id id, {bool include = false}) {
+  idGreaterThan(Id id, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -149,8 +146,9 @@ extension ExpenseCategoryQueryWhere
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause> idLessThan(
-      Id id,
-      {bool include = false}) {
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -165,12 +163,14 @@ extension ExpenseCategoryQueryWhere
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -178,109 +178,111 @@ extension ExpenseCategoryQueryWhere
 extension ExpenseCategoryQueryFilter
     on QueryBuilder<ExpenseCategory, ExpenseCategory, QFilterCondition> {
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      idEqualTo(Id value) {
+  idEqualTo(Id value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      idGreaterThan(
-    Id value, {
-    bool include = false,
-  }) {
+  idGreaterThan(Id value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      idLessThan(
-    Id value, {
-    bool include = false,
-  }) {
+  idLessThan(Id value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      idBetween(
+  idBetween(
     Id lower,
     Id upper, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameEqualTo(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  nameEqualTo(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameGreaterThan(
+  nameGreaterThan(
     String value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameLessThan(
+  nameLessThan(
     String value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameBetween(
+  nameBetween(
     String lower,
     String upper, {
     bool includeLower = true,
@@ -288,84 +290,86 @@ extension ExpenseCategoryQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'name',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'name',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameStartsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  nameStartsWith(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameEndsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  nameEndsWith(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameContains(String value, {bool caseSensitive = true}) {
+  nameContains(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameMatches(String pattern, {bool caseSensitive = true}) {
+  nameMatches(String pattern, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'name',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'name',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameIsEmpty() {
+  nameIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
-      nameIsNotEmpty() {
+  nameIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'name', value: ''),
+      );
     });
   }
 }
@@ -385,7 +389,7 @@ extension ExpenseCategoryQuerySortBy
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterSortBy>
-      sortByNameDesc() {
+  sortByNameDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'name', Sort.desc);
     });
@@ -413,7 +417,7 @@ extension ExpenseCategoryQuerySortThenBy
   }
 
   QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterSortBy>
-      thenByNameDesc() {
+  thenByNameDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'name', Sort.desc);
     });
@@ -422,8 +426,9 @@ extension ExpenseCategoryQuerySortThenBy
 
 extension ExpenseCategoryQueryWhereDistinct
     on QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> {
-  QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> distinctByName(
-      {bool caseSensitive = true}) {
+  QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> distinctByName({
+    bool caseSensitive = true,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
     });
diff --git a/lib/database/collections/recurrent.g.dart b/lib/database/collections/recurrent.g.dart
index 77408c6..c587bc5 100644
--- a/lib/database/collections/recurrent.g.dart
+++ b/lib/database/collections/recurrent.g.dart
@@ -18,16 +18,12 @@ const RecurringTransactionSchema = CollectionSchema(
   name: r'RecurringTransaction',
   id: 969840479390105118,
   properties: {
-    r'days': PropertySchema(
-      id: 0,
-      name: r'days',
-      type: IsarType.long,
-    ),
+    r'days': PropertySchema(id: 0, name: r'days', type: IsarType.long),
     r'lastExecution': PropertySchema(
       id: 1,
       name: r'lastExecution',
       type: IsarType.dateTime,
-    )
+    ),
   },
   estimateSize: _recurringTransactionEstimateSize,
   serialize: _recurringTransactionSerialize,
@@ -47,7 +43,7 @@ const RecurringTransactionSchema = CollectionSchema(
       name: r'account',
       target: r'Account',
       single: true,
-    )
+    ),
   },
   embeddedSchemas: {},
   getId: _recurringTransactionGetId,
@@ -109,22 +105,30 @@ Id _recurringTransactionGetId(RecurringTransaction object) {
 }
 
 List<IsarLinkBase<dynamic>> _recurringTransactionGetLinks(
-    RecurringTransaction object) {
+  RecurringTransaction object,
+) {
   return [object.template, object.account];
 }
 
 void _recurringTransactionAttach(
-    IsarCollection<dynamic> col, Id id, RecurringTransaction object) {
+  IsarCollection<dynamic> col,
+  Id id,
+  RecurringTransaction object,
+) {
   object.id = id;
-  object.template
-      .attach(col, col.isar.collection<TransactionTemplate>(), r'template', id);
+  object.template.attach(
+    col,
+    col.isar.collection<TransactionTemplate>(),
+    r'template',
+    id,
+  );
   object.account.attach(col, col.isar.collection<Account>(), r'account', id);
 }
 
 extension RecurringTransactionQueryWhereSort
     on QueryBuilder<RecurringTransaction, RecurringTransaction, QWhere> {
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhere>
-      anyId() {
+  anyId() {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(const IdWhereClause.any());
     });
@@ -134,17 +138,14 @@ extension RecurringTransactionQueryWhereSort
 extension RecurringTransactionQueryWhere
     on QueryBuilder<RecurringTransaction, RecurringTransaction, QWhereClause> {
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
-      idEqualTo(Id id) {
+  idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
-      idNotEqualTo(Id id) {
+  idNotEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
       if (query.whereSort == Sort.asc) {
         return query
@@ -167,7 +168,7 @@ extension RecurringTransactionQueryWhere
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
-      idGreaterThan(Id id, {bool include = false}) {
+  idGreaterThan(Id id, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -176,7 +177,7 @@ extension RecurringTransactionQueryWhere
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
-      idLessThan(Id id, {bool include = false}) {
+  idLessThan(Id id, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -185,240 +186,326 @@ extension RecurringTransactionQueryWhere
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
-      idBetween(
+  idBetween(
     Id lowerId,
     Id upperId, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
 
-extension RecurringTransactionQueryFilter on QueryBuilder<RecurringTransaction,
-    RecurringTransaction, QFilterCondition> {
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> daysEqualTo(int value) {
+extension RecurringTransactionQueryFilter
+    on
+        QueryBuilder<
+          RecurringTransaction,
+          RecurringTransaction,
+          QFilterCondition
+        > {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  daysEqualTo(int value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'days',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'days', value: value),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> daysGreaterThan(
-    int value, {
-    bool include = false,
-  }) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  daysGreaterThan(int value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'days',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'days',
+          value: value,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> daysLessThan(
-    int value, {
-    bool include = false,
-  }) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  daysLessThan(int value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'days',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'days',
+          value: value,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> daysBetween(
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  daysBetween(
     int lower,
     int upper, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'days',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'days',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> idEqualTo(Id value) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  idEqualTo(Id value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> idGreaterThan(
-    Id value, {
-    bool include = false,
-  }) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  idGreaterThan(Id value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> idLessThan(
-    Id value, {
-    bool include = false,
-  }) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  idLessThan(Id value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> idBetween(
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  idBetween(
     Id lower,
     Id upper, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> lastExecutionIsNull() {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  lastExecutionIsNull() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(const FilterCondition.isNull(
-        property: r'lastExecution',
-      ));
+      return query.addFilterCondition(
+        const FilterCondition.isNull(property: r'lastExecution'),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> lastExecutionIsNotNull() {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  lastExecutionIsNotNull() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(const FilterCondition.isNotNull(
-        property: r'lastExecution',
-      ));
+      return query.addFilterCondition(
+        const FilterCondition.isNotNull(property: r'lastExecution'),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> lastExecutionEqualTo(DateTime? value) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  lastExecutionEqualTo(DateTime? value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'lastExecution',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'lastExecution', value: value),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> lastExecutionGreaterThan(
-    DateTime? value, {
-    bool include = false,
-  }) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  lastExecutionGreaterThan(DateTime? value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'lastExecution',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'lastExecution',
+          value: value,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> lastExecutionLessThan(
-    DateTime? value, {
-    bool include = false,
-  }) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  lastExecutionLessThan(DateTime? value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'lastExecution',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'lastExecution',
+          value: value,
+        ),
+      );
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> lastExecutionBetween(
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  lastExecutionBetween(
     DateTime? lower,
     DateTime? upper, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'lastExecution',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'lastExecution',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
 
-extension RecurringTransactionQueryObject on QueryBuilder<RecurringTransaction,
-    RecurringTransaction, QFilterCondition> {}
+extension RecurringTransactionQueryObject
+    on
+        QueryBuilder<
+          RecurringTransaction,
+          RecurringTransaction,
+          QFilterCondition
+        > {}
 
-extension RecurringTransactionQueryLinks on QueryBuilder<RecurringTransaction,
-    RecurringTransaction, QFilterCondition> {
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> template(FilterQuery<TransactionTemplate> q) {
+extension RecurringTransactionQueryLinks
+    on
+        QueryBuilder<
+          RecurringTransaction,
+          RecurringTransaction,
+          QFilterCondition
+        > {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  template(FilterQuery<TransactionTemplate> q) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'template');
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> templateIsNull() {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  templateIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'template', 0, true, 0, true);
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> account(FilterQuery<Account> q) {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  account(FilterQuery<Account> q) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'account');
     });
   }
 
-  QueryBuilder<RecurringTransaction, RecurringTransaction,
-      QAfterFilterCondition> accountIsNull() {
+  QueryBuilder<
+    RecurringTransaction,
+    RecurringTransaction,
+    QAfterFilterCondition
+  >
+  accountIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'account', 0, true, 0, true);
     });
@@ -428,28 +515,28 @@ extension RecurringTransactionQueryLinks on QueryBuilder<RecurringTransaction,
 extension RecurringTransactionQuerySortBy
     on QueryBuilder<RecurringTransaction, RecurringTransaction, QSortBy> {
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      sortByDays() {
+  sortByDays() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'days', Sort.asc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      sortByDaysDesc() {
+  sortByDaysDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'days', Sort.desc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      sortByLastExecution() {
+  sortByLastExecution() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'lastExecution', Sort.asc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      sortByLastExecutionDesc() {
+  sortByLastExecutionDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'lastExecution', Sort.desc);
     });
@@ -459,42 +546,42 @@ extension RecurringTransactionQuerySortBy
 extension RecurringTransactionQuerySortThenBy
     on QueryBuilder<RecurringTransaction, RecurringTransaction, QSortThenBy> {
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      thenByDays() {
+  thenByDays() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'days', Sort.asc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      thenByDaysDesc() {
+  thenByDaysDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'days', Sort.desc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      thenById() {
+  thenById() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'id', Sort.asc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      thenByIdDesc() {
+  thenByIdDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'id', Sort.desc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      thenByLastExecution() {
+  thenByLastExecution() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'lastExecution', Sort.asc);
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterSortBy>
-      thenByLastExecutionDesc() {
+  thenByLastExecutionDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'lastExecution', Sort.desc);
     });
@@ -504,22 +591,27 @@ extension RecurringTransactionQuerySortThenBy
 extension RecurringTransactionQueryWhereDistinct
     on QueryBuilder<RecurringTransaction, RecurringTransaction, QDistinct> {
   QueryBuilder<RecurringTransaction, RecurringTransaction, QDistinct>
-      distinctByDays() {
+  distinctByDays() {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'days');
     });
   }
 
   QueryBuilder<RecurringTransaction, RecurringTransaction, QDistinct>
-      distinctByLastExecution() {
+  distinctByLastExecution() {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'lastExecution');
     });
   }
 }
 
-extension RecurringTransactionQueryProperty on QueryBuilder<
-    RecurringTransaction, RecurringTransaction, QQueryProperty> {
+extension RecurringTransactionQueryProperty
+    on
+        QueryBuilder<
+          RecurringTransaction,
+          RecurringTransaction,
+          QQueryProperty
+        > {
   QueryBuilder<RecurringTransaction, int, QQueryOperations> idProperty() {
     return QueryBuilder.apply(this, (query) {
       return query.addPropertyName(r'id');
@@ -533,7 +625,7 @@ extension RecurringTransactionQueryProperty on QueryBuilder<
   }
 
   QueryBuilder<RecurringTransaction, DateTime?, QQueryOperations>
-      lastExecutionProperty() {
+  lastExecutionProperty() {
     return QueryBuilder.apply(this, (query) {
       return query.addPropertyName(r'lastExecution');
     });
diff --git a/lib/database/collections/template.g.dart b/lib/database/collections/template.g.dart
index 96a643e..99b6524 100644
--- a/lib/database/collections/template.g.dart
+++ b/lib/database/collections/template.g.dart
@@ -18,21 +18,13 @@ const TransactionTemplateSchema = CollectionSchema(
   name: r'TransactionTemplate',
   id: -2324989530163310644,
   properties: {
-    r'amount': PropertySchema(
-      id: 0,
-      name: r'amount',
-      type: IsarType.double,
-    ),
-    r'name': PropertySchema(
-      id: 1,
-      name: r'name',
-      type: IsarType.string,
-    ),
+    r'amount': PropertySchema(id: 0, name: r'amount', type: IsarType.double),
+    r'name': PropertySchema(id: 1, name: r'name', type: IsarType.string),
     r'recurring': PropertySchema(
       id: 2,
       name: r'recurring',
       type: IsarType.bool,
-    )
+    ),
   },
   estimateSize: _transactionTemplateEstimateSize,
   serialize: _transactionTemplateSerialize,
@@ -58,7 +50,7 @@ const TransactionTemplateSchema = CollectionSchema(
       name: r'account',
       target: r'Account',
       single: true,
-    )
+    ),
   },
   embeddedSchemas: {},
   getId: _transactionTemplateGetId,
@@ -125,17 +117,29 @@ Id _transactionTemplateGetId(TransactionTemplate object) {
 }
 
 List<IsarLinkBase<dynamic>> _transactionTemplateGetLinks(
-    TransactionTemplate object) {
+  TransactionTemplate object,
+) {
   return [object.expenseCategory, object.beneficiary, object.account];
 }
 
 void _transactionTemplateAttach(
-    IsarCollection<dynamic> col, Id id, TransactionTemplate object) {
+  IsarCollection<dynamic> col,
+  Id id,
+  TransactionTemplate object,
+) {
   object.id = id;
   object.expenseCategory.attach(
-      col, col.isar.collection<ExpenseCategory>(), r'expenseCategory', id);
-  object.beneficiary
-      .attach(col, col.isar.collection<Beneficiary>(), r'beneficiary', id);
+    col,
+    col.isar.collection<ExpenseCategory>(),
+    r'expenseCategory',
+    id,
+  );
+  object.beneficiary.attach(
+    col,
+    col.isar.collection<Beneficiary>(),
+    r'beneficiary',
+    id,
+  );
   object.account.attach(col, col.isar.collection<Account>(), r'account', id);
 }
 
@@ -151,17 +155,14 @@ extension TransactionTemplateQueryWhereSort
 extension TransactionTemplateQueryWhere
     on QueryBuilder<TransactionTemplate, TransactionTemplate, QWhereClause> {
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
-      idEqualTo(Id id) {
+  idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
-      idNotEqualTo(Id id) {
+  idNotEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
       if (query.whereSort == Sort.asc) {
         return query
@@ -184,7 +185,7 @@ extension TransactionTemplateQueryWhere
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
-      idGreaterThan(Id id, {bool include = false}) {
+  idGreaterThan(Id id, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -193,7 +194,7 @@ extension TransactionTemplateQueryWhere
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
-      idLessThan(Id id, {bool include = false}) {
+  idLessThan(Id id, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -202,73 +203,83 @@ extension TransactionTemplateQueryWhere
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
-      idBetween(
+  idBetween(
     Id lowerId,
     Id upperId, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
 
-extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
-    TransactionTemplate, QFilterCondition> {
+extension TransactionTemplateQueryFilter
+    on
+        QueryBuilder<
+          TransactionTemplate,
+          TransactionTemplate,
+          QFilterCondition
+        > {
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      amountEqualTo(
-    double value, {
-    double epsilon = Query.epsilon,
-  }) {
+  amountEqualTo(double value, {double epsilon = Query.epsilon}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      amountGreaterThan(
+  amountGreaterThan(
     double value, {
     bool include = false,
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      amountLessThan(
+  amountLessThan(
     double value, {
     bool include = false,
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      amountBetween(
+  amountBetween(
     double lower,
     double upper, {
     bool includeLower = true,
@@ -276,121 +287,125 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'amount',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'amount',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      idEqualTo(Id value) {
+  idEqualTo(Id value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      idGreaterThan(
-    Id value, {
-    bool include = false,
-  }) {
+  idGreaterThan(Id value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      idLessThan(
-    Id value, {
-    bool include = false,
-  }) {
+  idLessThan(Id value, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      idBetween(
+  idBetween(
     Id lower,
     Id upper, {
     bool includeLower = true,
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameEqualTo(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  nameEqualTo(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameGreaterThan(
+  nameGreaterThan(
     String value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameLessThan(
+  nameLessThan(
     String value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameBetween(
+  nameBetween(
     String lower,
     String upper, {
     bool includeLower = true,
@@ -398,140 +413,151 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'name',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'name',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameStartsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  nameStartsWith(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameEndsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  nameEndsWith(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameContains(String value, {bool caseSensitive = true}) {
+  nameContains(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'name',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'name',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameMatches(String pattern, {bool caseSensitive = true}) {
+  nameMatches(String pattern, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'name',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'name',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameIsEmpty() {
+  nameIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      nameIsNotEmpty() {
+  nameIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'name',
-        value: '',
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'name', value: ''),
+      );
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      recurringEqualTo(bool value) {
+  recurringEqualTo(bool value) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'recurring',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'recurring', value: value),
+      );
     });
   }
 }
 
-extension TransactionTemplateQueryObject on QueryBuilder<TransactionTemplate,
-    TransactionTemplate, QFilterCondition> {}
+extension TransactionTemplateQueryObject
+    on
+        QueryBuilder<
+          TransactionTemplate,
+          TransactionTemplate,
+          QFilterCondition
+        > {}
 
-extension TransactionTemplateQueryLinks on QueryBuilder<TransactionTemplate,
-    TransactionTemplate, QFilterCondition> {
+extension TransactionTemplateQueryLinks
+    on
+        QueryBuilder<
+          TransactionTemplate,
+          TransactionTemplate,
+          QFilterCondition
+        > {
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      expenseCategory(FilterQuery<ExpenseCategory> q) {
+  expenseCategory(FilterQuery<ExpenseCategory> q) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'expenseCategory');
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      expenseCategoryIsNull() {
+  expenseCategoryIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'expenseCategory', 0, true, 0, true);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      beneficiary(FilterQuery<Beneficiary> q) {
+  beneficiary(FilterQuery<Beneficiary> q) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'beneficiary');
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      beneficiaryIsNull() {
+  beneficiaryIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'beneficiary', 0, true, 0, true);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      account(FilterQuery<Account> q) {
+  account(FilterQuery<Account> q) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'account');
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
-      accountIsNull() {
+  accountIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'account', 0, true, 0, true);
     });
@@ -541,42 +567,42 @@ extension TransactionTemplateQueryLinks on QueryBuilder<TransactionTemplate,
 extension TransactionTemplateQuerySortBy
     on QueryBuilder<TransactionTemplate, TransactionTemplate, QSortBy> {
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      sortByAmount() {
+  sortByAmount() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'amount', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      sortByAmountDesc() {
+  sortByAmountDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'amount', Sort.desc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      sortByName() {
+  sortByName() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'name', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      sortByNameDesc() {
+  sortByNameDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'name', Sort.desc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      sortByRecurring() {
+  sortByRecurring() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'recurring', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      sortByRecurringDesc() {
+  sortByRecurringDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'recurring', Sort.desc);
     });
@@ -586,56 +612,56 @@ extension TransactionTemplateQuerySortBy
 extension TransactionTemplateQuerySortThenBy
     on QueryBuilder<TransactionTemplate, TransactionTemplate, QSortThenBy> {
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByAmount() {
+  thenByAmount() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'amount', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByAmountDesc() {
+  thenByAmountDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'amount', Sort.desc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenById() {
+  thenById() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'id', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByIdDesc() {
+  thenByIdDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'id', Sort.desc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByName() {
+  thenByName() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'name', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByNameDesc() {
+  thenByNameDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'name', Sort.desc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByRecurring() {
+  thenByRecurring() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'recurring', Sort.asc);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterSortBy>
-      thenByRecurringDesc() {
+  thenByRecurringDesc() {
     return QueryBuilder.apply(this, (query) {
       return query.addSortBy(r'recurring', Sort.desc);
     });
@@ -645,21 +671,21 @@ extension TransactionTemplateQuerySortThenBy
 extension TransactionTemplateQueryWhereDistinct
     on QueryBuilder<TransactionTemplate, TransactionTemplate, QDistinct> {
   QueryBuilder<TransactionTemplate, TransactionTemplate, QDistinct>
-      distinctByAmount() {
+  distinctByAmount() {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'amount');
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QDistinct>
-      distinctByName({bool caseSensitive = true}) {
+  distinctByName({bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
     });
   }
 
   QueryBuilder<TransactionTemplate, TransactionTemplate, QDistinct>
-      distinctByRecurring() {
+  distinctByRecurring() {
     return QueryBuilder.apply(this, (query) {
       return query.addDistinctBy(r'recurring');
     });
@@ -687,7 +713,7 @@ extension TransactionTemplateQueryProperty
   }
 
   QueryBuilder<TransactionTemplate, bool, QQueryOperations>
-      recurringProperty() {
+  recurringProperty() {
     return QueryBuilder.apply(this, (query) {
       return query.addPropertyName(r'recurring');
     });
diff --git a/lib/database/collections/transaction.g.dart b/lib/database/collections/transaction.g.dart
index 38a53da..491ba9c 100644
--- a/lib/database/collections/transaction.g.dart
+++ b/lib/database/collections/transaction.g.dart
@@ -17,21 +17,9 @@ const TransactionSchema = CollectionSchema(
   name: r'Transaction',
   id: 5320225499417954855,
   properties: {
-    r'amount': PropertySchema(
-      id: 0,
-      name: r'amount',
-      type: IsarType.double,
-    ),
-    r'date': PropertySchema(
-      id: 1,
-      name: r'date',
-      type: IsarType.dateTime,
-    ),
-    r'tags': PropertySchema(
-      id: 2,
-      name: r'tags',
-      type: IsarType.stringList,
-    )
+    r'amount': PropertySchema(id: 0, name: r'amount', type: IsarType.double),
+    r'date': PropertySchema(id: 1, name: r'date', type: IsarType.dateTime),
+    r'tags': PropertySchema(id: 2, name: r'tags', type: IsarType.stringList),
   },
   estimateSize: _transactionEstimateSize,
   serialize: _transactionSerialize,
@@ -57,7 +45,7 @@ const TransactionSchema = CollectionSchema(
       name: r'beneficiary',
       target: r'Beneficiary',
       single: true,
-    )
+    ),
   },
   embeddedSchemas: {},
   getId: _transactionGetId,
@@ -134,13 +122,24 @@ List<IsarLinkBase<dynamic>> _transactionGetLinks(Transaction object) {
 }
 
 void _transactionAttach(
-    IsarCollection<dynamic> col, Id id, Transaction object) {
+  IsarCollection<dynamic> col,
+  Id id,
+  Transaction object,
+) {
   object.id = id;
   object.expenseCategory.attach(
-      col, col.isar.collection<ExpenseCategory>(), r'expenseCategory', id);
+    col,
+    col.isar.collection<ExpenseCategory>(),
+    r'expenseCategory',
+    id,
+  );
   object.account.attach(col, col.isar.collection<Account>(), r'account', id);
-  object.beneficiary
-      .attach(col, col.isar.collection<Beneficiary>(), r'beneficiary', id);
+  object.beneficiary.attach(
+    col,
+    col.isar.collection<Beneficiary>(),
+    r'beneficiary',
+    id,
+  );
 }
 
 extension TransactionQueryWhereSort
@@ -156,15 +155,13 @@ extension TransactionQueryWhere
     on QueryBuilder<Transaction, Transaction, QWhereClause> {
   QueryBuilder<Transaction, Transaction, QAfterWhereClause> idEqualTo(Id id) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: id,
-        upper: id,
-      ));
+      return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterWhereClause> idNotEqualTo(
-      Id id) {
+    Id id,
+  ) {
     return QueryBuilder.apply(this, (query) {
       if (query.whereSort == Sort.asc) {
         return query
@@ -186,8 +183,10 @@ extension TransactionQueryWhere
     });
   }
 
-  QueryBuilder<Transaction, Transaction, QAfterWhereClause> idGreaterThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Transaction, Transaction, QAfterWhereClause> idGreaterThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.greaterThan(lower: id, includeLower: include),
@@ -195,8 +194,10 @@ extension TransactionQueryWhere
     });
   }
 
-  QueryBuilder<Transaction, Transaction, QAfterWhereClause> idLessThan(Id id,
-      {bool include = false}) {
+  QueryBuilder<Transaction, Transaction, QAfterWhereClause> idLessThan(
+    Id id, {
+    bool include = false,
+  }) {
     return QueryBuilder.apply(this, (query) {
       return query.addWhereClause(
         IdWhereClause.lessThan(upper: id, includeUpper: include),
@@ -211,12 +212,14 @@ extension TransactionQueryWhere
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addWhereClause(IdWhereClause.between(
-        lower: lowerId,
-        includeLower: includeLower,
-        upper: upperId,
-        includeUpper: includeUpper,
-      ));
+      return query.addWhereClause(
+        IdWhereClause.between(
+          lower: lowerId,
+          includeLower: includeLower,
+          upper: upperId,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 }
@@ -228,27 +231,31 @@ extension TransactionQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      amountGreaterThan(
+  amountGreaterThan(
     double value, {
     bool include = false,
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -258,12 +265,14 @@ extension TransactionQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'amount',
-        value: value,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'amount',
+          value: value,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
@@ -275,24 +284,26 @@ extension TransactionQueryFilter
     double epsilon = Query.epsilon,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'amount',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        epsilon: epsilon,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'amount',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          epsilon: epsilon,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition> dateEqualTo(
-      DateTime value) {
+    DateTime value,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'date',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'date', value: value),
+      );
     });
   }
 
@@ -301,11 +312,13 @@ extension TransactionQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'date',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'date',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -314,11 +327,13 @@ extension TransactionQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'date',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'date',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -329,23 +344,25 @@ extension TransactionQueryFilter
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'date',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'date',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition> idEqualTo(
-      Id value) {
+    Id value,
+  ) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'id', value: value),
+      );
     });
   }
 
@@ -354,11 +371,13 @@ extension TransactionQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -367,11 +386,13 @@ extension TransactionQueryFilter
     bool include = false,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'id',
-        value: value,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'id',
+          value: value,
+        ),
+      );
     });
   }
 
@@ -382,64 +403,69 @@ extension TransactionQueryFilter
     bool includeUpper = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'id',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'id',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementEqualTo(
-    String value, {
-    bool caseSensitive = true,
-  }) {
+  tagsElementEqualTo(String value, {bool caseSensitive = true}) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'tags',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.equalTo(
+          property: r'tags',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementGreaterThan(
+  tagsElementGreaterThan(
     String value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        include: include,
-        property: r'tags',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(
+          include: include,
+          property: r'tags',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementLessThan(
+  tagsElementLessThan(
     String value, {
     bool include = false,
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.lessThan(
-        include: include,
-        property: r'tags',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
+      return query.addFilterCondition(
+        FilterCondition.lessThan(
+          include: include,
+          property: r'tags',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementBetween(
+  tagsElementBetween(
     String lower,
     String upper, {
     bool includeLower = true,
@@ -447,159 +473,125 @@ extension TransactionQueryFilter
     bool caseSensitive = true,
   }) {
     return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.between(
-        property: r'tags',
-        lower: lower,
-        includeLower: includeLower,
-        upper: upper,
-        includeUpper: includeUpper,
-        caseSensitive: caseSensitive,
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementStartsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
-    return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.startsWith(
-        property: r'tags',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementEndsWith(
-    String value, {
-    bool caseSensitive = true,
-  }) {
-    return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.endsWith(
-        property: r'tags',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementContains(String value, {bool caseSensitive = true}) {
-    return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.contains(
-        property: r'tags',
-        value: value,
-        caseSensitive: caseSensitive,
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementMatches(String pattern, {bool caseSensitive = true}) {
-    return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.matches(
-        property: r'tags',
-        wildcard: pattern,
-        caseSensitive: caseSensitive,
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementIsEmpty() {
-    return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.equalTo(
-        property: r'tags',
-        value: '',
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsElementIsNotEmpty() {
-    return QueryBuilder.apply(this, (query) {
-      return query.addFilterCondition(FilterCondition.greaterThan(
-        property: r'tags',
-        value: '',
-      ));
-    });
-  }
-
-  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsLengthEqualTo(int length) {
-    return QueryBuilder.apply(this, (query) {
-      return query.listLength(
-        r'tags',
-        length,
-        true,
-        length,
-        true,
+      return query.addFilterCondition(
+        FilterCondition.between(
+          property: r'tags',
+          lower: lower,
+          includeLower: includeLower,
+          upper: upper,
+          includeUpper: includeUpper,
+          caseSensitive: caseSensitive,
+        ),
       );
     });
   }
 
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsElementStartsWith(String value, {bool caseSensitive = true}) {
+    return QueryBuilder.apply(this, (query) {
+      return query.addFilterCondition(
+        FilterCondition.startsWith(
+          property: r'tags',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
+    });
+  }
+
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsElementEndsWith(String value, {bool caseSensitive = true}) {
+    return QueryBuilder.apply(this, (query) {
+      return query.addFilterCondition(
+        FilterCondition.endsWith(
+          property: r'tags',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
+    });
+  }
+
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsElementContains(String value, {bool caseSensitive = true}) {
+    return QueryBuilder.apply(this, (query) {
+      return query.addFilterCondition(
+        FilterCondition.contains(
+          property: r'tags',
+          value: value,
+          caseSensitive: caseSensitive,
+        ),
+      );
+    });
+  }
+
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsElementMatches(String pattern, {bool caseSensitive = true}) {
+    return QueryBuilder.apply(this, (query) {
+      return query.addFilterCondition(
+        FilterCondition.matches(
+          property: r'tags',
+          wildcard: pattern,
+          caseSensitive: caseSensitive,
+        ),
+      );
+    });
+  }
+
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsElementIsEmpty() {
+    return QueryBuilder.apply(this, (query) {
+      return query.addFilterCondition(
+        FilterCondition.equalTo(property: r'tags', value: ''),
+      );
+    });
+  }
+
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsElementIsNotEmpty() {
+    return QueryBuilder.apply(this, (query) {
+      return query.addFilterCondition(
+        FilterCondition.greaterThan(property: r'tags', value: ''),
+      );
+    });
+  }
+
+  QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
+  tagsLengthEqualTo(int length) {
+    return QueryBuilder.apply(this, (query) {
+      return query.listLength(r'tags', length, true, length, true);
+    });
+  }
+
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition> tagsIsEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.listLength(
-        r'tags',
-        0,
-        true,
-        0,
-        true,
-      );
+      return query.listLength(r'tags', 0, true, 0, true);
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsIsNotEmpty() {
+  tagsIsNotEmpty() {
     return QueryBuilder.apply(this, (query) {
-      return query.listLength(
-        r'tags',
-        0,
-        false,
-        999999,
-        true,
-      );
+      return query.listLength(r'tags', 0, false, 999999, true);
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsLengthLessThan(
-    int length, {
-    bool include = false,
-  }) {
+  tagsLengthLessThan(int length, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.listLength(
-        r'tags',
-        0,
-        true,
-        length,
-        include,
-      );
+      return query.listLength(r'tags', 0, true, length, include);
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsLengthGreaterThan(
-    int length, {
-    bool include = false,
-  }) {
+  tagsLengthGreaterThan(int length, {bool include = false}) {
     return QueryBuilder.apply(this, (query) {
-      return query.listLength(
-        r'tags',
-        length,
-        include,
-        999999,
-        true,
-      );
+      return query.listLength(r'tags', length, include, 999999, true);
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      tagsLengthBetween(
+  tagsLengthBetween(
     int lower,
     int upper, {
     bool includeLower = true,
@@ -623,42 +615,45 @@ extension TransactionQueryObject
 extension TransactionQueryLinks
     on QueryBuilder<Transaction, Transaction, QFilterCondition> {
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition> expenseCategory(
-      FilterQuery<ExpenseCategory> q) {
+    FilterQuery<ExpenseCategory> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'expenseCategory');
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      expenseCategoryIsNull() {
+  expenseCategoryIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'expenseCategory', 0, true, 0, true);
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition> account(
-      FilterQuery<Account> q) {
+    FilterQuery<Account> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'account');
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      accountIsNull() {
+  accountIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'account', 0, true, 0, true);
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition> beneficiary(
-      FilterQuery<Beneficiary> q) {
+    FilterQuery<Beneficiary> q,
+  ) {
     return QueryBuilder.apply(this, (query) {
       return query.link(q, r'beneficiary');
     });
   }
 
   QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
-      beneficiaryIsNull() {
+  beneficiaryIsNull() {
     return QueryBuilder.apply(this, (query) {
       return query.linkLength(r'beneficiary', 0, true, 0, true);
     });
diff --git a/lib/database/database.dart b/lib/database/database.dart
index 8b56f19..b3d967c 100644
--- a/lib/database/database.dart
+++ b/lib/database/database.dart
@@ -2,6 +2,7 @@ import 'dart:async';
 
 import 'package:isar/isar.dart';
 import 'package:get_it/get_it.dart';
+import 'package:more/collection.dart';
 import 'package:okane/database/collections/account.dart';
 import 'package:okane/database/collections/beneficiary.dart';
 import 'package:okane/database/collections/expense_category.dart';
@@ -286,3 +287,43 @@ Future<List<Transaction>> getTransactionsInTimeframe(
       .dateBetween(lower, upper)
       .findAll();
 }
+
+Future<void> deleteAccount(Account account) async {
+  final db = GetIt.I.get<Isar>();
+  final affectedBudgets =
+      await db.budgets
+          .filter()
+          .account((q) => q.idEqualTo(account.id))
+          .findAll();
+  final budgetIds = affectedBudgets.map((a) => a.id).toList();
+  final budgetItemIds =
+      affectedBudgets.map((a) => a.items.map((i) => i.id)).flatten().toList();
+  return db.writeTxn(() async {
+    // Remove transactions
+    await db.transactions
+        .filter()
+        .account((q) => q.idEqualTo(account.id))
+        .deleteAll();
+    await db.beneficiarys
+        .filter()
+        .account((q) => q.idEqualTo(account.id))
+        .deleteAll();
+
+    // Remove templates
+    await db.recurringTransactions
+        .filter()
+        .account((q) => q.idEqualTo(account.id))
+        .deleteAll();
+    await db.transactionTemplates
+        .filter()
+        .account((q) => q.idEqualTo(account.id))
+        .deleteAll();
+
+    // Remove all budgets
+    await db.budgetItems.deleteAll(budgetItemIds);
+    await db.budgets.deleteAll(budgetIds);
+
+    // Remove account
+    await db.accounts.delete(account.id);
+  });
+}
diff --git a/lib/main.dart b/lib/main.dart
index ca3a557..1ee236a 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -48,7 +48,8 @@ class MyApp extends StatelessWidget {
                   brightness: switch (state.settings.colorScheme) {
                     ColorSchemeSettings.dark => Brightness.dark,
                     ColorSchemeSettings.light => Brightness.light,
-                    ColorSchemeSettings.system => View.of(context).platformDispatcher.platformBrightness,
+                    ColorSchemeSettings.system =>
+                      View.of(context).platformDispatcher.platformBrightness,
                   },
                   pageTransitionsTheme: PageTransitionsTheme(
                     builders: Map.fromIterable(
diff --git a/lib/ui/navigation.dart b/lib/ui/navigation.dart
index f59a087..c667702 100644
--- a/lib/ui/navigation.dart
+++ b/lib/ui/navigation.dart
@@ -12,7 +12,14 @@ import 'package:okane/ui/pages/transaction_list.dart';
 import 'package:okane/ui/state/core.dart';
 import 'package:okane/ui/widgets/account_indicator.dart';
 
-enum OkanePage { accounts, transactions, beneficiaries, templates, budgets, settings }
+enum OkanePage {
+  accounts,
+  transactions,
+  beneficiaries,
+  templates,
+  budgets,
+  settings,
+}
 
 typedef OkanePageBuilder = Widget Function(bool);
 
diff --git a/lib/ui/pages/account/account.dart b/lib/ui/pages/account/account.dart
index 127da94..165d082 100644
--- a/lib/ui/pages/account/account.dart
+++ b/lib/ui/pages/account/account.dart
@@ -5,12 +5,11 @@ import 'package:okane/database/collections/account.dart';
 import 'package:okane/database/collections/beneficiary.dart';
 import 'package:okane/database/database.dart';
 import 'package:okane/ui/pages/account/breakdown_card.dart';
+import 'package:okane/ui/pages/account/delete_account.dart';
 import 'package:okane/ui/pages/account/total_balance_card.dart';
 import 'package:okane/ui/pages/account/upcoming_transactions_card.dart';
 import 'package:okane/ui/state/core.dart';
 import 'package:okane/ui/utils.dart';
-import 'package:okane/ui/widgets/piechart.dart';
-import 'package:okane/ui/widgets/piechart_card.dart';
 
 class AccountListPage extends StatefulWidget {
   final bool isPage;
@@ -26,6 +25,7 @@ class AccountListPageState extends State<AccountListPage> {
 
   @override
   Widget build(BuildContext context) {
+    final bloc = GetIt.I.get<CoreCubit>();
     return Stack(
       children: [
         ListView(
@@ -38,6 +38,79 @@ class AccountListPageState extends State<AccountListPage> {
               ),
             ),
 
+            Padding(
+              padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
+              child: BlocBuilder<CoreCubit, CoreState>(
+                builder:
+                    (context, state) => Row(
+                      children: [
+                        OutlinedButton(
+                          onPressed:
+                              state.accounts.isEmpty
+                                  ? null
+                                  : () {
+                                    showDialogOrModal(
+                                      context: context,
+                                      builder:
+                                          (context) => ListView.builder(
+                                            shrinkWrap: true,
+                                            itemCount: state.accounts.length,
+                                            itemBuilder: (context, index) {
+                                              final item =
+                                                  state.accounts[index];
+                                              return ListTile(
+                                                title: Text(item.name!),
+                                                trailing: IconButton(
+                                                  icon: Icon(Icons.delete),
+                                                  color: Colors.red,
+                                                  onPressed: () async {
+                                                    await showDialog(
+                                                      context: context,
+                                                      barrierDismissible: false,
+                                                      builder:
+                                                          (context) =>
+                                                              DeleteAccountPopup(
+                                                                account: item,
+                                                                onCancel: () {
+                                                                  Navigator.of(
+                                                                    context,
+                                                                  ).pop();
+                                                                  Navigator.of(
+                                                                    context,
+                                                                  ).pop();
+                                                                },
+                                                                afterDelete: () {
+                                                                  Navigator.of(
+                                                                    context,
+                                                                  ).pop();
+                                                                  Navigator.of(
+                                                                    context,
+                                                                  ).pop();
+                                                                },
+                                                              ),
+                                                    );
+                                                  },
+                                                ),
+                                                onTap: () {
+                                                  GetIt.I
+                                                      .get<CoreCubit>()
+                                                      .setActiveAccountIndex(
+                                                        index,
+                                                      );
+                                                  Navigator.of(context).pop();
+                                                },
+                                              );
+                                            },
+                                          ),
+                                    );
+                                  },
+                          child: Text(bloc.activeAccount?.name ?? "None"),
+                        ),
+                      ],
+                    ),
+              ),
+            ),
+
             Padding(
               padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
               child: BlocBuilder<CoreCubit, CoreState>(
@@ -66,34 +139,26 @@ class AccountListPageState extends State<AccountListPage> {
                                             ),
                                           )
                                           : null,
-                                  child: InkWell(
-                                    onTap: () {
-                                      GetIt.I
-                                          .get<CoreCubit>()
-                                          .setActiveAccountIndex(index);
-                                    },
-                                    borderRadius: BorderRadius.circular(12),
-                                    child: Center(
-                                      child: Column(
-                                        mainAxisSize: MainAxisSize.min,
-                                        children: [
-                                          Text(state.accounts[index].name!),
-                                          FutureBuilder(
-                                            future: getTotalBalance(
-                                              state.accounts[index],
-                                            ),
-                                            builder: (context, snapshot) {
-                                              if (!snapshot.hasData) {
-                                                return Container();
-                                              }
-
-                                              return Text(
-                                                formatCurrency(snapshot.data!),
-                                              );
-                                            },
+                                  child: Center(
+                                    child: Column(
+                                      mainAxisSize: MainAxisSize.min,
+                                      children: [
+                                        Text(state.accounts[index].name!),
+                                        FutureBuilder(
+                                          future: getTotalBalance(
+                                            state.accounts[index],
                                           ),
-                                        ],
-                                      ),
+                                          builder: (context, snapshot) {
+                                            if (!snapshot.hasData) {
+                                              return Container();
+                                            }
+
+                                            return Text(
+                                              formatCurrency(snapshot.data!),
+                                            );
+                                          },
+                                        ),
+                                      ],
                                     ),
                                   ),
                                 ),
diff --git a/lib/ui/pages/account/delete_account.dart b/lib/ui/pages/account/delete_account.dart
new file mode 100644
index 0000000..cf2c7cd
--- /dev/null
+++ b/lib/ui/pages/account/delete_account.dart
@@ -0,0 +1,66 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:get_it/get_it.dart';
+import 'package:okane/database/collections/account.dart';
+import 'package:okane/ui/state/core.dart';
+
+class DeleteAccountPopup extends StatelessWidget {
+  final Account account;
+
+  final VoidCallback onCancel;
+  final VoidCallback afterDelete;
+
+  const DeleteAccountPopup({
+    super.key,
+    required this.account,
+    required this.onCancel,
+    required this.afterDelete,
+  });
+
+  @override
+  Widget build(BuildContext context) {
+    return BlocBuilder<CoreCubit, CoreState>(
+      builder:
+          (context, state) => AlertDialog(
+            title: Text("Delete Account"),
+            content:
+                state.isDeletingAccount
+                    ? Row(
+                      mainAxisSize: MainAxisSize.min,
+                      mainAxisAlignment: MainAxisAlignment.center,
+                      children: [
+                        SizedBox(
+                          width: 80,
+                          height: 80,
+                          child: CircularProgressIndicator(),
+                        ),
+                      ],
+                    )
+                    : Text(
+                      "Are you sure you want to delete the account '${account.name!}'? This will delete all transactions as well.",
+                    ),
+            actions: [
+              TextButton(
+                onPressed:
+                    state.isDeletingAccount
+                        ? null
+                        : () async {
+                          await GetIt.I.get<CoreCubit>().deleteAccount(account);
+                          afterDelete();
+                        },
+                child: Text("Delete", style: TextStyle(color: Colors.red)),
+              ),
+              TextButton(
+                onPressed:
+                    state.isDeletingAccount
+                        ? null
+                        : () {
+                          onCancel();
+                        },
+                child: Text("Cancel"),
+              ),
+            ],
+          ),
+    );
+  }
+}
diff --git a/lib/ui/pages/beneficiary_list.dart b/lib/ui/pages/beneficiary_list.dart
index ad99c77..639412c 100644
--- a/lib/ui/pages/beneficiary_list.dart
+++ b/lib/ui/pages/beneficiary_list.dart
@@ -17,10 +17,7 @@ class BeneficiaryListPage extends StatelessWidget {
               itemBuilder: (context, index) {
                 final item = state.beneficiaries[index];
                 return ListTile(
-                  leading: ImageWrapper(
-                      title: item.name,
-                      path: item.imagePath,
-                  ),
+                  leading: ImageWrapper(title: item.name, path: item.imagePath),
                   title: Text(item.name),
                 );
               },
diff --git a/lib/ui/pages/settings.dart b/lib/ui/pages/settings.dart
index c9e1f55..2531ed4 100644
--- a/lib/ui/pages/settings.dart
+++ b/lib/ui/pages/settings.dart
@@ -30,7 +30,10 @@ class SettingsPage extends StatelessWidget {
                               ColorSchemeSettings.values
                                   .map(
                                     (s) => ListTile(
-                                      leading: state.settings.colorScheme == s ? Icon(Icons.check) : null,
+                                      leading:
+                                          state.settings.colorScheme == s
+                                              ? Icon(Icons.check)
+                                              : null,
                                       title: Text(switch (s) {
                                         ColorSchemeSettings.dark => "Dark",
                                         ColorSchemeSettings.light => "Light",
diff --git a/lib/ui/state/core.dart b/lib/ui/state/core.dart
index 2ce84e8..1f777ee 100644
--- a/lib/ui/state/core.dart
+++ b/lib/ui/state/core.dart
@@ -1,5 +1,4 @@
 import 'dart:async';
-
 import 'package:bloc/bloc.dart';
 import 'package:freezed_annotation/freezed_annotation.dart';
 import 'package:okane/database/collections/account.dart';
@@ -9,7 +8,7 @@ import 'package:okane/database/collections/expense_category.dart';
 import 'package:okane/database/collections/recurrent.dart';
 import 'package:okane/database/collections/template.dart';
 import 'package:okane/database/collections/transaction.dart';
-import 'package:okane/database/database.dart';
+import 'package:okane/database/database.dart' as db;
 import 'package:okane/ui/navigation.dart';
 
 part 'core.freezed.dart';
@@ -28,6 +27,7 @@ abstract class CoreState with _$CoreState {
     @Default([]) List<ExpenseCategory> expenseCategories,
     @Default([]) List<Budget> budgets,
     @Default(null) Budget? activeBudget,
+    @Default(false) bool isDeletingAccount,
   }) = _CoreState;
 }
 
@@ -44,9 +44,9 @@ class CoreCubit extends Cubit<CoreState> {
 
   void setupAccountStream() {
     _accountsStreamSubscription?.cancel();
-    _accountsStreamSubscription = watchAccounts().listen((_) async {
+    _accountsStreamSubscription = db.watchAccounts().listen((_) async {
       final resetStreams = state.activeAccountIndex == null;
-      final accounts = await getAccounts();
+      final accounts = await db.getAccounts();
       emit(
         state.copyWith(
           accounts: accounts,
@@ -63,61 +63,83 @@ class CoreCubit extends Cubit<CoreState> {
   void setupStreams(Account account) {
     setupAccountStream();
     _recurringTransactionStreamSubscription?.cancel();
-    _recurringTransactionStreamSubscription = watchRecurringTransactions(
-      activeAccount!,
-    ).listen((_) async {
-      print("RECURRING UPDATE");
-      emit(
-        state.copyWith(
-          recurringTransactions: await getRecurringTransactions(activeAccount!),
-        ),
-      );
-    });
+    _recurringTransactionStreamSubscription = db
+        .watchRecurringTransactions(activeAccount!)
+        .listen((_) async {
+          print("RECURRING UPDATE");
+          emit(
+            state.copyWith(
+              recurringTransactions: await db.getRecurringTransactions(
+                activeAccount!,
+              ),
+            ),
+          );
+        });
     _transactionTemplatesStreamSubcription?.cancel();
-    _transactionTemplatesStreamSubcription = watchTransactionTemplates(
-      activeAccount!,
-    ).listen((_) async {
-      emit(
-        state.copyWith(
-          transactionTemplates: await getTransactionTemplates(activeAccount!),
-        ),
-      );
-    });
+    _transactionTemplatesStreamSubcription = db
+        .watchTransactionTemplates(activeAccount!)
+        .listen((_) async {
+          emit(
+            state.copyWith(
+              transactionTemplates: await db.getTransactionTemplates(
+                activeAccount!,
+              ),
+            ),
+          );
+        });
     _transactionsStreamSubscription?.cancel();
-    _transactionsStreamSubscription = watchTransactions(activeAccount!).listen((
+    _transactionsStreamSubscription = db
+        .watchTransactions(activeAccount!)
+        .listen((_) async {
+          emit(
+            state.copyWith(
+              transactions: await db.getTransactions(activeAccount!),
+            ),
+          );
+        });
+    _beneficiariesStreamSubscription?.cancel();
+    _beneficiariesStreamSubscription = db.watchBeneficiaries().listen((
       _,
     ) async {
-      emit(state.copyWith(transactions: await getTransactions(activeAccount!)));
-    });
-    _beneficiariesStreamSubscription?.cancel();
-    _beneficiariesStreamSubscription = watchBeneficiaries().listen((_) async {
-      emit(state.copyWith(beneficiaries: await getBeneficiaries()));
+      emit(state.copyWith(beneficiaries: await db.getBeneficiaries()));
     });
     _expenseCategoryStreamSubscription?.cancel();
-    _expenseCategoryStreamSubscription = watchExpenseCategory().listen((
+    _expenseCategoryStreamSubscription = db.watchExpenseCategory().listen((
       _,
     ) async {
-      emit(state.copyWith(expenseCategories: await getExpenseCategories()));
+      emit(state.copyWith(expenseCategories: await db.getExpenseCategories()));
     });
     _budgetsStreamSubscription?.cancel();
-    _budgetsStreamSubscription = watchBudgets(activeAccount!).listen((_) async {
-      emit(state.copyWith(budgets: await getBudgets(activeAccount!)));
+    _budgetsStreamSubscription = db.watchBudgets(activeAccount!).listen((
+      _,
+    ) async {
+      emit(state.copyWith(budgets: await db.getBudgets(activeAccount!)));
     });
   }
 
+  void cancelStreams() {
+    _recurringTransactionStreamSubscription?.cancel();
+    _accountsStreamSubscription?.cancel();
+    _beneficiariesStreamSubscription?.cancel();
+    _budgetsStreamSubscription?.cancel();
+    _expenseCategoryStreamSubscription?.cancel();
+    _transactionsStreamSubscription?.cancel();
+    _transactionTemplatesStreamSubcription?.cancel();
+  }
+
   Future<void> init() async {
-    final accounts = await getAccounts();
+    final accounts = await db.getAccounts();
     final account = accounts.isEmpty ? null : accounts[0];
     emit(
       state.copyWith(
         accounts: accounts,
         activeAccountIndex: accounts.isEmpty ? null : 0,
-        transactions: await getTransactions(account),
-        beneficiaries: await getBeneficiaries(),
-        transactionTemplates: await getTransactionTemplates(account),
-        recurringTransactions: await getRecurringTransactions(account),
-        expenseCategories: await getExpenseCategories(),
-        budgets: await getBudgets(account),
+        transactions: await db.getTransactions(account),
+        beneficiaries: await db.getBeneficiaries(),
+        transactionTemplates: await db.getTransactionTemplates(account),
+        recurringTransactions: await db.getRecurringTransactions(account),
+        expenseCategories: await db.getExpenseCategories(),
+        budgets: await db.getBudgets(account),
       ),
     );
 
@@ -138,11 +160,11 @@ class CoreCubit extends Cubit<CoreState> {
     emit(
       state.copyWith(
         activeAccountIndex: index,
-        transactions: await getTransactions(account),
-        beneficiaries: await getBeneficiaries(),
-        transactionTemplates: await getTransactionTemplates(account),
-        recurringTransactions: await getRecurringTransactions(account),
-        budgets: await getBudgets(account),
+        transactions: await db.getTransactions(account),
+        beneficiaries: await db.getBeneficiaries(),
+        transactionTemplates: await db.getTransactionTemplates(account),
+        recurringTransactions: await db.getRecurringTransactions(account),
+        budgets: await db.getBudgets(account),
         activeBudget: null,
         activeTransaction: null,
       ),
@@ -162,6 +184,21 @@ class CoreCubit extends Cubit<CoreState> {
     emit(state.copyWith(activeBudget: budget));
   }
 
+  Future<void> deleteAccount(Account account) async {
+    final l = List.of(state.accounts);
+    l.removeWhere((a) => a.id == account.id);
+    final newIndex = l.isEmpty ? null : 0;
+    emit(state.copyWith(activeAccountIndex: newIndex, isDeletingAccount: true));
+
+    cancelStreams();
+    try {
+      await db.deleteAccount(account);
+    } finally {
+      emit(state.copyWith(isDeletingAccount: false));
+    }
+    await init();
+  }
+
   Account? get activeAccount =>
       state.activeAccountIndex == null
           ? null
diff --git a/lib/ui/state/core.freezed.dart b/lib/ui/state/core.freezed.dart
index 02f41e5..765897a 100644
--- a/lib/ui/state/core.freezed.dart
+++ b/lib/ui/state/core.freezed.dart
@@ -12,7 +12,8 @@ part of 'core.dart';
 T _$identity<T>(T value) => value;
 
 final _privateConstructorUsedError = UnsupportedError(
-    'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
+  'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models',
+);
 
 /// @nodoc
 mixin _$CoreState {
@@ -30,6 +31,7 @@ mixin _$CoreState {
       throw _privateConstructorUsedError;
   List<Budget> get budgets => throw _privateConstructorUsedError;
   Budget? get activeBudget => throw _privateConstructorUsedError;
+  bool get isDeletingAccount => throw _privateConstructorUsedError;
 
   @JsonKey(ignore: true)
   $CoreStateCopyWith<CoreState> get copyWith =>
@@ -41,18 +43,20 @@ abstract class $CoreStateCopyWith<$Res> {
   factory $CoreStateCopyWith(CoreState value, $Res Function(CoreState) then) =
       _$CoreStateCopyWithImpl<$Res, CoreState>;
   @useResult
-  $Res call(
-      {OkanePage activePage,
-      int? activeAccountIndex,
-      Transaction? activeTransaction,
-      List<Account> accounts,
-      List<RecurringTransaction> recurringTransactions,
-      List<Transaction> transactions,
-      List<TransactionTemplate> transactionTemplates,
-      List<Beneficiary> beneficiaries,
-      List<ExpenseCategory> expenseCategories,
-      List<Budget> budgets,
-      Budget? activeBudget});
+  $Res call({
+    OkanePage activePage,
+    int? activeAccountIndex,
+    Transaction? activeTransaction,
+    List<Account> accounts,
+    List<RecurringTransaction> recurringTransactions,
+    List<Transaction> transactions,
+    List<TransactionTemplate> transactionTemplates,
+    List<Beneficiary> beneficiaries,
+    List<ExpenseCategory> expenseCategories,
+    List<Budget> budgets,
+    Budget? activeBudget,
+    bool isDeletingAccount,
+  });
 }
 
 /// @nodoc
@@ -79,53 +83,73 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
     Object? expenseCategories = null,
     Object? budgets = null,
     Object? activeBudget = freezed,
+    Object? isDeletingAccount = null,
   }) {
-    return _then(_value.copyWith(
-      activePage: null == activePage
-          ? _value.activePage
-          : activePage // ignore: cast_nullable_to_non_nullable
-              as OkanePage,
-      activeAccountIndex: freezed == activeAccountIndex
-          ? _value.activeAccountIndex
-          : activeAccountIndex // ignore: cast_nullable_to_non_nullable
-              as int?,
-      activeTransaction: freezed == activeTransaction
-          ? _value.activeTransaction
-          : activeTransaction // ignore: cast_nullable_to_non_nullable
-              as Transaction?,
-      accounts: null == accounts
-          ? _value.accounts
-          : accounts // ignore: cast_nullable_to_non_nullable
-              as List<Account>,
-      recurringTransactions: null == recurringTransactions
-          ? _value.recurringTransactions
-          : recurringTransactions // ignore: cast_nullable_to_non_nullable
-              as List<RecurringTransaction>,
-      transactions: null == transactions
-          ? _value.transactions
-          : transactions // ignore: cast_nullable_to_non_nullable
-              as List<Transaction>,
-      transactionTemplates: null == transactionTemplates
-          ? _value.transactionTemplates
-          : transactionTemplates // ignore: cast_nullable_to_non_nullable
-              as List<TransactionTemplate>,
-      beneficiaries: null == beneficiaries
-          ? _value.beneficiaries
-          : beneficiaries // ignore: cast_nullable_to_non_nullable
-              as List<Beneficiary>,
-      expenseCategories: null == expenseCategories
-          ? _value.expenseCategories
-          : expenseCategories // ignore: cast_nullable_to_non_nullable
-              as List<ExpenseCategory>,
-      budgets: null == budgets
-          ? _value.budgets
-          : budgets // ignore: cast_nullable_to_non_nullable
-              as List<Budget>,
-      activeBudget: freezed == activeBudget
-          ? _value.activeBudget
-          : activeBudget // ignore: cast_nullable_to_non_nullable
-              as Budget?,
-    ) as $Val);
+    return _then(
+      _value.copyWith(
+            activePage:
+                null == activePage
+                    ? _value.activePage
+                    : activePage // ignore: cast_nullable_to_non_nullable
+                        as OkanePage,
+            activeAccountIndex:
+                freezed == activeAccountIndex
+                    ? _value.activeAccountIndex
+                    : activeAccountIndex // ignore: cast_nullable_to_non_nullable
+                        as int?,
+            activeTransaction:
+                freezed == activeTransaction
+                    ? _value.activeTransaction
+                    : activeTransaction // ignore: cast_nullable_to_non_nullable
+                        as Transaction?,
+            accounts:
+                null == accounts
+                    ? _value.accounts
+                    : accounts // ignore: cast_nullable_to_non_nullable
+                        as List<Account>,
+            recurringTransactions:
+                null == recurringTransactions
+                    ? _value.recurringTransactions
+                    : recurringTransactions // ignore: cast_nullable_to_non_nullable
+                        as List<RecurringTransaction>,
+            transactions:
+                null == transactions
+                    ? _value.transactions
+                    : transactions // ignore: cast_nullable_to_non_nullable
+                        as List<Transaction>,
+            transactionTemplates:
+                null == transactionTemplates
+                    ? _value.transactionTemplates
+                    : transactionTemplates // ignore: cast_nullable_to_non_nullable
+                        as List<TransactionTemplate>,
+            beneficiaries:
+                null == beneficiaries
+                    ? _value.beneficiaries
+                    : beneficiaries // ignore: cast_nullable_to_non_nullable
+                        as List<Beneficiary>,
+            expenseCategories:
+                null == expenseCategories
+                    ? _value.expenseCategories
+                    : expenseCategories // ignore: cast_nullable_to_non_nullable
+                        as List<ExpenseCategory>,
+            budgets:
+                null == budgets
+                    ? _value.budgets
+                    : budgets // ignore: cast_nullable_to_non_nullable
+                        as List<Budget>,
+            activeBudget:
+                freezed == activeBudget
+                    ? _value.activeBudget
+                    : activeBudget // ignore: cast_nullable_to_non_nullable
+                        as Budget?,
+            isDeletingAccount:
+                null == isDeletingAccount
+                    ? _value.isDeletingAccount
+                    : isDeletingAccount // ignore: cast_nullable_to_non_nullable
+                        as bool,
+          )
+          as $Val,
+    );
   }
 }
 
@@ -133,22 +157,25 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
 abstract class _$$CoreStateImplCopyWith<$Res>
     implements $CoreStateCopyWith<$Res> {
   factory _$$CoreStateImplCopyWith(
-          _$CoreStateImpl value, $Res Function(_$CoreStateImpl) then) =
-      __$$CoreStateImplCopyWithImpl<$Res>;
+    _$CoreStateImpl value,
+    $Res Function(_$CoreStateImpl) then,
+  ) = __$$CoreStateImplCopyWithImpl<$Res>;
   @override
   @useResult
-  $Res call(
-      {OkanePage activePage,
-      int? activeAccountIndex,
-      Transaction? activeTransaction,
-      List<Account> accounts,
-      List<RecurringTransaction> recurringTransactions,
-      List<Transaction> transactions,
-      List<TransactionTemplate> transactionTemplates,
-      List<Beneficiary> beneficiaries,
-      List<ExpenseCategory> expenseCategories,
-      List<Budget> budgets,
-      Budget? activeBudget});
+  $Res call({
+    OkanePage activePage,
+    int? activeAccountIndex,
+    Transaction? activeTransaction,
+    List<Account> accounts,
+    List<RecurringTransaction> recurringTransactions,
+    List<Transaction> transactions,
+    List<TransactionTemplate> transactionTemplates,
+    List<Beneficiary> beneficiaries,
+    List<ExpenseCategory> expenseCategories,
+    List<Budget> budgets,
+    Budget? activeBudget,
+    bool isDeletingAccount,
+  });
 }
 
 /// @nodoc
@@ -156,8 +183,9 @@ class __$$CoreStateImplCopyWithImpl<$Res>
     extends _$CoreStateCopyWithImpl<$Res, _$CoreStateImpl>
     implements _$$CoreStateImplCopyWith<$Res> {
   __$$CoreStateImplCopyWithImpl(
-      _$CoreStateImpl _value, $Res Function(_$CoreStateImpl) _then)
-      : super(_value, _then);
+    _$CoreStateImpl _value,
+    $Res Function(_$CoreStateImpl) _then,
+  ) : super(_value, _then);
 
   @pragma('vm:prefer-inline')
   @override
@@ -173,78 +201,98 @@ class __$$CoreStateImplCopyWithImpl<$Res>
     Object? expenseCategories = null,
     Object? budgets = null,
     Object? activeBudget = freezed,
+    Object? isDeletingAccount = null,
   }) {
-    return _then(_$CoreStateImpl(
-      activePage: null == activePage
-          ? _value.activePage
-          : activePage // ignore: cast_nullable_to_non_nullable
-              as OkanePage,
-      activeAccountIndex: freezed == activeAccountIndex
-          ? _value.activeAccountIndex
-          : activeAccountIndex // ignore: cast_nullable_to_non_nullable
-              as int?,
-      activeTransaction: freezed == activeTransaction
-          ? _value.activeTransaction
-          : activeTransaction // ignore: cast_nullable_to_non_nullable
-              as Transaction?,
-      accounts: null == accounts
-          ? _value._accounts
-          : accounts // ignore: cast_nullable_to_non_nullable
-              as List<Account>,
-      recurringTransactions: null == recurringTransactions
-          ? _value._recurringTransactions
-          : recurringTransactions // ignore: cast_nullable_to_non_nullable
-              as List<RecurringTransaction>,
-      transactions: null == transactions
-          ? _value._transactions
-          : transactions // ignore: cast_nullable_to_non_nullable
-              as List<Transaction>,
-      transactionTemplates: null == transactionTemplates
-          ? _value._transactionTemplates
-          : transactionTemplates // ignore: cast_nullable_to_non_nullable
-              as List<TransactionTemplate>,
-      beneficiaries: null == beneficiaries
-          ? _value._beneficiaries
-          : beneficiaries // ignore: cast_nullable_to_non_nullable
-              as List<Beneficiary>,
-      expenseCategories: null == expenseCategories
-          ? _value._expenseCategories
-          : expenseCategories // ignore: cast_nullable_to_non_nullable
-              as List<ExpenseCategory>,
-      budgets: null == budgets
-          ? _value._budgets
-          : budgets // ignore: cast_nullable_to_non_nullable
-              as List<Budget>,
-      activeBudget: freezed == activeBudget
-          ? _value.activeBudget
-          : activeBudget // ignore: cast_nullable_to_non_nullable
-              as Budget?,
-    ));
+    return _then(
+      _$CoreStateImpl(
+        activePage:
+            null == activePage
+                ? _value.activePage
+                : activePage // ignore: cast_nullable_to_non_nullable
+                    as OkanePage,
+        activeAccountIndex:
+            freezed == activeAccountIndex
+                ? _value.activeAccountIndex
+                : activeAccountIndex // ignore: cast_nullable_to_non_nullable
+                    as int?,
+        activeTransaction:
+            freezed == activeTransaction
+                ? _value.activeTransaction
+                : activeTransaction // ignore: cast_nullable_to_non_nullable
+                    as Transaction?,
+        accounts:
+            null == accounts
+                ? _value._accounts
+                : accounts // ignore: cast_nullable_to_non_nullable
+                    as List<Account>,
+        recurringTransactions:
+            null == recurringTransactions
+                ? _value._recurringTransactions
+                : recurringTransactions // ignore: cast_nullable_to_non_nullable
+                    as List<RecurringTransaction>,
+        transactions:
+            null == transactions
+                ? _value._transactions
+                : transactions // ignore: cast_nullable_to_non_nullable
+                    as List<Transaction>,
+        transactionTemplates:
+            null == transactionTemplates
+                ? _value._transactionTemplates
+                : transactionTemplates // ignore: cast_nullable_to_non_nullable
+                    as List<TransactionTemplate>,
+        beneficiaries:
+            null == beneficiaries
+                ? _value._beneficiaries
+                : beneficiaries // ignore: cast_nullable_to_non_nullable
+                    as List<Beneficiary>,
+        expenseCategories:
+            null == expenseCategories
+                ? _value._expenseCategories
+                : expenseCategories // ignore: cast_nullable_to_non_nullable
+                    as List<ExpenseCategory>,
+        budgets:
+            null == budgets
+                ? _value._budgets
+                : budgets // ignore: cast_nullable_to_non_nullable
+                    as List<Budget>,
+        activeBudget:
+            freezed == activeBudget
+                ? _value.activeBudget
+                : activeBudget // ignore: cast_nullable_to_non_nullable
+                    as Budget?,
+        isDeletingAccount:
+            null == isDeletingAccount
+                ? _value.isDeletingAccount
+                : isDeletingAccount // ignore: cast_nullable_to_non_nullable
+                    as bool,
+      ),
+    );
   }
 }
 
 /// @nodoc
 
 class _$CoreStateImpl implements _CoreState {
-  const _$CoreStateImpl(
-      {this.activePage = OkanePage.accounts,
-      this.activeAccountIndex,
-      this.activeTransaction = null,
-      final List<Account> accounts = const [],
-      final List<RecurringTransaction> recurringTransactions = const [],
-      final List<Transaction> transactions = const [],
-      final List<TransactionTemplate> transactionTemplates = const [],
-      final List<Beneficiary> beneficiaries = const [],
-      final List<ExpenseCategory> expenseCategories = const [],
-      final List<Budget> budgets = const [],
-      this.activeBudget = null})
-      : _accounts = accounts,
-        _recurringTransactions = recurringTransactions,
-        _transactions = transactions,
-        _transactionTemplates = transactionTemplates,
-        _beneficiaries = beneficiaries,
-        _expenseCategories = expenseCategories,
-        _budgets = budgets;
+  const _$CoreStateImpl({
+    this.activePage = OkanePage.accounts,
+    this.activeAccountIndex,
+    this.activeTransaction = null,
+    final List<Account> accounts = const [],
+    final List<RecurringTransaction> recurringTransactions = const [],
+    final List<Transaction> transactions = const [],
+    final List<TransactionTemplate> transactionTemplates = const [],
+    final List<Beneficiary> beneficiaries = const [],
+    final List<ExpenseCategory> expenseCategories = const [],
+    final List<Budget> budgets = const [],
+    this.activeBudget = null,
+    this.isDeletingAccount = false,
+  }) : _accounts = accounts,
+       _recurringTransactions = recurringTransactions,
+       _transactions = transactions,
+       _transactionTemplates = transactionTemplates,
+       _beneficiaries = beneficiaries,
+       _expenseCategories = expenseCategories,
+       _budgets = budgets;
 
   @override
   @JsonKey()
@@ -323,10 +371,13 @@ class _$CoreStateImpl implements _CoreState {
   @override
   @JsonKey()
   final Budget? activeBudget;
+  @override
+  @JsonKey()
+  final bool isDeletingAccount;
 
   @override
   String toString() {
-    return 'CoreState(activePage: $activePage, activeAccountIndex: $activeAccountIndex, activeTransaction: $activeTransaction, accounts: $accounts, recurringTransactions: $recurringTransactions, transactions: $transactions, transactionTemplates: $transactionTemplates, beneficiaries: $beneficiaries, expenseCategories: $expenseCategories, budgets: $budgets, activeBudget: $activeBudget)';
+    return 'CoreState(activePage: $activePage, activeAccountIndex: $activeAccountIndex, activeTransaction: $activeTransaction, accounts: $accounts, recurringTransactions: $recurringTransactions, transactions: $transactions, transactionTemplates: $transactionTemplates, beneficiaries: $beneficiaries, expenseCategories: $expenseCategories, budgets: $budgets, activeBudget: $activeBudget, isDeletingAccount: $isDeletingAccount)';
   }
 
   @override
@@ -341,35 +392,49 @@ class _$CoreStateImpl implements _CoreState {
             (identical(other.activeTransaction, activeTransaction) ||
                 other.activeTransaction == activeTransaction) &&
             const DeepCollectionEquality().equals(other._accounts, _accounts) &&
-            const DeepCollectionEquality()
-                .equals(other._recurringTransactions, _recurringTransactions) &&
-            const DeepCollectionEquality()
-                .equals(other._transactions, _transactions) &&
-            const DeepCollectionEquality()
-                .equals(other._transactionTemplates, _transactionTemplates) &&
-            const DeepCollectionEquality()
-                .equals(other._beneficiaries, _beneficiaries) &&
-            const DeepCollectionEquality()
-                .equals(other._expenseCategories, _expenseCategories) &&
+            const DeepCollectionEquality().equals(
+              other._recurringTransactions,
+              _recurringTransactions,
+            ) &&
+            const DeepCollectionEquality().equals(
+              other._transactions,
+              _transactions,
+            ) &&
+            const DeepCollectionEquality().equals(
+              other._transactionTemplates,
+              _transactionTemplates,
+            ) &&
+            const DeepCollectionEquality().equals(
+              other._beneficiaries,
+              _beneficiaries,
+            ) &&
+            const DeepCollectionEquality().equals(
+              other._expenseCategories,
+              _expenseCategories,
+            ) &&
             const DeepCollectionEquality().equals(other._budgets, _budgets) &&
             (identical(other.activeBudget, activeBudget) ||
-                other.activeBudget == activeBudget));
+                other.activeBudget == activeBudget) &&
+            (identical(other.isDeletingAccount, isDeletingAccount) ||
+                other.isDeletingAccount == isDeletingAccount));
   }
 
   @override
   int get hashCode => Object.hash(
-      runtimeType,
-      activePage,
-      activeAccountIndex,
-      activeTransaction,
-      const DeepCollectionEquality().hash(_accounts),
-      const DeepCollectionEquality().hash(_recurringTransactions),
-      const DeepCollectionEquality().hash(_transactions),
-      const DeepCollectionEquality().hash(_transactionTemplates),
-      const DeepCollectionEquality().hash(_beneficiaries),
-      const DeepCollectionEquality().hash(_expenseCategories),
-      const DeepCollectionEquality().hash(_budgets),
-      activeBudget);
+    runtimeType,
+    activePage,
+    activeAccountIndex,
+    activeTransaction,
+    const DeepCollectionEquality().hash(_accounts),
+    const DeepCollectionEquality().hash(_recurringTransactions),
+    const DeepCollectionEquality().hash(_transactions),
+    const DeepCollectionEquality().hash(_transactionTemplates),
+    const DeepCollectionEquality().hash(_beneficiaries),
+    const DeepCollectionEquality().hash(_expenseCategories),
+    const DeepCollectionEquality().hash(_budgets),
+    activeBudget,
+    isDeletingAccount,
+  );
 
   @JsonKey(ignore: true)
   @override
@@ -379,18 +444,20 @@ class _$CoreStateImpl implements _CoreState {
 }
 
 abstract class _CoreState implements CoreState {
-  const factory _CoreState(
-      {final OkanePage activePage,
-      final int? activeAccountIndex,
-      final Transaction? activeTransaction,
-      final List<Account> accounts,
-      final List<RecurringTransaction> recurringTransactions,
-      final List<Transaction> transactions,
-      final List<TransactionTemplate> transactionTemplates,
-      final List<Beneficiary> beneficiaries,
-      final List<ExpenseCategory> expenseCategories,
-      final List<Budget> budgets,
-      final Budget? activeBudget}) = _$CoreStateImpl;
+  const factory _CoreState({
+    final OkanePage activePage,
+    final int? activeAccountIndex,
+    final Transaction? activeTransaction,
+    final List<Account> accounts,
+    final List<RecurringTransaction> recurringTransactions,
+    final List<Transaction> transactions,
+    final List<TransactionTemplate> transactionTemplates,
+    final List<Beneficiary> beneficiaries,
+    final List<ExpenseCategory> expenseCategories,
+    final List<Budget> budgets,
+    final Budget? activeBudget,
+    final bool isDeletingAccount,
+  }) = _$CoreStateImpl;
 
   @override
   OkanePage get activePage;
@@ -415,6 +482,8 @@ abstract class _CoreState implements CoreState {
   @override
   Budget? get activeBudget;
   @override
+  bool get isDeletingAccount;
+  @override
   @JsonKey(ignore: true)
   _$$CoreStateImplCopyWith<_$CoreStateImpl> get copyWith =>
       throw _privateConstructorUsedError;
diff --git a/lib/ui/state/settings.freezed.dart b/lib/ui/state/settings.freezed.dart
index 75d47eb..f5cf9a2 100644
--- a/lib/ui/state/settings.freezed.dart
+++ b/lib/ui/state/settings.freezed.dart
@@ -12,7 +12,8 @@ part of 'settings.dart';
 T _$identity<T>(T value) => value;
 
 final _privateConstructorUsedError = UnsupportedError(
-    'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
+  'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models',
+);
 
 Settings _$SettingsFromJson(Map<String, dynamic> json) {
   return _Settings.fromJson(json);
@@ -48,15 +49,17 @@ class _$SettingsCopyWithImpl<$Res, $Val extends Settings>
 
   @pragma('vm:prefer-inline')
   @override
-  $Res call({
-    Object? colorScheme = null,
-  }) {
-    return _then(_value.copyWith(
-      colorScheme: null == colorScheme
-          ? _value.colorScheme
-          : colorScheme // ignore: cast_nullable_to_non_nullable
-              as ColorSchemeSettings,
-    ) as $Val);
+  $Res call({Object? colorScheme = null}) {
+    return _then(
+      _value.copyWith(
+            colorScheme:
+                null == colorScheme
+                    ? _value.colorScheme
+                    : colorScheme // ignore: cast_nullable_to_non_nullable
+                        as ColorSchemeSettings,
+          )
+          as $Val,
+    );
   }
 }
 
@@ -64,8 +67,9 @@ class _$SettingsCopyWithImpl<$Res, $Val extends Settings>
 abstract class _$$SettingsImplCopyWith<$Res>
     implements $SettingsCopyWith<$Res> {
   factory _$$SettingsImplCopyWith(
-          _$SettingsImpl value, $Res Function(_$SettingsImpl) then) =
-      __$$SettingsImplCopyWithImpl<$Res>;
+    _$SettingsImpl value,
+    $Res Function(_$SettingsImpl) then,
+  ) = __$$SettingsImplCopyWithImpl<$Res>;
   @override
   @useResult
   $Res call({ColorSchemeSettings colorScheme});
@@ -76,20 +80,22 @@ class __$$SettingsImplCopyWithImpl<$Res>
     extends _$SettingsCopyWithImpl<$Res, _$SettingsImpl>
     implements _$$SettingsImplCopyWith<$Res> {
   __$$SettingsImplCopyWithImpl(
-      _$SettingsImpl _value, $Res Function(_$SettingsImpl) _then)
-      : super(_value, _then);
+    _$SettingsImpl _value,
+    $Res Function(_$SettingsImpl) _then,
+  ) : super(_value, _then);
 
   @pragma('vm:prefer-inline')
   @override
-  $Res call({
-    Object? colorScheme = null,
-  }) {
-    return _then(_$SettingsImpl(
-      colorScheme: null == colorScheme
-          ? _value.colorScheme
-          : colorScheme // ignore: cast_nullable_to_non_nullable
-              as ColorSchemeSettings,
-    ));
+  $Res call({Object? colorScheme = null}) {
+    return _then(
+      _$SettingsImpl(
+        colorScheme:
+            null == colorScheme
+                ? _value.colorScheme
+                : colorScheme // ignore: cast_nullable_to_non_nullable
+                    as ColorSchemeSettings,
+      ),
+    );
   }
 }
 
@@ -131,9 +137,7 @@ class _$SettingsImpl implements _Settings {
 
   @override
   Map<String, dynamic> toJson() {
-    return _$$SettingsImplToJson(
-      this,
-    );
+    return _$$SettingsImplToJson(this);
   }
 }
 
@@ -164,8 +168,9 @@ mixin _$SettingsWrapper {
 /// @nodoc
 abstract class $SettingsWrapperCopyWith<$Res> {
   factory $SettingsWrapperCopyWith(
-          SettingsWrapper value, $Res Function(SettingsWrapper) then) =
-      _$SettingsWrapperCopyWithImpl<$Res, SettingsWrapper>;
+    SettingsWrapper value,
+    $Res Function(SettingsWrapper) then,
+  ) = _$SettingsWrapperCopyWithImpl<$Res, SettingsWrapper>;
   @useResult
   $Res call({Settings settings});
 
@@ -184,15 +189,17 @@ class _$SettingsWrapperCopyWithImpl<$Res, $Val extends SettingsWrapper>
 
   @pragma('vm:prefer-inline')
   @override
-  $Res call({
-    Object? settings = null,
-  }) {
-    return _then(_value.copyWith(
-      settings: null == settings
-          ? _value.settings
-          : settings // ignore: cast_nullable_to_non_nullable
-              as Settings,
-    ) as $Val);
+  $Res call({Object? settings = null}) {
+    return _then(
+      _value.copyWith(
+            settings:
+                null == settings
+                    ? _value.settings
+                    : settings // ignore: cast_nullable_to_non_nullable
+                        as Settings,
+          )
+          as $Val,
+    );
   }
 
   @override
@@ -207,9 +214,10 @@ class _$SettingsWrapperCopyWithImpl<$Res, $Val extends SettingsWrapper>
 /// @nodoc
 abstract class _$$SettingsWrapperImplCopyWith<$Res>
     implements $SettingsWrapperCopyWith<$Res> {
-  factory _$$SettingsWrapperImplCopyWith(_$SettingsWrapperImpl value,
-          $Res Function(_$SettingsWrapperImpl) then) =
-      __$$SettingsWrapperImplCopyWithImpl<$Res>;
+  factory _$$SettingsWrapperImplCopyWith(
+    _$SettingsWrapperImpl value,
+    $Res Function(_$SettingsWrapperImpl) then,
+  ) = __$$SettingsWrapperImplCopyWithImpl<$Res>;
   @override
   @useResult
   $Res call({Settings settings});
@@ -223,20 +231,22 @@ class __$$SettingsWrapperImplCopyWithImpl<$Res>
     extends _$SettingsWrapperCopyWithImpl<$Res, _$SettingsWrapperImpl>
     implements _$$SettingsWrapperImplCopyWith<$Res> {
   __$$SettingsWrapperImplCopyWithImpl(
-      _$SettingsWrapperImpl _value, $Res Function(_$SettingsWrapperImpl) _then)
-      : super(_value, _then);
+    _$SettingsWrapperImpl _value,
+    $Res Function(_$SettingsWrapperImpl) _then,
+  ) : super(_value, _then);
 
   @pragma('vm:prefer-inline')
   @override
-  $Res call({
-    Object? settings = null,
-  }) {
-    return _then(_$SettingsWrapperImpl(
-      settings: null == settings
-          ? _value.settings
-          : settings // ignore: cast_nullable_to_non_nullable
-              as Settings,
-    ));
+  $Res call({Object? settings = null}) {
+    return _then(
+      _$SettingsWrapperImpl(
+        settings:
+            null == settings
+                ? _value.settings
+                : settings // ignore: cast_nullable_to_non_nullable
+                    as Settings,
+      ),
+    );
   }
 }
 
@@ -271,7 +281,9 @@ class _$SettingsWrapperImpl implements _SettingsWrapper {
   @pragma('vm:prefer-inline')
   _$$SettingsWrapperImplCopyWith<_$SettingsWrapperImpl> get copyWith =>
       __$$SettingsWrapperImplCopyWithImpl<_$SettingsWrapperImpl>(
-          this, _$identity);
+        this,
+        _$identity,
+      );
 }
 
 abstract class _SettingsWrapper implements SettingsWrapper {
diff --git a/lib/ui/state/settings.g.dart b/lib/ui/state/settings.g.dart
index 8f960d9..4e07945 100644
--- a/lib/ui/state/settings.g.dart
+++ b/lib/ui/state/settings.g.dart
@@ -8,8 +8,11 @@ part of 'settings.dart';
 
 _$SettingsImpl _$$SettingsImplFromJson(Map<String, dynamic> json) =>
     _$SettingsImpl(
-      colorScheme: $enumDecodeNullable(
-              _$ColorSchemeSettingsEnumMap, json['colorScheme']) ??
+      colorScheme:
+          $enumDecodeNullable(
+            _$ColorSchemeSettingsEnumMap,
+            json['colorScheme'],
+          ) ??
           ColorSchemeSettings.system,
     );
 
diff --git a/pubspec.lock b/pubspec.lock
index afe0085..9e138c8 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -504,6 +504,14 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "2.0.0"
+  more:
+    dependency: "direct main"
+    description:
+      name: more
+      sha256: d3908d710f78ee5470d2ae9d7599a11aeb00a17909cc36cbd0f23a0b659ca375
+      url: "https://pub.dev"
+    source: hosted
+    version: "4.5.0"
   nested:
     dependency: transitive
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index de0da1d..c99da1e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -25,6 +25,7 @@ dependencies:
   isar_flutter_libs: ^3.1.0+1
   shared_preferences: ^2.5.3
   json_annotation: ^4.9.0
+  more: 4.5.0
 
 dev_dependencies:
   flutter_test: