Compare commits
No commits in common. "e261710eba01bddb905c1fb4f008c70603d99697" and "d40d24f759d76ee95bbd2bd411fc1cd8f3d20385" have entirely different histories.
e261710eba
...
d40d24f759
@ -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,
|
||||
@ -106,7 +110,10 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -132,10 +139,8 @@ 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),
|
||||
@ -143,10 +148,8 @@ 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),
|
||||
@ -161,14 +164,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -177,9 +178,10 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -188,13 +190,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -203,13 +203,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -220,31 +218,29 @@ 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',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -253,13 +249,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -269,14 +263,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -286,14 +278,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -305,16 +295,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -323,13 +311,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -338,59 +324,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<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: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -444,9 +424,8 @@ 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);
|
||||
});
|
||||
|
@ -22,13 +22,17 @@ 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,
|
||||
@ -42,7 +46,7 @@ const BeneficiarySchema = CollectionSchema(
|
||||
name: r'account',
|
||||
target: r'Account',
|
||||
single: true,
|
||||
),
|
||||
)
|
||||
},
|
||||
embeddedSchemas: {},
|
||||
getId: _beneficiaryGetId,
|
||||
@ -90,7 +94,7 @@ Beneficiary _beneficiaryDeserialize(
|
||||
object.name = reader.readString(offsets[1]);
|
||||
object.type =
|
||||
_BeneficiarytypeValueEnumMap[reader.readByteOrNull(offsets[2])] ??
|
||||
BeneficiaryType.account;
|
||||
BeneficiaryType.account;
|
||||
return object;
|
||||
}
|
||||
|
||||
@ -107,14 +111,16 @@ 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,
|
||||
@ -129,10 +135,7 @@ 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);
|
||||
}
|
||||
@ -150,13 +153,15 @@ 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
|
||||
@ -178,10 +183,8 @@ 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),
|
||||
@ -189,10 +192,8 @@ 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),
|
||||
@ -207,14 +208,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -222,12 +221,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -236,13 +235,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -251,13 +248,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -268,87 +263,82 @@ 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,
|
||||
@ -356,86 +346,84 @@ 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: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -444,13 +432,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -460,14 +446,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -477,14 +461,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -496,16 +478,14 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -514,13 +494,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -529,70 +507,64 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -601,13 +573,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -616,13 +586,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -633,15 +601,13 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -652,15 +618,14 @@ 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);
|
||||
});
|
||||
@ -759,17 +724,15 @@ 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);
|
||||
});
|
||||
|
@ -5,7 +5,9 @@ import 'account.dart';
|
||||
|
||||
part 'budget.g.dart';
|
||||
|
||||
enum BudgetPeriod { month }
|
||||
enum BudgetPeriod {
|
||||
month
|
||||
}
|
||||
|
||||
@collection
|
||||
class BudgetItem {
|
||||
@ -32,4 +34,4 @@ class Budget {
|
||||
final account = IsarLink<Account>();
|
||||
|
||||
final items = IsarLinks<BudgetItem>();
|
||||
}
|
||||
}
|
@ -17,7 +17,11 @@ 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,
|
||||
@ -31,7 +35,7 @@ const BudgetItemSchema = CollectionSchema(
|
||||
name: r'expenseCategory',
|
||||
target: r'ExpenseCategory',
|
||||
single: true,
|
||||
),
|
||||
)
|
||||
},
|
||||
embeddedSchemas: {},
|
||||
getId: _budgetItemGetId,
|
||||
@ -95,11 +99,7 @@ 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,7 +115,10 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -141,10 +144,8 @@ 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),
|
||||
@ -152,10 +153,8 @@ 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),
|
||||
@ -170,14 +169,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -189,13 +186,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -205,14 +200,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -222,14 +215,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -241,26 +232,24 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -269,13 +258,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -284,13 +271,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -301,15 +286,13 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -320,15 +303,14 @@ 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);
|
||||
});
|
||||
@ -417,14 +399,22 @@ 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,
|
||||
@ -444,7 +434,7 @@ const BudgetSchema = CollectionSchema(
|
||||
name: r'items',
|
||||
target: r'BudgetItem',
|
||||
single: false,
|
||||
),
|
||||
)
|
||||
},
|
||||
embeddedSchemas: {},
|
||||
getId: _budgetGetId,
|
||||
@ -488,7 +478,7 @@ Budget _budgetDeserialize(
|
||||
object.name = reader.readString(offsets[2]);
|
||||
object.period =
|
||||
_BudgetperiodValueEnumMap[reader.readByteOrNull(offsets[3])] ??
|
||||
BudgetPeriod.month;
|
||||
BudgetPeriod.month;
|
||||
return object;
|
||||
}
|
||||
|
||||
@ -507,15 +497,18 @@ 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;
|
||||
@ -542,7 +535,10 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -568,10 +564,8 @@ 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),
|
||||
@ -579,10 +573,8 @@ 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),
|
||||
@ -597,14 +589,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -612,9 +602,10 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -623,13 +614,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -638,13 +627,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -655,27 +642,23 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -684,13 +667,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -700,14 +681,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -717,14 +696,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -736,16 +713,14 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -754,13 +729,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -770,14 +743,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -787,14 +758,12 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -806,16 +775,14 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -824,13 +791,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -839,69 +804,62 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -910,13 +868,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -925,13 +881,11 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -942,15 +896,13 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -959,8 +911,7 @@ 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');
|
||||
});
|
||||
@ -973,16 +924,14 @@ 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);
|
||||
});
|
||||
@ -1026,12 +975,7 @@ 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);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -1161,9 +1105,8 @@ 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);
|
||||
});
|
||||
|
@ -17,7 +17,11 @@ 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,
|
||||
@ -87,10 +91,7 @@ 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;
|
||||
}
|
||||
|
||||
@ -106,15 +107,17 @@ 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
|
||||
@ -137,7 +140,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),
|
||||
@ -146,9 +149,8 @@ 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),
|
||||
@ -163,14 +165,12 @@ 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,111 +178,109 @@ 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,
|
||||
@ -290,86 +288,84 @@ 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: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -389,7 +385,7 @@ extension ExpenseCategoryQuerySortBy
|
||||
}
|
||||
|
||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterSortBy>
|
||||
sortByNameDesc() {
|
||||
sortByNameDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'name', Sort.desc);
|
||||
});
|
||||
@ -417,7 +413,7 @@ extension ExpenseCategoryQuerySortThenBy
|
||||
}
|
||||
|
||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterSortBy>
|
||||
thenByNameDesc() {
|
||||
thenByNameDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'name', Sort.desc);
|
||||
});
|
||||
@ -426,9 +422,8 @@ 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);
|
||||
});
|
||||
|
@ -18,12 +18,16 @@ 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,
|
||||
@ -43,7 +47,7 @@ const RecurringTransactionSchema = CollectionSchema(
|
||||
name: r'account',
|
||||
target: r'Account',
|
||||
single: true,
|
||||
),
|
||||
)
|
||||
},
|
||||
embeddedSchemas: {},
|
||||
getId: _recurringTransactionGetId,
|
||||
@ -105,30 +109,22 @@ 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());
|
||||
});
|
||||
@ -138,14 +134,17 @@ 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
|
||||
@ -168,7 +167,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),
|
||||
@ -177,7 +176,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),
|
||||
@ -186,326 +185,240 @@ 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);
|
||||
});
|
||||
@ -515,28 +428,28 @@ extension RecurringTransactionQueryLinks
|
||||
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);
|
||||
});
|
||||
@ -546,42 +459,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);
|
||||
});
|
||||
@ -591,27 +504,22 @@ 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');
|
||||
@ -625,7 +533,7 @@ extension RecurringTransactionQueryProperty
|
||||
}
|
||||
|
||||
QueryBuilder<RecurringTransaction, DateTime?, QQueryOperations>
|
||||
lastExecutionProperty() {
|
||||
lastExecutionProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'lastExecution');
|
||||
});
|
||||
|
@ -18,13 +18,21 @@ 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,
|
||||
@ -50,7 +58,7 @@ const TransactionTemplateSchema = CollectionSchema(
|
||||
name: r'account',
|
||||
target: r'Account',
|
||||
single: true,
|
||||
),
|
||||
)
|
||||
},
|
||||
embeddedSchemas: {},
|
||||
getId: _transactionTemplateGetId,
|
||||
@ -117,29 +125,17 @@ 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);
|
||||
}
|
||||
|
||||
@ -155,14 +151,17 @@ 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
|
||||
@ -185,7 +184,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),
|
||||
@ -194,7 +193,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),
|
||||
@ -203,83 +202,73 @@ 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,
|
||||
@ -287,125 +276,121 @@ extension TransactionTemplateQueryFilter
|
||||
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,
|
||||
@ -413,151 +398,140 @@ extension TransactionTemplateQueryFilter
|
||||
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);
|
||||
});
|
||||
@ -567,42 +541,42 @@ extension TransactionTemplateQueryLinks
|
||||
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);
|
||||
});
|
||||
@ -612,56 +586,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);
|
||||
});
|
||||
@ -671,21 +645,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');
|
||||
});
|
||||
@ -713,7 +687,7 @@ extension TransactionTemplateQueryProperty
|
||||
}
|
||||
|
||||
QueryBuilder<TransactionTemplate, bool, QQueryOperations>
|
||||
recurringProperty() {
|
||||
recurringProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'recurring');
|
||||
});
|
||||
|
@ -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'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,
|
||||
@ -45,7 +57,7 @@ const TransactionSchema = CollectionSchema(
|
||||
name: r'beneficiary',
|
||||
target: r'Beneficiary',
|
||||
single: true,
|
||||
),
|
||||
)
|
||||
},
|
||||
embeddedSchemas: {},
|
||||
getId: _transactionGetId,
|
||||
@ -122,24 +134,13 @@ 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
|
||||
@ -155,13 +156,15 @@ 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
|
||||
@ -183,10 +186,8 @@ 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),
|
||||
@ -194,10 +195,8 @@ 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),
|
||||
@ -212,14 +211,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -231,31 +228,27 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -265,14 +258,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -284,26 +275,24 @@ 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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -312,13 +301,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -327,13 +314,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -344,25 +329,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<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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -371,13 +354,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -386,13 +367,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,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
@ -403,69 +382,64 @@ 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,
|
||||
@ -473,125 +447,159 @@ 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,
|
||||
),
|
||||
);
|
||||
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}) {
|
||||
tagsElementStartsWith(
|
||||
String value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(
|
||||
FilterCondition.startsWith(
|
||||
property: r'tags',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
),
|
||||
);
|
||||
return query.addFilterCondition(FilterCondition.startsWith(
|
||||
property: r'tags',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||
tagsElementEndsWith(String value, {bool caseSensitive = true}) {
|
||||
tagsElementEndsWith(
|
||||
String value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(
|
||||
FilterCondition.endsWith(
|
||||
property: r'tags',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
),
|
||||
);
|
||||
return query.addFilterCondition(FilterCondition.endsWith(
|
||||
property: r'tags',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||
tagsElementContains(String value, {bool caseSensitive = true}) {
|
||||
tagsElementContains(String value, {bool caseSensitive = true}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(
|
||||
FilterCondition.contains(
|
||||
property: r'tags',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
),
|
||||
);
|
||||
return query.addFilterCondition(FilterCondition.contains(
|
||||
property: r'tags',
|
||||
value: value,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||
tagsElementMatches(String pattern, {bool caseSensitive = true}) {
|
||||
tagsElementMatches(String pattern, {bool caseSensitive = true}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(
|
||||
FilterCondition.matches(
|
||||
property: r'tags',
|
||||
wildcard: pattern,
|
||||
caseSensitive: caseSensitive,
|
||||
),
|
||||
);
|
||||
return query.addFilterCondition(FilterCondition.matches(
|
||||
property: r'tags',
|
||||
wildcard: pattern,
|
||||
caseSensitive: caseSensitive,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||
tagsElementIsEmpty() {
|
||||
tagsElementIsEmpty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(
|
||||
FilterCondition.equalTo(property: r'tags', value: ''),
|
||||
);
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'tags',
|
||||
value: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||
tagsElementIsNotEmpty() {
|
||||
tagsElementIsNotEmpty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(
|
||||
FilterCondition.greaterThan(property: r'tags', value: ''),
|
||||
);
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
property: r'tags',
|
||||
value: '',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||
tagsLengthEqualTo(int length) {
|
||||
tagsLengthEqualTo(int length) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(r'tags', length, true, length, true);
|
||||
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,
|
||||
@ -615,45 +623,42 @@ 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);
|
||||
});
|
||||
|
@ -211,12 +211,7 @@ Stream<void> watchExpenseCategory() {
|
||||
}
|
||||
|
||||
Stream<void> watchBudgets(Account account) {
|
||||
return GetIt.I
|
||||
.get<Isar>()
|
||||
.budgets
|
||||
.filter()
|
||||
.account((q) => q.idEqualTo(account.id))
|
||||
.watchLazy(fireImmediately: true);
|
||||
return GetIt.I.get<Isar>().budgets.filter().account((q) => q.idEqualTo(account.id)).watchLazy(fireImmediately: true);
|
||||
}
|
||||
|
||||
Future<List<Budget>> getBudgets(Account? account) {
|
||||
@ -224,12 +219,7 @@ Future<List<Budget>> getBudgets(Account? account) {
|
||||
return Future.value([]);
|
||||
}
|
||||
|
||||
return GetIt.I
|
||||
.get<Isar>()
|
||||
.budgets
|
||||
.filter()
|
||||
.account((q) => q.idEqualTo(account.id))
|
||||
.findAll();
|
||||
return GetIt.I.get<Isar>().budgets.filter().account((q) => q.idEqualTo(account.id)).findAll();
|
||||
}
|
||||
|
||||
Future<void> upsertBudget(Budget budget) {
|
||||
@ -249,13 +239,11 @@ Future<void> upsertBudgetItem(BudgetItem item) {
|
||||
});
|
||||
}
|
||||
|
||||
enum TransactionQueryDateOption { thisMonth }
|
||||
enum TransactionQueryDateOption {
|
||||
thisMonth,
|
||||
}
|
||||
|
||||
Future<List<Transaction>> getTransactionsInTimeframe(
|
||||
Account account,
|
||||
DateTime today,
|
||||
TransactionQueryDateOption option,
|
||||
) async {
|
||||
Future<List<Transaction>> getTransactionsInTimeframe(Account account, DateTime today, TransactionQueryDateOption option) async {
|
||||
final lower = switch (option) {
|
||||
TransactionQueryDateOption.thisMonth => DateTime(
|
||||
today.year,
|
||||
@ -267,11 +255,10 @@ Future<List<Transaction>> getTransactionsInTimeframe(
|
||||
TransactionQueryDateOption.thisMonth => monthEnding(today),
|
||||
};
|
||||
|
||||
return GetIt.I
|
||||
.get<Isar>()
|
||||
return GetIt.I.get<Isar>()
|
||||
.transactions
|
||||
.filter()
|
||||
.account((q) => q.idEqualTo(account.id))
|
||||
.dateBetween(lower, upper)
|
||||
.findAll();
|
||||
}
|
||||
}
|
@ -195,8 +195,7 @@ class OkaneNavigationLayout extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
|
||||
if (p.showAccountName &&
|
||||
state.activeAccountIndex != null)
|
||||
if (p.showAccountName && state.activeAccountIndex != null)
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 8),
|
||||
child: Text(
|
||||
@ -219,8 +218,7 @@ class OkaneNavigationLayout extends StatelessWidget {
|
||||
),
|
||||
ScreenSize.normal => Column(
|
||||
children: [
|
||||
if (p.showAccountName &&
|
||||
state.activeAccountIndex != null)
|
||||
if (p.showAccountName && state.activeAccountIndex != null)
|
||||
AccountIndicator(
|
||||
accountName:
|
||||
state
|
||||
|
@ -9,8 +9,6 @@ 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;
|
||||
@ -104,17 +102,18 @@ class AccountListPageState extends State<AccountListPage> {
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: TotalBalanceCard(),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: UpcomingTransactionsCard(),
|
||||
),
|
||||
Wrap(
|
||||
|
||||
Row(
|
||||
children: [
|
||||
Padding(padding: EdgeInsets.all(8), child: BreakdownCard()),
|
||||
Padding(padding: EdgeInsets.all(16), child: BreakdownCard()),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
@ -7,12 +7,11 @@ import 'package:okane/ui/state/core.dart';
|
||||
import 'package:okane/ui/utils.dart';
|
||||
|
||||
double getBalanceGraphScaling(double maxBalance) {
|
||||
final absMaxBalance = maxBalance.abs();
|
||||
if (absMaxBalance < 100) {
|
||||
if (maxBalance < 100) {
|
||||
return 10;
|
||||
} else if (absMaxBalance < 1000) {
|
||||
} else if (maxBalance < 1000) {
|
||||
return 200;
|
||||
} else if (absMaxBalance < 10000) {
|
||||
} else if (maxBalance < 10000) {
|
||||
return 1000;
|
||||
}
|
||||
|
||||
|
@ -8,8 +8,6 @@ import 'package:okane/database/collections/transaction.dart';
|
||||
import 'package:okane/database/database.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';
|
||||
|
||||
const CATEGORY_INCOME = "Income";
|
||||
const CATEGORY_OTHER = "Other";
|
||||
@ -73,79 +71,102 @@ class BreakdownCard extends StatelessWidget {
|
||||
return (expenses: expenses, colors: colors, usable: usableMoney);
|
||||
}
|
||||
|
||||
Widget _buildCard(Widget child, String? subtitle) {
|
||||
return ResponsiveCard(
|
||||
titleText: "Expense Breakdown",
|
||||
subtitleText: subtitle,
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildCenterText(String text) {
|
||||
return _buildCard(Center(child: Text(text)), null);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final bloc = GetIt.I.get<CoreCubit>();
|
||||
return BlocBuilder<CoreCubit, CoreState>(
|
||||
builder: (context, state) {
|
||||
if (bloc.activeAccount == null) {
|
||||
return _buildCenterText("No account active");
|
||||
}
|
||||
|
||||
return FutureBuilder(
|
||||
future: getLastTransactions(bloc.activeAccount!, DateTime.now(), 30),
|
||||
builder: (context, snapshot) {
|
||||
if (!snapshot.hasData) {
|
||||
return _buildCard(
|
||||
Padding(
|
||||
padding: EdgeInsets.all(16),
|
||||
child: SizedBox(
|
||||
width: 150 - 16 * 2,
|
||||
height: 150 - 16 * 2,
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
),
|
||||
null,
|
||||
);
|
||||
return Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: BlocBuilder<CoreCubit, CoreState>(
|
||||
builder: (context, state) {
|
||||
if (bloc.activeAccount == null) {
|
||||
return Text("No active account");
|
||||
}
|
||||
|
||||
final data = _computeSections(snapshot.data!);
|
||||
final sectionData =
|
||||
data.expenses.entries
|
||||
.map(
|
||||
(entry) => PieChartSectionData(
|
||||
value: entry.value,
|
||||
title: formatCurrency(entry.value, precise: false),
|
||||
titleStyle: TextStyle(fontWeight: FontWeight.bold),
|
||||
radius: 40,
|
||||
color: data.colors[entry.key]!,
|
||||
),
|
||||
)
|
||||
.toList();
|
||||
if (sectionData.isEmpty) {
|
||||
return _buildCenterText("No expenses available");
|
||||
}
|
||||
return _buildCard(
|
||||
OkanePieChart(
|
||||
valueConverter: formatCurrency,
|
||||
items:
|
||||
return FutureBuilder(
|
||||
future: getLastTransactions(
|
||||
bloc.activeAccount!,
|
||||
DateTime.now(),
|
||||
30,
|
||||
),
|
||||
builder: (context, snapshot) {
|
||||
final title = Padding(
|
||||
padding: EdgeInsets.only(bottom: 16),
|
||||
child: Text("Expense Breakdown"),
|
||||
);
|
||||
if (!snapshot.hasData) {
|
||||
return Column(children: [title, CircularProgressIndicator()]);
|
||||
}
|
||||
|
||||
if (snapshot.data!.isEmpty) {
|
||||
return Column(children: [title, Text("No transactions")]);
|
||||
}
|
||||
|
||||
final data = _computeSections(snapshot.data!);
|
||||
final sectionData =
|
||||
data.expenses.entries
|
||||
.map(
|
||||
(e) => (
|
||||
title: e.key,
|
||||
value: e.value,
|
||||
color: colorHash(e.key),
|
||||
(entry) => PieChartSectionData(
|
||||
value: entry.value,
|
||||
title: formatCurrency(entry.value, precise: false),
|
||||
titleStyle: TextStyle(fontWeight: FontWeight.bold),
|
||||
radius: 40,
|
||||
color: data.colors[entry.key]!,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
"Available money: ${formatCurrency(data.usable)}",
|
||||
.toList();
|
||||
return Column(
|
||||
children: [
|
||||
title,
|
||||
Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 150,
|
||||
height: 150,
|
||||
child: AspectRatio(
|
||||
aspectRatio: 1,
|
||||
child: PieChart(
|
||||
PieChartData(
|
||||
borderData: FlBorderData(show: false),
|
||||
sectionsSpace: 0,
|
||||
centerSpaceRadius: 35,
|
||||
sections: sectionData,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children:
|
||||
data.expenses.keys
|
||||
.map(
|
||||
(key) => LegendItem(
|
||||
text: key,
|
||||
color: data.colors[key]!,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 16),
|
||||
child: Text(
|
||||
"Available money: ${formatCurrency(data.usable)}",
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ class TotalBalanceCard extends StatelessWidget {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
"Total balance",
|
||||
"Total balance",
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
FutureBuilder(
|
||||
|
@ -23,45 +23,44 @@ class AddBudgetState extends State<AddBudgetPopup> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
TextField(
|
||||
decoration: InputDecoration(hintText: "Budget name"),
|
||||
decoration: InputDecoration(
|
||||
hintText: "Budget name",
|
||||
),
|
||||
controller: _budgetNameEditController,
|
||||
),
|
||||
|
||||
TextField(
|
||||
decoration: InputDecoration(hintText: "Income"),
|
||||
controller: _budgetIncomeEditController,
|
||||
keyboardType: TextInputType.numberWithOptions(
|
||||
signed: false,
|
||||
decimal: true,
|
||||
decoration: InputDecoration(
|
||||
hintText: "Income",
|
||||
),
|
||||
controller: _budgetIncomeEditController,
|
||||
keyboardType: TextInputType.numberWithOptions(signed: false, decimal: true),
|
||||
),
|
||||
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
OutlinedButton(
|
||||
onPressed: () async {
|
||||
if (_budgetNameEditController.text.isEmpty ||
|
||||
_budgetIncomeEditController.text.isEmpty) {
|
||||
return;
|
||||
}
|
||||
onPressed: () async {
|
||||
if (_budgetNameEditController.text.isEmpty || _budgetIncomeEditController.text.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
final bloc = GetIt.I.get<CoreCubit>();
|
||||
final budget =
|
||||
Budget()
|
||||
..name = _budgetNameEditController.text
|
||||
..period = BudgetPeriod.month
|
||||
..includeOtherSpendings = false
|
||||
..income = double.parse(_budgetIncomeEditController.text)
|
||||
..account.value = bloc.activeAccount!;
|
||||
await upsertBudget(budget);
|
||||
widget.onDone();
|
||||
},
|
||||
child: Text("Add"),
|
||||
final bloc = GetIt.I.get<CoreCubit>();
|
||||
final budget = Budget()
|
||||
..name = _budgetNameEditController.text
|
||||
..period = BudgetPeriod.month
|
||||
..includeOtherSpendings = false
|
||||
..income = double.parse(_budgetIncomeEditController.text)
|
||||
..account.value = bloc.activeAccount!;
|
||||
await upsertBudget(budget);
|
||||
widget.onDone();
|
||||
},
|
||||
child: Text("Add"),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -11,11 +11,7 @@ class AddBudgetItemPopup extends StatefulWidget {
|
||||
final VoidCallback onDone;
|
||||
final Budget budget;
|
||||
|
||||
const AddBudgetItemPopup({
|
||||
super.key,
|
||||
required this.onDone,
|
||||
required this.budget,
|
||||
});
|
||||
const AddBudgetItemPopup({super.key, required this.onDone, required this.budget});
|
||||
|
||||
@override
|
||||
AddBudgetItemState createState() => AddBudgetItemState();
|
||||
@ -35,67 +31,55 @@ class AddBudgetItemState extends State<AddBudgetItemPopup> {
|
||||
Text("Expense category"),
|
||||
|
||||
OutlinedButton(
|
||||
onPressed: () async {
|
||||
final category = await showDialogOrModal(
|
||||
context: context,
|
||||
builder: (_) => AddExpenseCategory(),
|
||||
);
|
||||
if (category == null) {
|
||||
return;
|
||||
}
|
||||
onPressed: () async {
|
||||
final category = await showDialogOrModal(
|
||||
context: context,
|
||||
builder: (_) => AddExpenseCategory(),
|
||||
);
|
||||
if (category == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
setState(() => _expenseCategory = category);
|
||||
},
|
||||
child: Text(_expenseCategory?.name ?? "None"),
|
||||
setState(() => _expenseCategory = category);
|
||||
},
|
||||
child: Text(_expenseCategory?.name ?? "None"),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
TextField(
|
||||
decoration: InputDecoration(hintText: "Amount"),
|
||||
controller: _budgetItemAmountEditController,
|
||||
keyboardType: TextInputType.numberWithOptions(
|
||||
signed: false,
|
||||
decimal: true,
|
||||
decoration: InputDecoration(
|
||||
hintText: "Amount",
|
||||
),
|
||||
controller: _budgetItemAmountEditController,
|
||||
keyboardType: TextInputType.numberWithOptions(signed: false, decimal: true),
|
||||
),
|
||||
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
OutlinedButton(
|
||||
onPressed: () async {
|
||||
if (_budgetItemAmountEditController.text.isEmpty ||
|
||||
_expenseCategory == null) {
|
||||
return;
|
||||
}
|
||||
if (widget.budget.items
|
||||
.where(
|
||||
(i) =>
|
||||
i.expenseCategory.value!.name ==
|
||||
_expenseCategory!.name,
|
||||
)
|
||||
.firstOrNull !=
|
||||
null) {
|
||||
return;
|
||||
}
|
||||
onPressed: () async {
|
||||
if (_budgetItemAmountEditController.text.isEmpty || _expenseCategory == null) {
|
||||
return;
|
||||
}
|
||||
if (widget.budget.items.where((i) => i.expenseCategory.value!.name == _expenseCategory!.name).firstOrNull != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final item =
|
||||
BudgetItem()
|
||||
..expenseCategory.value = _expenseCategory
|
||||
..amount = double.parse(
|
||||
_budgetItemAmountEditController.text,
|
||||
);
|
||||
await upsertBudgetItem(item);
|
||||
widget.budget.items.add(item);
|
||||
await upsertBudget(widget.budget);
|
||||
widget.onDone();
|
||||
},
|
||||
child: Text("Add"),
|
||||
final item = BudgetItem()
|
||||
..expenseCategory.value = _expenseCategory
|
||||
..amount = double.parse(_budgetItemAmountEditController.text);
|
||||
await upsertBudgetItem(item);
|
||||
widget.budget.items.add(item);
|
||||
await upsertBudget(widget.budget);
|
||||
widget.onDone();
|
||||
},
|
||||
child: Text("Add"),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -8,8 +8,6 @@ import 'package:okane/ui/pages/account/breakdown_card.dart';
|
||||
import 'package:okane/ui/pages/budgets/add_budget_item.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 BudgetDetailsPage extends StatelessWidget {
|
||||
final bool isPage;
|
||||
@ -258,48 +256,211 @@ class BudgetDetailsPage extends StatelessWidget {
|
||||
),
|
||||
|
||||
Wrap(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8),
|
||||
child: PieChartCard(
|
||||
fallbackText: "",
|
||||
valueConverter: formatCurrency,
|
||||
items:
|
||||
state.activeBudget!.items
|
||||
.map(
|
||||
(i) => (
|
||||
title: i.expenseCategory.value!.name,
|
||||
value: i.amount,
|
||||
color: colorHash(
|
||||
i.expenseCategory.value!.name,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: SizedBox(
|
||||
child: Card(
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 8),
|
||||
child: Text(
|
||||
"Budget breakdown",
|
||||
style:
|
||||
Theme.of(
|
||||
context,
|
||||
).textTheme.titleLarge,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(16),
|
||||
child: SizedBox(
|
||||
width: 150,
|
||||
height: 150,
|
||||
child: AspectRatio(
|
||||
aspectRatio: 1,
|
||||
child: PieChart(
|
||||
PieChartData(
|
||||
borderData: FlBorderData(
|
||||
show: false,
|
||||
),
|
||||
sectionsSpace: 0,
|
||||
centerSpaceRadius: 35,
|
||||
sections:
|
||||
state
|
||||
.activeBudget!
|
||||
.items
|
||||
.map(
|
||||
(
|
||||
i,
|
||||
) => PieChartSectionData(
|
||||
value:
|
||||
i.amount
|
||||
.abs(),
|
||||
title:
|
||||
formatCurrency(
|
||||
i.amount
|
||||
.abs(),
|
||||
),
|
||||
titleStyle: TextStyle(
|
||||
fontWeight:
|
||||
FontWeight
|
||||
.bold,
|
||||
),
|
||||
radius: 40,
|
||||
color: colorHash(
|
||||
i
|
||||
.expenseCategory
|
||||
.value!
|
||||
.name,
|
||||
),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
titleText: "Budget breakdown",
|
||||
),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8),
|
||||
child: PieChartCard(
|
||||
fallbackText: "No spending available",
|
||||
valueConverter: formatCurrency,
|
||||
items:
|
||||
spending.entries
|
||||
.map(
|
||||
(e) => (
|
||||
title: e.key,
|
||||
value: e.value.abs(),
|
||||
color: colorHash(e.key),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
titleText: "Spending Breakdown",
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 8,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
children:
|
||||
state.activeBudget!.items
|
||||
.map(
|
||||
(i) => LegendItem(
|
||||
text:
|
||||
i
|
||||
.expenseCategory
|
||||
.value!
|
||||
.name,
|
||||
color: colorHash(
|
||||
i
|
||||
.expenseCategory
|
||||
.value!
|
||||
.name,
|
||||
),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: SizedBox(
|
||||
child: Card(
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 8),
|
||||
child: Text(
|
||||
"Spending breakdown",
|
||||
style:
|
||||
Theme.of(
|
||||
context,
|
||||
).textTheme.titleLarge,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(16),
|
||||
child: SizedBox(
|
||||
width: 150,
|
||||
height: 150,
|
||||
child: AspectRatio(
|
||||
aspectRatio: 1,
|
||||
child: PieChart(
|
||||
PieChartData(
|
||||
borderData: FlBorderData(
|
||||
show: false,
|
||||
),
|
||||
sectionsSpace: 0,
|
||||
centerSpaceRadius: 35,
|
||||
sections:
|
||||
spending.entries
|
||||
.map(
|
||||
(
|
||||
e,
|
||||
) => PieChartSectionData(
|
||||
value:
|
||||
e.value
|
||||
.abs(),
|
||||
title:
|
||||
formatCurrency(
|
||||
e.value
|
||||
.abs(),
|
||||
),
|
||||
titleStyle: TextStyle(
|
||||
fontWeight:
|
||||
FontWeight
|
||||
.bold,
|
||||
),
|
||||
radius: 40,
|
||||
color:
|
||||
colorHash(
|
||||
e.key,
|
||||
),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 8,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
children:
|
||||
spending.keys
|
||||
.map(
|
||||
(k) => LegendItem(
|
||||
text: k,
|
||||
color: colorHash(k),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
|
@ -19,7 +19,9 @@ class BudgetListPage extends StatelessWidget {
|
||||
if (state.budgets.isEmpty) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [Text("No budgets")],
|
||||
children: [
|
||||
Text("No budgets"),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@ -72,18 +74,18 @@ class BudgetListPage extends StatelessWidget {
|
||||
right: 16,
|
||||
bottom: 16,
|
||||
child: FloatingActionButton(
|
||||
child: Icon(Icons.add),
|
||||
onPressed: () {
|
||||
showDialogOrModal(
|
||||
context: context,
|
||||
builder:
|
||||
(_) => AddBudgetPopup(
|
||||
onDone: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
child: Icon(Icons.add),
|
||||
onPressed: () {
|
||||
showDialogOrModal(
|
||||
context: context,
|
||||
builder:
|
||||
(_) => AddBudgetPopup(
|
||||
onDone: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -6,47 +6,45 @@ class EditBudgetPopup extends StatefulWidget {
|
||||
final Budget budget;
|
||||
|
||||
final VoidCallback onDone;
|
||||
|
||||
const EditBudgetPopup({
|
||||
required this.budget,
|
||||
required this.onDone,
|
||||
super.key,
|
||||
});
|
||||
|
||||
|
||||
const EditBudgetPopup({required this.budget, required this.onDone, super.key});
|
||||
|
||||
@override
|
||||
EditBudgetState createState() => EditBudgetState();
|
||||
}
|
||||
|
||||
class EditBudgetState extends State<EditBudgetPopup> {
|
||||
final _budgetNameEditController = TextEditingController();
|
||||
|
||||
|
||||
late bool _includeOtherSpendings;
|
||||
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
|
||||
_budgetNameEditController.text = widget.budget.name;
|
||||
_includeOtherSpendings = widget.budget.includeOtherSpendings;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
TextField(
|
||||
decoration: InputDecoration(hintText: "Name"),
|
||||
decoration: InputDecoration(
|
||||
hintText: "Name",
|
||||
),
|
||||
controller: _budgetNameEditController,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Text("Include other spendings"),
|
||||
Switch(
|
||||
value: _includeOtherSpendings,
|
||||
onChanged: (value) {
|
||||
setState(() => _includeOtherSpendings = value);
|
||||
},
|
||||
value: _includeOtherSpendings,
|
||||
onChanged: (value) {
|
||||
setState(() => _includeOtherSpendings = value);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
@ -54,28 +52,26 @@ class EditBudgetState extends State<EditBudgetPopup> {
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
OutlinedButton(
|
||||
onPressed: () async {
|
||||
if (_budgetNameEditController.text.isEmpty) {
|
||||
return;
|
||||
}
|
||||
if (_budgetNameEditController.text == widget.budget.name &&
|
||||
_includeOtherSpendings ==
|
||||
widget.budget.includeOtherSpendings) {
|
||||
widget.onDone();
|
||||
return;
|
||||
}
|
||||
onPressed: () async {
|
||||
if (_budgetNameEditController.text.isEmpty) {
|
||||
return;
|
||||
}
|
||||
if (_budgetNameEditController.text == widget.budget.name && _includeOtherSpendings == widget.budget.includeOtherSpendings) {
|
||||
widget.onDone();
|
||||
return;
|
||||
}
|
||||
|
||||
widget.budget
|
||||
..name = _budgetNameEditController.text
|
||||
..includeOtherSpendings = _includeOtherSpendings;
|
||||
await upsertBudget(widget.budget);
|
||||
widget.onDone();
|
||||
},
|
||||
child: Text("Save"),
|
||||
widget.budget
|
||||
..name = _budgetNameEditController.text
|
||||
..includeOtherSpendings = _includeOtherSpendings;
|
||||
await upsertBudget(widget.budget);
|
||||
widget.onDone();
|
||||
},
|
||||
child: Text("Save"),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -99,7 +99,9 @@ class CoreCubit extends Cubit<CoreState> {
|
||||
emit(state.copyWith(expenseCategories: await getExpenseCategories()));
|
||||
});
|
||||
_budgetsStreamSubscription?.cancel();
|
||||
_budgetsStreamSubscription = watchBudgets(activeAccount!).listen((_) async {
|
||||
_budgetsStreamSubscription = watchBudgets(activeAccount!).listen((
|
||||
_,
|
||||
) async {
|
||||
emit(state.copyWith(budgets: await getBudgets(activeAccount!)));
|
||||
});
|
||||
}
|
||||
|
@ -12,8 +12,7 @@ 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 {
|
||||
@ -42,19 +41,18 @@ 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});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -82,66 +80,52 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
|
||||
Object? budgets = null,
|
||||
Object? activeBudget = freezed,
|
||||
}) {
|
||||
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?,
|
||||
) as $Val);
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,24 +133,22 @@ 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});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -174,9 +156,8 @@ 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
|
||||
@ -193,90 +174,77 @@ class __$$CoreStateImplCopyWithImpl<$Res>
|
||||
Object? budgets = null,
|
||||
Object? activeBudget = freezed,
|
||||
}) {
|
||||
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?,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @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})
|
||||
: _accounts = accounts,
|
||||
_recurringTransactions = recurringTransactions,
|
||||
_transactions = transactions,
|
||||
_transactionTemplates = transactionTemplates,
|
||||
_beneficiaries = beneficiaries,
|
||||
_expenseCategories = expenseCategories,
|
||||
_budgets = budgets;
|
||||
|
||||
@override
|
||||
@JsonKey()
|
||||
@ -373,26 +341,16 @@ 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));
|
||||
@ -400,19 +358,18 @@ class _$CoreStateImpl implements _CoreState {
|
||||
|
||||
@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);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@ -422,19 +379,18 @@ 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}) = _$CoreStateImpl;
|
||||
|
||||
@override
|
||||
OkanePage get activePage;
|
||||
|
@ -17,7 +17,7 @@ Future<T?> showDialogOrModal<T>({
|
||||
builder:
|
||||
(context) => Padding(
|
||||
padding: EdgeInsets.only(
|
||||
bottom: 32 + MediaQuery.of(context).viewInsets.bottom,
|
||||
bottom: 32 + MediaQuery.of(context).viewInsets.bottom,
|
||||
),
|
||||
child: builder(context),
|
||||
),
|
||||
@ -74,5 +74,12 @@ String formatCurrency(double amount, {bool precise = true}) {
|
||||
}
|
||||
|
||||
DateTime monthEnding(DateTime now) {
|
||||
return DateTime(now.year, now.month, 32, 23, 59, 59);
|
||||
}
|
||||
return DateTime(
|
||||
now.year,
|
||||
now.month,
|
||||
32,
|
||||
23,
|
||||
59,
|
||||
59,
|
||||
);
|
||||
}
|
@ -22,7 +22,8 @@ class AccountIndicator extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
if (trailing != null) trailing!,
|
||||
if (trailing != null)
|
||||
trailing!,
|
||||
],
|
||||
),
|
||||
);
|
||||
|
@ -1,84 +0,0 @@
|
||||
import 'package:fl_chart/fl_chart.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:okane/ui/pages/account/breakdown_card.dart';
|
||||
|
||||
typedef OkanePieChartSection = ({String title, double value, Color color});
|
||||
|
||||
typedef OkanePieChartValueConverter = String Function(double);
|
||||
|
||||
String numToString(double input) {
|
||||
return input.toString();
|
||||
}
|
||||
|
||||
class OkanePieChart extends StatelessWidget {
|
||||
// Width of the pie chart
|
||||
final double width;
|
||||
|
||||
// Height of the pie chart
|
||||
final double height;
|
||||
|
||||
final List<OkanePieChartSection> items;
|
||||
|
||||
final OkanePieChartValueConverter valueConverter;
|
||||
|
||||
const OkanePieChart({
|
||||
required this.items,
|
||||
this.valueConverter = numToString,
|
||||
this.width = 150,
|
||||
this.height = 150,
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(16),
|
||||
child: SizedBox(
|
||||
width: width,
|
||||
height: height,
|
||||
child: AspectRatio(
|
||||
aspectRatio: 1,
|
||||
child: PieChart(
|
||||
PieChartData(
|
||||
borderData: FlBorderData(show: false),
|
||||
sectionsSpace: 5,
|
||||
centerSpaceRadius: 35,
|
||||
sections:
|
||||
items
|
||||
.map(
|
||||
(i) => PieChartSectionData(
|
||||
value: i.value,
|
||||
title: valueConverter(i.value),
|
||||
titleStyle: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
radius: 40,
|
||||
color: i.color,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children:
|
||||
items
|
||||
.map((i) => LegendItem(text: i.title, color: i.color))
|
||||
.toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:okane/screen.dart';
|
||||
import 'package:okane/ui/widgets/piechart.dart';
|
||||
|
||||
class ResponsiveCard extends StatelessWidget {
|
||||
final String titleText;
|
||||
final String? subtitleText;
|
||||
|
||||
final Widget child;
|
||||
|
||||
const ResponsiveCard({
|
||||
super.key,
|
||||
required this.titleText,
|
||||
required this.child,
|
||||
this.subtitleText,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final screenSize = getScreenSize(context);
|
||||
final card = Card(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 8, left: 8, right: 8),
|
||||
child: Text(
|
||||
titleText,
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.titleLarge!.copyWith(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
|
||||
child,
|
||||
|
||||
if (subtitleText != null)
|
||||
Padding(padding: EdgeInsets.all(8), child: Text(subtitleText!)),
|
||||
],
|
||||
),
|
||||
);
|
||||
return switch (screenSize) {
|
||||
ScreenSize.small => Row(children: [Expanded(child: card)]),
|
||||
ScreenSize.normal => Container(
|
||||
constraints: BoxConstraints(maxWidth: ScreenSize.normal.size),
|
||||
child: card,
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class PieChartCard extends StatelessWidget {
|
||||
final String titleText;
|
||||
|
||||
// Text to display when items is empty.
|
||||
final String fallbackText;
|
||||
|
||||
final OkanePieChartValueConverter valueConverter;
|
||||
|
||||
final List<OkanePieChartSection> items;
|
||||
|
||||
const PieChartCard({
|
||||
super.key,
|
||||
this.valueConverter = numToString,
|
||||
required this.items,
|
||||
required this.fallbackText,
|
||||
required this.titleText,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final child =
|
||||
items.isEmpty
|
||||
? SizedBox(
|
||||
width: 150,
|
||||
height: 150,
|
||||
child: Center(child: Text(fallbackText)),
|
||||
)
|
||||
: OkanePieChart(valueConverter: valueConverter, items: items);
|
||||
|
||||
return ResponsiveCard(titleText: titleText, child: child);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user