diff --git a/lib/Entities/account.g.dart b/lib/Entities/account.g.dart index a680235..deb7ccd 100644 --- a/lib/Entities/account.g.dart +++ b/lib/Entities/account.g.dart @@ -17,7 +17,11 @@ 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, @@ -101,7 +105,10 @@ extension AccountQueryWhereSort on QueryBuilder { extension AccountQueryWhere on QueryBuilder { QueryBuilder 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, + )); }); } @@ -127,10 +134,8 @@ extension AccountQueryWhere on QueryBuilder { }); } - QueryBuilder idGreaterThan( - Id id, { - bool include = false, - }) { + QueryBuilder idGreaterThan(Id id, + {bool include = false}) { return QueryBuilder.apply(this, (query) { return query.addWhereClause( IdWhereClause.greaterThan(lower: id, includeLower: include), @@ -138,10 +143,8 @@ extension AccountQueryWhere on QueryBuilder { }); } - QueryBuilder idLessThan( - Id id, { - bool include = false, - }) { + QueryBuilder idLessThan(Id id, + {bool include = false}) { return QueryBuilder.apply(this, (query) { return query.addWhereClause( IdWhereClause.lessThan(upper: id, includeUpper: include), @@ -156,14 +159,12 @@ extension AccountQueryWhere on QueryBuilder { 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, + )); }); } } @@ -172,9 +173,10 @@ extension AccountQueryFilter on QueryBuilder { QueryBuilder 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, + )); }); } @@ -183,13 +185,11 @@ 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, + )); }); } @@ -198,13 +198,11 @@ 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, + )); }); } @@ -215,15 +213,13 @@ 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, + )); }); } @@ -232,13 +228,11 @@ 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, + )); }); } @@ -248,14 +242,12 @@ 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, + )); }); } @@ -265,14 +257,12 @@ 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, + )); }); } @@ -284,16 +274,14 @@ 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, + )); }); } @@ -302,13 +290,11 @@ 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, + )); }); } @@ -317,59 +303,53 @@ 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 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 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 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 nameIsNotEmpty() { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.greaterThan(property: r'name', value: ''), - ); + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'name', + value: '', + )); }); } } @@ -423,9 +403,8 @@ extension AccountQuerySortThenBy extension AccountQueryWhereDistinct on QueryBuilder { - QueryBuilder distinctByName({ - bool caseSensitive = true, - }) { + QueryBuilder distinctByName( + {bool caseSensitive = true}) { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'name', caseSensitive: caseSensitive); }); diff --git a/lib/Entities/recurring_transaction.dart b/lib/Entities/recurring_transaction.dart index 0fde9c3..c59e87c 100644 --- a/lib/Entities/recurring_transaction.dart +++ b/lib/Entities/recurring_transaction.dart @@ -1,6 +1,7 @@ import 'package:isar/isar.dart'; import 'time_frame_enum.dart'; +import 'transaction.dart'; part 'recurring_transaction.g.dart'; @@ -22,4 +23,9 @@ class RecurringTransaction { /// Die Höhe der wiederkehrenden Transaktion double amount = 0; + + /// Stellt die Transaktionen dar, + /// die mit dieser wiederkehrenden verknüpft sind. + @Backlink(to: 'recurringTransaction') + final IsarLinks transactions = IsarLinks(); } diff --git a/lib/Entities/recurring_transaction.g.dart b/lib/Entities/recurring_transaction.g.dart index 8caccbd..e2144fc 100644 --- a/lib/Entities/recurring_transaction.g.dart +++ b/lib/Entities/recurring_transaction.g.dart @@ -18,8 +18,16 @@ const RecurringTransactionSchema = CollectionSchema( name: r'RecurringTransaction', id: 969840479390105118, 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'startDate': PropertySchema( id: 2, name: r'startDate', @@ -30,7 +38,7 @@ const RecurringTransactionSchema = CollectionSchema( name: r'timeFrame', type: IsarType.byte, enumMap: _RecurringTransactiontimeFrameEnumValueMap, - ), + ) }, estimateSize: _recurringTransactionEstimateSize, serialize: _recurringTransactionSerialize, @@ -38,7 +46,15 @@ const RecurringTransactionSchema = CollectionSchema( deserializeProp: _recurringTransactionDeserializeProp, idName: r'id', indexes: {}, - links: {}, + links: { + r'transactions': LinkSchema( + id: 459560147514286496, + name: r'transactions', + target: r'Transaction', + single: false, + linkName: r'recurringTransaction', + ) + }, embeddedSchemas: {}, getId: _recurringTransactionGetId, getLinks: _recurringTransactionGetLinks, @@ -79,10 +95,8 @@ RecurringTransaction _recurringTransactionDeserialize( object.id = id; object.name = reader.readString(offsets[1]); object.startDate = reader.readDateTimeOrNull(offsets[2]); - object.timeFrame = - _RecurringTransactiontimeFrameValueEnumMap[reader.readByteOrNull( - offsets[3], - )] ?? + object.timeFrame = _RecurringTransactiontimeFrameValueEnumMap[ + reader.readByteOrNull(offsets[3])] ?? TimeFrameEnum.daily; return object; } @@ -101,11 +115,9 @@ P _recurringTransactionDeserializeProp

( case 2: return (reader.readDateTimeOrNull(offset)) as P; case 3: - return (_RecurringTransactiontimeFrameValueEnumMap[reader.readByteOrNull( - offset, - )] ?? - TimeFrameEnum.daily) - as P; + return (_RecurringTransactiontimeFrameValueEnumMap[ + reader.readByteOrNull(offset)] ?? + TimeFrameEnum.daily) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -129,17 +141,15 @@ Id _recurringTransactionGetId(RecurringTransaction object) { } List> _recurringTransactionGetLinks( - RecurringTransaction object, -) { - return []; + RecurringTransaction object) { + return [object.transactions]; } -void _recurringTransactionAttach( - IsarCollection col, - Id id, - RecurringTransaction object, -) { +void _recurringTransactionAttach(IsarCollection col, Id id, + RecurringTransaction object) { object.id = id; + object.transactions + .attach(col, col.isar.collection(), r'transactions', id); } extension RecurringTransactionQueryWhereSort @@ -157,7 +167,10 @@ extension RecurringTransactionQueryWhere QueryBuilder 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, + )); }); } @@ -210,92 +223,70 @@ extension RecurringTransactionQueryWhere 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< +extension RecurringTransactionQueryFilter on QueryBuilder - amountEqualTo(double value, {double epsilon = Query.epsilon}) { + QFilterCondition> { + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - amountGreaterThan( + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - amountLessThan( + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - amountBetween( + QueryBuilder amountBetween( double lower, double upper, { bool includeLower = true, @@ -303,157 +294,126 @@ extension RecurringTransactionQueryFilter 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - idEqualTo(Id value) { + QueryBuilder 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 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 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 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 - > - nameEqualTo(String value, {bool caseSensitive = true}) { + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameGreaterThan( + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameLessThan( + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameBetween( + QueryBuilder nameBetween( String lower, String upper, { bool includeLower = true, @@ -461,297 +421,302 @@ extension RecurringTransactionQueryFilter 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameStartsWith(String value, {bool caseSensitive = true}) { + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameEndsWith(String value, {bool caseSensitive = true}) { + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameIsEmpty() { + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - nameIsNotEmpty() { + QueryBuilder 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< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - startDateIsNull() { + QueryBuilder startDateIsNull() { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - const FilterCondition.isNull(property: r'startDate'), - ); + return query.addFilterCondition(const FilterCondition.isNull( + property: r'startDate', + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - startDateIsNotNull() { + QueryBuilder startDateIsNotNull() { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - const FilterCondition.isNotNull(property: r'startDate'), - ); + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'startDate', + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - startDateEqualTo(DateTime? value) { + QueryBuilder startDateEqualTo(DateTime? value) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.equalTo(property: r'startDate', value: value), - ); + return query.addFilterCondition(FilterCondition.equalTo( + property: r'startDate', + value: value, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - startDateGreaterThan(DateTime? value, {bool include = false}) { + QueryBuilder startDateGreaterThan(DateTime? value, { + bool include = false, + }) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.greaterThan( - include: include, - property: r'startDate', - value: value, - ), - ); + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'startDate', + value: value, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - startDateLessThan(DateTime? value, {bool include = false}) { + QueryBuilder startDateLessThan(DateTime? value, { + bool include = false, + }) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.lessThan( - include: include, - property: r'startDate', - value: value, - ), - ); + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'startDate', + value: value, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - startDateBetween( + QueryBuilder startDateBetween( DateTime? lower, DateTime? upper, { bool includeLower = true, bool includeUpper = true, }) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.between( - property: r'startDate', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - ), - ); + return query.addFilterCondition(FilterCondition.between( + property: r'startDate', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - timeFrameEqualTo(TimeFrameEnum value) { + QueryBuilder timeFrameEqualTo(TimeFrameEnum value) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.equalTo(property: r'timeFrame', value: value), - ); + return query.addFilterCondition(FilterCondition.equalTo( + property: r'timeFrame', + value: value, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - timeFrameGreaterThan(TimeFrameEnum value, {bool include = false}) { + QueryBuilder timeFrameGreaterThan(TimeFrameEnum value, { + bool include = false, + }) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.greaterThan( - include: include, - property: r'timeFrame', - value: value, - ), - ); + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'timeFrame', + value: value, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - timeFrameLessThan(TimeFrameEnum value, {bool include = false}) { + QueryBuilder timeFrameLessThan(TimeFrameEnum value, { + bool include = false, + }) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.lessThan( - include: include, - property: r'timeFrame', - value: value, - ), - ); + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'timeFrame', + value: value, + )); }); } - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QAfterFilterCondition - > - timeFrameBetween( + QueryBuilder timeFrameBetween( TimeFrameEnum lower, TimeFrameEnum upper, { bool includeLower = true, bool includeUpper = true, }) { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.between( - property: r'timeFrame', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - ), - ); + return query.addFilterCondition(FilterCondition.between( + property: r'timeFrame', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); }); } } -extension RecurringTransactionQueryObject - on - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QFilterCondition - > {} +extension RecurringTransactionQueryObject on QueryBuilder {} -extension RecurringTransactionQueryLinks - on - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QFilterCondition - > {} +extension RecurringTransactionQueryLinks on QueryBuilder { + QueryBuilder transactions(FilterQuery q) { + return QueryBuilder.apply(this, (query) { + return query.link(q, r'transactions'); + }); + } + + QueryBuilder transactionsLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'transactions', length, true, length, true); + }); + } + + QueryBuilder transactionsIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'transactions', 0, true, 0, true); + }); + } + + QueryBuilder transactionsIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'transactions', 0, false, 999999, true); + }); + } + + QueryBuilder transactionsLengthLessThan(int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'transactions', 0, true, length, include); + }); + } + + QueryBuilder transactionsLengthGreaterThan(int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'transactions', length, include, 999999, true); + }); + } + + QueryBuilder transactionsLengthBetween(int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.linkLength( + r'transactions', lower, includeLower, upper, includeUpper); + }); + } +} extension RecurringTransactionQuerySortBy on QueryBuilder { @@ -916,13 +881,10 @@ extension RecurringTransactionQueryWhereDistinct } } -extension RecurringTransactionQueryProperty - on - QueryBuilder< - RecurringTransaction, - RecurringTransaction, - QQueryProperty - > { +extension RecurringTransactionQueryProperty on QueryBuilder< + RecurringTransaction, + RecurringTransaction, + QQueryProperty> { QueryBuilder idProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'id'); diff --git a/lib/Entities/transaction.dart b/lib/Entities/transaction.dart index 9b74eb1..6cd04d8 100644 --- a/lib/Entities/transaction.dart +++ b/lib/Entities/transaction.dart @@ -1,5 +1,7 @@ import 'package:isar/isar.dart'; +import 'recurring_transaction.dart'; + part 'transaction.g.dart'; /// Die Klasse stellt eine Transaktion dar. @@ -16,4 +18,9 @@ class Transaction { /// Die Höhe der Transaktion double amount = 0; + + /// Stellt die wiederkehrende Transaktion dar, + /// zu welcher diese Transaktion gehört. + final IsarLink recurringTransaction = + IsarLink(); } diff --git a/lib/Entities/transaction.g.dart b/lib/Entities/transaction.g.dart index 446e6ae..49d7f5d 100644 --- a/lib/Entities/transaction.g.dart +++ b/lib/Entities/transaction.g.dart @@ -17,9 +17,21 @@ 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'name': PropertySchema(id: 2, name: r'name', type: IsarType.string), + r'amount': PropertySchema( + id: 0, + name: r'amount', + type: IsarType.double, + ), + r'date': PropertySchema( + id: 1, + name: r'date', + type: IsarType.dateTime, + ), + r'name': PropertySchema( + id: 2, + name: r'name', + type: IsarType.string, + ) }, estimateSize: _transactionEstimateSize, serialize: _transactionSerialize, @@ -27,7 +39,14 @@ const TransactionSchema = CollectionSchema( deserializeProp: _transactionDeserializeProp, idName: r'id', indexes: {}, - links: {}, + links: { + r'recurringTransaction': LinkSchema( + id: 8918082780894736839, + name: r'recurringTransaction', + target: r'RecurringTransaction', + single: true, + ) + }, embeddedSchemas: {}, getId: _transactionGetId, getLinks: _transactionGetLinks, @@ -93,15 +112,14 @@ Id _transactionGetId(Transaction object) { } List> _transactionGetLinks(Transaction object) { - return []; + return [object.recurringTransaction]; } -void _transactionAttach( - IsarCollection col, - Id id, - Transaction object, -) { +void _transactionAttach(IsarCollection col, Id id, + Transaction object) { object.id = id; + object.recurringTransaction.attach(col, + col.isar.collection(), r'recurringTransaction', id); } extension TransactionQueryWhereSort @@ -117,13 +135,15 @@ extension TransactionQueryWhere on QueryBuilder { QueryBuilder 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 idNotEqualTo( - Id id, - ) { + Id id) { return QueryBuilder.apply(this, (query) { if (query.whereSort == Sort.asc) { return query @@ -145,10 +165,8 @@ extension TransactionQueryWhere }); } - QueryBuilder idGreaterThan( - Id id, { - bool include = false, - }) { + QueryBuilder idGreaterThan(Id id, + {bool include = false}) { return QueryBuilder.apply(this, (query) { return query.addWhereClause( IdWhereClause.greaterThan(lower: id, includeLower: include), @@ -156,10 +174,8 @@ extension TransactionQueryWhere }); } - QueryBuilder idLessThan( - Id id, { - bool include = false, - }) { + QueryBuilder idLessThan(Id id, + {bool include = false}) { return QueryBuilder.apply(this, (query) { return query.addWhereClause( IdWhereClause.lessThan(upper: id, includeUpper: include), @@ -174,14 +190,12 @@ 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, + )); }); } } @@ -193,13 +207,11 @@ 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, + )); }); } @@ -210,14 +222,12 @@ extension TransactionQueryFilter 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, + )); }); } @@ -227,14 +237,12 @@ 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, + )); }); } @@ -246,43 +254,41 @@ 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 dateIsNull() { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - const FilterCondition.isNull(property: r'date'), - ); + return query.addFilterCondition(const FilterCondition.isNull( + property: r'date', + )); }); } QueryBuilder dateIsNotNull() { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - const FilterCondition.isNotNull(property: r'date'), - ); + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'date', + )); }); } QueryBuilder 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, + )); }); } @@ -291,13 +297,11 @@ 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, + )); }); } @@ -306,13 +310,11 @@ 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, + )); }); } @@ -323,25 +325,23 @@ 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 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, + )); }); } @@ -350,13 +350,11 @@ 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, + )); }); } @@ -365,13 +363,11 @@ 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,15 +378,13 @@ 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, + )); }); } @@ -399,13 +393,11 @@ extension TransactionQueryFilter 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, + )); }); } @@ -415,14 +407,12 @@ extension TransactionQueryFilter 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, + )); }); } @@ -432,14 +422,12 @@ extension TransactionQueryFilter 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, + )); }); } @@ -451,16 +439,14 @@ extension TransactionQueryFilter 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, + )); }); } @@ -469,13 +455,11 @@ extension TransactionQueryFilter 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, + )); }); } @@ -484,60 +468,54 @@ extension TransactionQueryFilter 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 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 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 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 nameIsNotEmpty() { return QueryBuilder.apply(this, (query) { - return query.addFilterCondition( - FilterCondition.greaterThan(property: r'name', value: ''), - ); + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'name', + value: '', + )); }); } } @@ -546,7 +524,21 @@ extension TransactionQueryObject on QueryBuilder {} extension TransactionQueryLinks - on QueryBuilder {} +on QueryBuilder { + QueryBuilder + recurringTransaction(FilterQuery q) { + return QueryBuilder.apply(this, (query) { + return query.link(q, r'recurringTransaction'); + }); + } + + QueryBuilder + recurringTransactionIsNull() { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'recurringTransaction', 0, true, 0, true); + }); + } +} extension TransactionQuerySortBy on QueryBuilder { @@ -652,9 +644,8 @@ extension TransactionQueryWhereDistinct }); } - QueryBuilder distinctByName({ - bool caseSensitive = true, - }) { + QueryBuilder distinctByName( + {bool caseSensitive = true}) { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'name', caseSensitive: caseSensitive); });