Make the pie chart widget reusable
This commit is contained in:
parent
d40d24f759
commit
63b5354b72
@ -17,11 +17,7 @@ const AccountSchema = CollectionSchema(
|
|||||||
name: r'Account',
|
name: r'Account',
|
||||||
id: -6646797162501847804,
|
id: -6646797162501847804,
|
||||||
properties: {
|
properties: {
|
||||||
r'name': PropertySchema(
|
r'name': PropertySchema(id: 0, name: r'name', type: IsarType.string),
|
||||||
id: 0,
|
|
||||||
name: r'name',
|
|
||||||
type: IsarType.string,
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
estimateSize: _accountEstimateSize,
|
estimateSize: _accountEstimateSize,
|
||||||
serialize: _accountSerialize,
|
serialize: _accountSerialize,
|
||||||
@ -110,10 +106,7 @@ extension AccountQueryWhereSort on QueryBuilder<Account, Account, QWhere> {
|
|||||||
extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
|
extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
|
||||||
QueryBuilder<Account, Account, QAfterWhereClause> idEqualTo(Id id) {
|
QueryBuilder<Account, Account, QAfterWhereClause> idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,8 +132,10 @@ extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterWhereClause> idGreaterThan(Id id,
|
QueryBuilder<Account, Account, QAfterWhereClause> idGreaterThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||||
@ -148,8 +143,10 @@ extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterWhereClause> idLessThan(Id id,
|
QueryBuilder<Account, Account, QAfterWhereClause> idLessThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||||
@ -164,12 +161,14 @@ extension AccountQueryWhere on QueryBuilder<Account, Account, QWhereClause> {
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,10 +177,9 @@ extension AccountQueryFilter
|
|||||||
on QueryBuilder<Account, Account, QFilterCondition> {
|
on QueryBuilder<Account, Account, QFilterCondition> {
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> idEqualTo(Id value) {
|
QueryBuilder<Account, Account, QAfterFilterCondition> idEqualTo(Id value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,11 +188,13 @@ extension AccountQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,11 +203,13 @@ extension AccountQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,29 +220,31 @@ extension AccountQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNull() {
|
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
const FilterCondition.isNull(property: r'name'),
|
||||||
));
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNotNull() {
|
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNotNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
const FilterCondition.isNotNull(property: r'name'),
|
||||||
));
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,11 +253,13 @@ extension AccountQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,12 +269,14 @@ extension AccountQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,12 +286,14 @@ extension AccountQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -295,14 +305,16 @@ extension AccountQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,11 +323,13 @@ extension AccountQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,53 +338,59 @@ extension AccountQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> nameContains(
|
QueryBuilder<Account, Account, QAfterFilterCondition> nameContains(
|
||||||
String value,
|
String value, {
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> nameMatches(
|
QueryBuilder<Account, Account, QAfterFilterCondition> nameMatches(
|
||||||
String pattern,
|
String pattern, {
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsEmpty() {
|
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.equalTo(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNotEmpty() {
|
QueryBuilder<Account, Account, QAfterFilterCondition> nameIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.greaterThan(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -424,8 +444,9 @@ extension AccountQuerySortThenBy
|
|||||||
|
|
||||||
extension AccountQueryWhereDistinct
|
extension AccountQueryWhereDistinct
|
||||||
on QueryBuilder<Account, Account, QDistinct> {
|
on QueryBuilder<Account, Account, QDistinct> {
|
||||||
QueryBuilder<Account, Account, QDistinct> distinctByName(
|
QueryBuilder<Account, Account, QDistinct> distinctByName({
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
||||||
});
|
});
|
||||||
|
@ -22,17 +22,13 @@ const BeneficiarySchema = CollectionSchema(
|
|||||||
name: r'imagePath',
|
name: r'imagePath',
|
||||||
type: IsarType.string,
|
type: IsarType.string,
|
||||||
),
|
),
|
||||||
r'name': PropertySchema(
|
r'name': PropertySchema(id: 1, name: r'name', type: IsarType.string),
|
||||||
id: 1,
|
|
||||||
name: r'name',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'type': PropertySchema(
|
r'type': PropertySchema(
|
||||||
id: 2,
|
id: 2,
|
||||||
name: r'type',
|
name: r'type',
|
||||||
type: IsarType.byte,
|
type: IsarType.byte,
|
||||||
enumMap: _BeneficiarytypeEnumValueMap,
|
enumMap: _BeneficiarytypeEnumValueMap,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
estimateSize: _beneficiaryEstimateSize,
|
estimateSize: _beneficiaryEstimateSize,
|
||||||
serialize: _beneficiarySerialize,
|
serialize: _beneficiarySerialize,
|
||||||
@ -46,7 +42,7 @@ const BeneficiarySchema = CollectionSchema(
|
|||||||
name: r'account',
|
name: r'account',
|
||||||
target: r'Account',
|
target: r'Account',
|
||||||
single: true,
|
single: true,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
embeddedSchemas: {},
|
embeddedSchemas: {},
|
||||||
getId: _beneficiaryGetId,
|
getId: _beneficiaryGetId,
|
||||||
@ -111,16 +107,14 @@ P _beneficiaryDeserializeProp<P>(
|
|||||||
return (reader.readString(offset)) as P;
|
return (reader.readString(offset)) as P;
|
||||||
case 2:
|
case 2:
|
||||||
return (_BeneficiarytypeValueEnumMap[reader.readByteOrNull(offset)] ??
|
return (_BeneficiarytypeValueEnumMap[reader.readByteOrNull(offset)] ??
|
||||||
BeneficiaryType.account) as P;
|
BeneficiaryType.account)
|
||||||
|
as P;
|
||||||
default:
|
default:
|
||||||
throw IsarError('Unknown property with id $propertyId');
|
throw IsarError('Unknown property with id $propertyId');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const _BeneficiarytypeEnumValueMap = {
|
const _BeneficiarytypeEnumValueMap = {'account': 0, 'other': 1};
|
||||||
'account': 0,
|
|
||||||
'other': 1,
|
|
||||||
};
|
|
||||||
const _BeneficiarytypeValueEnumMap = {
|
const _BeneficiarytypeValueEnumMap = {
|
||||||
0: BeneficiaryType.account,
|
0: BeneficiaryType.account,
|
||||||
1: BeneficiaryType.other,
|
1: BeneficiaryType.other,
|
||||||
@ -135,7 +129,10 @@ List<IsarLinkBase<dynamic>> _beneficiaryGetLinks(Beneficiary object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _beneficiaryAttach(
|
void _beneficiaryAttach(
|
||||||
IsarCollection<dynamic> col, Id id, Beneficiary object) {
|
IsarCollection<dynamic> col,
|
||||||
|
Id id,
|
||||||
|
Beneficiary object,
|
||||||
|
) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
|
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
|
||||||
}
|
}
|
||||||
@ -153,15 +150,13 @@ extension BeneficiaryQueryWhere
|
|||||||
on QueryBuilder<Beneficiary, Beneficiary, QWhereClause> {
|
on QueryBuilder<Beneficiary, Beneficiary, QWhereClause> {
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idEqualTo(Id id) {
|
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idNotEqualTo(
|
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idNotEqualTo(
|
||||||
Id id) {
|
Id id,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
if (query.whereSort == Sort.asc) {
|
if (query.whereSort == Sort.asc) {
|
||||||
return query
|
return query
|
||||||
@ -183,8 +178,10 @@ extension BeneficiaryQueryWhere
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idGreaterThan(Id id,
|
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idGreaterThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||||
@ -192,8 +189,10 @@ extension BeneficiaryQueryWhere
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idLessThan(Id id,
|
QueryBuilder<Beneficiary, Beneficiary, QAfterWhereClause> idLessThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||||
@ -208,12 +207,14 @@ extension BeneficiaryQueryWhere
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -221,12 +222,12 @@ extension BeneficiaryQueryWhere
|
|||||||
extension BeneficiaryQueryFilter
|
extension BeneficiaryQueryFilter
|
||||||
on QueryBuilder<Beneficiary, Beneficiary, QFilterCondition> {
|
on QueryBuilder<Beneficiary, Beneficiary, QFilterCondition> {
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> idEqualTo(
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> idEqualTo(
|
||||||
Id value) {
|
Id value,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -235,11 +236,13 @@ extension BeneficiaryQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,11 +251,13 @@ extension BeneficiaryQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,45 +268,46 @@ extension BeneficiaryQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathIsNull() {
|
imagePathIsNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
return query.addFilterCondition(
|
||||||
property: r'imagePath',
|
const FilterCondition.isNull(property: r'imagePath'),
|
||||||
));
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathIsNotNull() {
|
imagePathIsNotNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
return query.addFilterCondition(
|
||||||
property: r'imagePath',
|
const FilterCondition.isNotNull(property: r'imagePath'),
|
||||||
));
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathEqualTo(
|
imagePathEqualTo(String? value, {bool caseSensitive = true}) {
|
||||||
String? value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,12 +318,14 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,12 +336,14 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,84 +356,86 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathStartsWith(
|
imagePathStartsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathEndsWith(
|
imagePathEndsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathContains(String value, {bool caseSensitive = true}) {
|
imagePathContains(String value, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathMatches(String pattern, {bool caseSensitive = true}) {
|
imagePathMatches(String pattern, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'imagePath',
|
property: r'imagePath',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathIsEmpty() {
|
imagePathIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'imagePath',
|
FilterCondition.equalTo(property: r'imagePath', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
imagePathIsNotEmpty() {
|
imagePathIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'imagePath',
|
FilterCondition.greaterThan(property: r'imagePath', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -432,11 +444,13 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -446,12 +460,14 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,12 +477,14 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -478,14 +496,16 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,11 +514,13 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -507,64 +529,70 @@ extension BeneficiaryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameContains(
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameContains(
|
||||||
String value,
|
String value, {
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameMatches(
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameMatches(
|
||||||
String pattern,
|
String pattern, {
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameIsEmpty() {
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> nameIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.equalTo(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition>
|
||||||
nameIsNotEmpty() {
|
nameIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.greaterThan(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> typeEqualTo(
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> typeEqualTo(
|
||||||
BeneficiaryType value) {
|
BeneficiaryType value,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'type',
|
FilterCondition.equalTo(property: r'type', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,11 +601,13 @@ extension BeneficiaryQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'type',
|
property: r'type',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -586,11 +616,13 @@ extension BeneficiaryQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'type',
|
property: r'type',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -601,13 +633,15 @@ extension BeneficiaryQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'type',
|
property: r'type',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -618,7 +652,8 @@ extension BeneficiaryQueryObject
|
|||||||
extension BeneficiaryQueryLinks
|
extension BeneficiaryQueryLinks
|
||||||
on QueryBuilder<Beneficiary, Beneficiary, QFilterCondition> {
|
on QueryBuilder<Beneficiary, Beneficiary, QFilterCondition> {
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> account(
|
QueryBuilder<Beneficiary, Beneficiary, QAfterFilterCondition> account(
|
||||||
FilterQuery<Account> q) {
|
FilterQuery<Account> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'account');
|
return query.link(q, r'account');
|
||||||
});
|
});
|
||||||
@ -724,15 +759,17 @@ extension BeneficiaryQuerySortThenBy
|
|||||||
|
|
||||||
extension BeneficiaryQueryWhereDistinct
|
extension BeneficiaryQueryWhereDistinct
|
||||||
on QueryBuilder<Beneficiary, Beneficiary, QDistinct> {
|
on QueryBuilder<Beneficiary, Beneficiary, QDistinct> {
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByImagePath(
|
QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByImagePath({
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addDistinctBy(r'imagePath', caseSensitive: caseSensitive);
|
return query.addDistinctBy(r'imagePath', caseSensitive: caseSensitive);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByName(
|
QueryBuilder<Beneficiary, Beneficiary, QDistinct> distinctByName({
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
||||||
});
|
});
|
||||||
|
@ -5,9 +5,7 @@ import 'account.dart';
|
|||||||
|
|
||||||
part 'budget.g.dart';
|
part 'budget.g.dart';
|
||||||
|
|
||||||
enum BudgetPeriod {
|
enum BudgetPeriod { month }
|
||||||
month
|
|
||||||
}
|
|
||||||
|
|
||||||
@collection
|
@collection
|
||||||
class BudgetItem {
|
class BudgetItem {
|
||||||
|
@ -17,11 +17,7 @@ const BudgetItemSchema = CollectionSchema(
|
|||||||
name: r'BudgetItem',
|
name: r'BudgetItem',
|
||||||
id: 618999772191843499,
|
id: 618999772191843499,
|
||||||
properties: {
|
properties: {
|
||||||
r'amount': PropertySchema(
|
r'amount': PropertySchema(id: 0, name: r'amount', type: IsarType.double),
|
||||||
id: 0,
|
|
||||||
name: r'amount',
|
|
||||||
type: IsarType.double,
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
estimateSize: _budgetItemEstimateSize,
|
estimateSize: _budgetItemEstimateSize,
|
||||||
serialize: _budgetItemSerialize,
|
serialize: _budgetItemSerialize,
|
||||||
@ -35,7 +31,7 @@ const BudgetItemSchema = CollectionSchema(
|
|||||||
name: r'expenseCategory',
|
name: r'expenseCategory',
|
||||||
target: r'ExpenseCategory',
|
target: r'ExpenseCategory',
|
||||||
single: true,
|
single: true,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
embeddedSchemas: {},
|
embeddedSchemas: {},
|
||||||
getId: _budgetItemGetId,
|
getId: _budgetItemGetId,
|
||||||
@ -99,7 +95,11 @@ List<IsarLinkBase<dynamic>> _budgetItemGetLinks(BudgetItem object) {
|
|||||||
void _budgetItemAttach(IsarCollection<dynamic> col, Id id, BudgetItem object) {
|
void _budgetItemAttach(IsarCollection<dynamic> col, Id id, BudgetItem object) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
object.expenseCategory.attach(
|
object.expenseCategory.attach(
|
||||||
col, col.isar.collection<ExpenseCategory>(), r'expenseCategory', id);
|
col,
|
||||||
|
col.isar.collection<ExpenseCategory>(),
|
||||||
|
r'expenseCategory',
|
||||||
|
id,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
extension BudgetItemQueryWhereSort
|
extension BudgetItemQueryWhereSort
|
||||||
@ -115,10 +115,7 @@ extension BudgetItemQueryWhere
|
|||||||
on QueryBuilder<BudgetItem, BudgetItem, QWhereClause> {
|
on QueryBuilder<BudgetItem, BudgetItem, QWhereClause> {
|
||||||
QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idEqualTo(Id id) {
|
QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,8 +141,10 @@ extension BudgetItemQueryWhere
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idGreaterThan(Id id,
|
QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idGreaterThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||||
@ -153,8 +152,10 @@ extension BudgetItemQueryWhere
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idLessThan(Id id,
|
QueryBuilder<BudgetItem, BudgetItem, QAfterWhereClause> idLessThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||||
@ -169,12 +170,14 @@ extension BudgetItemQueryWhere
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -186,11 +189,13 @@ extension BudgetItemQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,12 +205,14 @@ extension BudgetItemQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,12 +222,14 @@ extension BudgetItemQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,24 +241,26 @@ extension BudgetItemQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition> idEqualTo(
|
QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition> idEqualTo(
|
||||||
Id value) {
|
Id value,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,11 +269,13 @@ extension BudgetItemQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,11 +284,13 @@ extension BudgetItemQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,13 +301,15 @@ extension BudgetItemQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -303,7 +320,8 @@ extension BudgetItemQueryObject
|
|||||||
extension BudgetItemQueryLinks
|
extension BudgetItemQueryLinks
|
||||||
on QueryBuilder<BudgetItem, BudgetItem, QFilterCondition> {
|
on QueryBuilder<BudgetItem, BudgetItem, QFilterCondition> {
|
||||||
QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition> expenseCategory(
|
QueryBuilder<BudgetItem, BudgetItem, QAfterFilterCondition> expenseCategory(
|
||||||
FilterQuery<ExpenseCategory> q) {
|
FilterQuery<ExpenseCategory> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'expenseCategory');
|
return query.link(q, r'expenseCategory');
|
||||||
});
|
});
|
||||||
@ -399,22 +417,14 @@ const BudgetSchema = CollectionSchema(
|
|||||||
name: r'includeOtherSpendings',
|
name: r'includeOtherSpendings',
|
||||||
type: IsarType.bool,
|
type: IsarType.bool,
|
||||||
),
|
),
|
||||||
r'income': PropertySchema(
|
r'income': PropertySchema(id: 1, name: r'income', type: IsarType.double),
|
||||||
id: 1,
|
r'name': PropertySchema(id: 2, name: r'name', type: IsarType.string),
|
||||||
name: r'income',
|
|
||||||
type: IsarType.double,
|
|
||||||
),
|
|
||||||
r'name': PropertySchema(
|
|
||||||
id: 2,
|
|
||||||
name: r'name',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'period': PropertySchema(
|
r'period': PropertySchema(
|
||||||
id: 3,
|
id: 3,
|
||||||
name: r'period',
|
name: r'period',
|
||||||
type: IsarType.byte,
|
type: IsarType.byte,
|
||||||
enumMap: _BudgetperiodEnumValueMap,
|
enumMap: _BudgetperiodEnumValueMap,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
estimateSize: _budgetEstimateSize,
|
estimateSize: _budgetEstimateSize,
|
||||||
serialize: _budgetSerialize,
|
serialize: _budgetSerialize,
|
||||||
@ -434,7 +444,7 @@ const BudgetSchema = CollectionSchema(
|
|||||||
name: r'items',
|
name: r'items',
|
||||||
target: r'BudgetItem',
|
target: r'BudgetItem',
|
||||||
single: false,
|
single: false,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
embeddedSchemas: {},
|
embeddedSchemas: {},
|
||||||
getId: _budgetGetId,
|
getId: _budgetGetId,
|
||||||
@ -497,18 +507,15 @@ P _budgetDeserializeProp<P>(
|
|||||||
return (reader.readString(offset)) as P;
|
return (reader.readString(offset)) as P;
|
||||||
case 3:
|
case 3:
|
||||||
return (_BudgetperiodValueEnumMap[reader.readByteOrNull(offset)] ??
|
return (_BudgetperiodValueEnumMap[reader.readByteOrNull(offset)] ??
|
||||||
BudgetPeriod.month) as P;
|
BudgetPeriod.month)
|
||||||
|
as P;
|
||||||
default:
|
default:
|
||||||
throw IsarError('Unknown property with id $propertyId');
|
throw IsarError('Unknown property with id $propertyId');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const _BudgetperiodEnumValueMap = {
|
const _BudgetperiodEnumValueMap = {'month': 0};
|
||||||
'month': 0,
|
const _BudgetperiodValueEnumMap = {0: BudgetPeriod.month};
|
||||||
};
|
|
||||||
const _BudgetperiodValueEnumMap = {
|
|
||||||
0: BudgetPeriod.month,
|
|
||||||
};
|
|
||||||
|
|
||||||
Id _budgetGetId(Budget object) {
|
Id _budgetGetId(Budget object) {
|
||||||
return object.id;
|
return object.id;
|
||||||
@ -535,10 +542,7 @@ extension BudgetQueryWhereSort on QueryBuilder<Budget, Budget, QWhere> {
|
|||||||
extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
|
extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
|
||||||
QueryBuilder<Budget, Budget, QAfterWhereClause> idEqualTo(Id id) {
|
QueryBuilder<Budget, Budget, QAfterWhereClause> idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -564,8 +568,10 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterWhereClause> idGreaterThan(Id id,
|
QueryBuilder<Budget, Budget, QAfterWhereClause> idGreaterThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||||
@ -573,8 +579,10 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterWhereClause> idLessThan(Id id,
|
QueryBuilder<Budget, Budget, QAfterWhereClause> idLessThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||||
@ -589,12 +597,14 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -602,10 +612,9 @@ extension BudgetQueryWhere on QueryBuilder<Budget, Budget, QWhereClause> {
|
|||||||
extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> idEqualTo(Id value) {
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> idEqualTo(Id value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -614,11 +623,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -627,11 +638,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -642,23 +655,27 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition>
|
QueryBuilder<Budget, Budget, QAfterFilterCondition>
|
||||||
includeOtherSpendingsEqualTo(bool value) {
|
includeOtherSpendingsEqualTo(bool value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'includeOtherSpendings',
|
property: r'includeOtherSpendings',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -667,11 +684,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'income',
|
property: r'income',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -681,12 +700,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'income',
|
property: r'income',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -696,12 +717,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'income',
|
property: r'income',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -713,14 +736,16 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'income',
|
property: r'income',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -729,11 +754,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -743,12 +770,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -758,12 +787,14 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -775,14 +806,16 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -791,11 +824,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -804,62 +839,69 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameContains(String value,
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameContains(
|
||||||
{bool caseSensitive = true}) {
|
String value, {
|
||||||
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameMatches(
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameMatches(
|
||||||
String pattern,
|
String pattern, {
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameIsEmpty() {
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.equalTo(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameIsNotEmpty() {
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> nameIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.greaterThan(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> periodEqualTo(
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> periodEqualTo(
|
||||||
BudgetPeriod value) {
|
BudgetPeriod value,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'period',
|
FilterCondition.equalTo(property: r'period', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -868,11 +910,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'period',
|
property: r'period',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -881,11 +925,13 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'period',
|
property: r'period',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -896,13 +942,15 @@ extension BudgetQueryFilter on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'period',
|
property: r'period',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -911,7 +959,8 @@ extension BudgetQueryObject on QueryBuilder<Budget, Budget, QFilterCondition> {}
|
|||||||
|
|
||||||
extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
|
extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> account(
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> account(
|
||||||
FilterQuery<Account> q) {
|
FilterQuery<Account> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'account');
|
return query.link(q, r'account');
|
||||||
});
|
});
|
||||||
@ -924,14 +973,16 @@ extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> items(
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> items(
|
||||||
FilterQuery<BudgetItem> q) {
|
FilterQuery<BudgetItem> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'items');
|
return query.link(q, r'items');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QAfterFilterCondition> itemsLengthEqualTo(
|
QueryBuilder<Budget, Budget, QAfterFilterCondition> itemsLengthEqualTo(
|
||||||
int length) {
|
int length,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.linkLength(r'items', length, true, length, true);
|
return query.linkLength(r'items', length, true, length, true);
|
||||||
});
|
});
|
||||||
@ -975,7 +1026,12 @@ extension BudgetQueryLinks on QueryBuilder<Budget, Budget, QFilterCondition> {
|
|||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.linkLength(
|
return query.linkLength(
|
||||||
r'items', lower, includeLower, upper, includeUpper);
|
r'items',
|
||||||
|
lower,
|
||||||
|
includeLower,
|
||||||
|
upper,
|
||||||
|
includeUpper,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1105,8 +1161,9 @@ extension BudgetQueryWhereDistinct on QueryBuilder<Budget, Budget, QDistinct> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Budget, Budget, QDistinct> distinctByName(
|
QueryBuilder<Budget, Budget, QDistinct> distinctByName({
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
||||||
});
|
});
|
||||||
|
@ -17,11 +17,7 @@ const ExpenseCategorySchema = CollectionSchema(
|
|||||||
name: r'ExpenseCategory',
|
name: r'ExpenseCategory',
|
||||||
id: -6352499903118634,
|
id: -6352499903118634,
|
||||||
properties: {
|
properties: {
|
||||||
r'name': PropertySchema(
|
r'name': PropertySchema(id: 0, name: r'name', type: IsarType.string),
|
||||||
id: 0,
|
|
||||||
name: r'name',
|
|
||||||
type: IsarType.string,
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
estimateSize: _expenseCategoryEstimateSize,
|
estimateSize: _expenseCategoryEstimateSize,
|
||||||
serialize: _expenseCategorySerialize,
|
serialize: _expenseCategorySerialize,
|
||||||
@ -91,7 +87,10 @@ List<IsarLinkBase<dynamic>> _expenseCategoryGetLinks(ExpenseCategory object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _expenseCategoryAttach(
|
void _expenseCategoryAttach(
|
||||||
IsarCollection<dynamic> col, Id id, ExpenseCategory object) {
|
IsarCollection<dynamic> col,
|
||||||
|
Id id,
|
||||||
|
ExpenseCategory object,
|
||||||
|
) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,12 +106,10 @@ extension ExpenseCategoryQueryWhereSort
|
|||||||
extension ExpenseCategoryQueryWhere
|
extension ExpenseCategoryQueryWhere
|
||||||
on QueryBuilder<ExpenseCategory, ExpenseCategory, QWhereClause> {
|
on QueryBuilder<ExpenseCategory, ExpenseCategory, QWhereClause> {
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause> idEqualTo(
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause> idEqualTo(
|
||||||
Id id) {
|
Id id,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,8 +146,9 @@ extension ExpenseCategoryQueryWhere
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause> idLessThan(
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterWhereClause> idLessThan(
|
||||||
Id id,
|
Id id, {
|
||||||
{bool include = false}) {
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||||
@ -165,12 +163,14 @@ extension ExpenseCategoryQueryWhere
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,38 +180,35 @@ extension ExpenseCategoryQueryFilter
|
|||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
idEqualTo(Id value) {
|
idEqualTo(Id value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
idGreaterThan(
|
idGreaterThan(Id value, {bool include = false}) {
|
||||||
Id value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
idLessThan(
|
idLessThan(Id value, {bool include = false}) {
|
||||||
Id value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,27 +220,28 @@ extension ExpenseCategoryQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameEqualTo(
|
nameEqualTo(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,12 +252,14 @@ extension ExpenseCategoryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,12 +270,14 @@ extension ExpenseCategoryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -288,84 +290,86 @@ extension ExpenseCategoryQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameStartsWith(
|
nameStartsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameEndsWith(
|
nameEndsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameContains(String value, {bool caseSensitive = true}) {
|
nameContains(String value, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameMatches(String pattern, {bool caseSensitive = true}) {
|
nameMatches(String pattern, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameIsEmpty() {
|
nameIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.equalTo(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QAfterFilterCondition>
|
||||||
nameIsNotEmpty() {
|
nameIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.greaterThan(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -422,8 +426,9 @@ extension ExpenseCategoryQuerySortThenBy
|
|||||||
|
|
||||||
extension ExpenseCategoryQueryWhereDistinct
|
extension ExpenseCategoryQueryWhereDistinct
|
||||||
on QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> {
|
on QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> {
|
||||||
QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> distinctByName(
|
QueryBuilder<ExpenseCategory, ExpenseCategory, QDistinct> distinctByName({
|
||||||
{bool caseSensitive = true}) {
|
bool caseSensitive = true,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
return query.addDistinctBy(r'name', caseSensitive: caseSensitive);
|
||||||
});
|
});
|
||||||
|
@ -18,16 +18,12 @@ const RecurringTransactionSchema = CollectionSchema(
|
|||||||
name: r'RecurringTransaction',
|
name: r'RecurringTransaction',
|
||||||
id: 969840479390105118,
|
id: 969840479390105118,
|
||||||
properties: {
|
properties: {
|
||||||
r'days': PropertySchema(
|
r'days': PropertySchema(id: 0, name: r'days', type: IsarType.long),
|
||||||
id: 0,
|
|
||||||
name: r'days',
|
|
||||||
type: IsarType.long,
|
|
||||||
),
|
|
||||||
r'lastExecution': PropertySchema(
|
r'lastExecution': PropertySchema(
|
||||||
id: 1,
|
id: 1,
|
||||||
name: r'lastExecution',
|
name: r'lastExecution',
|
||||||
type: IsarType.dateTime,
|
type: IsarType.dateTime,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
estimateSize: _recurringTransactionEstimateSize,
|
estimateSize: _recurringTransactionEstimateSize,
|
||||||
serialize: _recurringTransactionSerialize,
|
serialize: _recurringTransactionSerialize,
|
||||||
@ -47,7 +43,7 @@ const RecurringTransactionSchema = CollectionSchema(
|
|||||||
name: r'account',
|
name: r'account',
|
||||||
target: r'Account',
|
target: r'Account',
|
||||||
single: true,
|
single: true,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
embeddedSchemas: {},
|
embeddedSchemas: {},
|
||||||
getId: _recurringTransactionGetId,
|
getId: _recurringTransactionGetId,
|
||||||
@ -109,15 +105,23 @@ Id _recurringTransactionGetId(RecurringTransaction object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<IsarLinkBase<dynamic>> _recurringTransactionGetLinks(
|
List<IsarLinkBase<dynamic>> _recurringTransactionGetLinks(
|
||||||
RecurringTransaction object) {
|
RecurringTransaction object,
|
||||||
|
) {
|
||||||
return [object.template, object.account];
|
return [object.template, object.account];
|
||||||
}
|
}
|
||||||
|
|
||||||
void _recurringTransactionAttach(
|
void _recurringTransactionAttach(
|
||||||
IsarCollection<dynamic> col, Id id, RecurringTransaction object) {
|
IsarCollection<dynamic> col,
|
||||||
|
Id id,
|
||||||
|
RecurringTransaction object,
|
||||||
|
) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
object.template
|
object.template.attach(
|
||||||
.attach(col, col.isar.collection<TransactionTemplate>(), r'template', id);
|
col,
|
||||||
|
col.isar.collection<TransactionTemplate>(),
|
||||||
|
r'template',
|
||||||
|
id,
|
||||||
|
);
|
||||||
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
|
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,10 +140,7 @@ extension RecurringTransactionQueryWhere
|
|||||||
QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
|
QueryBuilder<RecurringTransaction, RecurringTransaction, QAfterWhereClause>
|
||||||
idEqualTo(Id id) {
|
idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,233 +193,319 @@ extension RecurringTransactionQueryWhere
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension RecurringTransactionQueryFilter on QueryBuilder<RecurringTransaction,
|
extension RecurringTransactionQueryFilter
|
||||||
RecurringTransaction, QFilterCondition> {
|
on
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> daysEqualTo(int value) {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QFilterCondition
|
||||||
|
> {
|
||||||
|
QueryBuilder<
|
||||||
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
daysEqualTo(int value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'days',
|
FilterCondition.equalTo(property: r'days', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> daysGreaterThan(
|
RecurringTransaction,
|
||||||
int value, {
|
RecurringTransaction,
|
||||||
bool include = false,
|
QAfterFilterCondition
|
||||||
}) {
|
>
|
||||||
|
daysGreaterThan(int value, {bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'days',
|
property: r'days',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> daysLessThan(
|
RecurringTransaction,
|
||||||
int value, {
|
RecurringTransaction,
|
||||||
bool include = false,
|
QAfterFilterCondition
|
||||||
}) {
|
>
|
||||||
|
daysLessThan(int value, {bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'days',
|
property: r'days',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> daysBetween(
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
daysBetween(
|
||||||
int lower,
|
int lower,
|
||||||
int upper, {
|
int upper, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'days',
|
property: r'days',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> idEqualTo(Id value) {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
idEqualTo(Id value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> idGreaterThan(
|
RecurringTransaction,
|
||||||
Id value, {
|
RecurringTransaction,
|
||||||
bool include = false,
|
QAfterFilterCondition
|
||||||
}) {
|
>
|
||||||
|
idGreaterThan(Id value, {bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> idLessThan(
|
RecurringTransaction,
|
||||||
Id value, {
|
RecurringTransaction,
|
||||||
bool include = false,
|
QAfterFilterCondition
|
||||||
}) {
|
>
|
||||||
|
idLessThan(Id value, {bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> idBetween(
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
idBetween(
|
||||||
Id lower,
|
Id lower,
|
||||||
Id upper, {
|
Id upper, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> lastExecutionIsNull() {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
lastExecutionIsNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
return query.addFilterCondition(
|
||||||
property: r'lastExecution',
|
const FilterCondition.isNull(property: r'lastExecution'),
|
||||||
));
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> lastExecutionIsNotNull() {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
lastExecutionIsNotNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
return query.addFilterCondition(
|
||||||
property: r'lastExecution',
|
const FilterCondition.isNotNull(property: r'lastExecution'),
|
||||||
));
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> lastExecutionEqualTo(DateTime? value) {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
lastExecutionEqualTo(DateTime? value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'lastExecution',
|
FilterCondition.equalTo(property: r'lastExecution', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> lastExecutionGreaterThan(
|
RecurringTransaction,
|
||||||
DateTime? value, {
|
RecurringTransaction,
|
||||||
bool include = false,
|
QAfterFilterCondition
|
||||||
}) {
|
>
|
||||||
|
lastExecutionGreaterThan(DateTime? value, {bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'lastExecution',
|
property: r'lastExecution',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> lastExecutionLessThan(
|
RecurringTransaction,
|
||||||
DateTime? value, {
|
RecurringTransaction,
|
||||||
bool include = false,
|
QAfterFilterCondition
|
||||||
}) {
|
>
|
||||||
|
lastExecutionLessThan(DateTime? value, {bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'lastExecution',
|
property: r'lastExecution',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> lastExecutionBetween(
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
lastExecutionBetween(
|
||||||
DateTime? lower,
|
DateTime? lower,
|
||||||
DateTime? upper, {
|
DateTime? upper, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'lastExecution',
|
property: r'lastExecution',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension RecurringTransactionQueryObject on QueryBuilder<RecurringTransaction,
|
extension RecurringTransactionQueryObject
|
||||||
RecurringTransaction, QFilterCondition> {}
|
on
|
||||||
|
QueryBuilder<
|
||||||
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QFilterCondition
|
||||||
|
> {}
|
||||||
|
|
||||||
extension RecurringTransactionQueryLinks on QueryBuilder<RecurringTransaction,
|
extension RecurringTransactionQueryLinks
|
||||||
RecurringTransaction, QFilterCondition> {
|
on
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> template(FilterQuery<TransactionTemplate> q) {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QFilterCondition
|
||||||
|
> {
|
||||||
|
QueryBuilder<
|
||||||
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
template(FilterQuery<TransactionTemplate> q) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'template');
|
return query.link(q, r'template');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> templateIsNull() {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
templateIsNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.linkLength(r'template', 0, true, 0, true);
|
return query.linkLength(r'template', 0, true, 0, true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> account(FilterQuery<Account> q) {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
account(FilterQuery<Account> q) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'account');
|
return query.link(q, r'account');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<RecurringTransaction, RecurringTransaction,
|
QueryBuilder<
|
||||||
QAfterFilterCondition> accountIsNull() {
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QAfterFilterCondition
|
||||||
|
>
|
||||||
|
accountIsNull() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.linkLength(r'account', 0, true, 0, true);
|
return query.linkLength(r'account', 0, true, 0, true);
|
||||||
});
|
});
|
||||||
@ -518,8 +605,13 @@ extension RecurringTransactionQueryWhereDistinct
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension RecurringTransactionQueryProperty on QueryBuilder<
|
extension RecurringTransactionQueryProperty
|
||||||
RecurringTransaction, RecurringTransaction, QQueryProperty> {
|
on
|
||||||
|
QueryBuilder<
|
||||||
|
RecurringTransaction,
|
||||||
|
RecurringTransaction,
|
||||||
|
QQueryProperty
|
||||||
|
> {
|
||||||
QueryBuilder<RecurringTransaction, int, QQueryOperations> idProperty() {
|
QueryBuilder<RecurringTransaction, int, QQueryOperations> idProperty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addPropertyName(r'id');
|
return query.addPropertyName(r'id');
|
||||||
|
@ -18,21 +18,13 @@ const TransactionTemplateSchema = CollectionSchema(
|
|||||||
name: r'TransactionTemplate',
|
name: r'TransactionTemplate',
|
||||||
id: -2324989530163310644,
|
id: -2324989530163310644,
|
||||||
properties: {
|
properties: {
|
||||||
r'amount': PropertySchema(
|
r'amount': PropertySchema(id: 0, name: r'amount', type: IsarType.double),
|
||||||
id: 0,
|
r'name': PropertySchema(id: 1, name: r'name', type: IsarType.string),
|
||||||
name: r'amount',
|
|
||||||
type: IsarType.double,
|
|
||||||
),
|
|
||||||
r'name': PropertySchema(
|
|
||||||
id: 1,
|
|
||||||
name: r'name',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'recurring': PropertySchema(
|
r'recurring': PropertySchema(
|
||||||
id: 2,
|
id: 2,
|
||||||
name: r'recurring',
|
name: r'recurring',
|
||||||
type: IsarType.bool,
|
type: IsarType.bool,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
estimateSize: _transactionTemplateEstimateSize,
|
estimateSize: _transactionTemplateEstimateSize,
|
||||||
serialize: _transactionTemplateSerialize,
|
serialize: _transactionTemplateSerialize,
|
||||||
@ -58,7 +50,7 @@ const TransactionTemplateSchema = CollectionSchema(
|
|||||||
name: r'account',
|
name: r'account',
|
||||||
target: r'Account',
|
target: r'Account',
|
||||||
single: true,
|
single: true,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
embeddedSchemas: {},
|
embeddedSchemas: {},
|
||||||
getId: _transactionTemplateGetId,
|
getId: _transactionTemplateGetId,
|
||||||
@ -125,17 +117,29 @@ Id _transactionTemplateGetId(TransactionTemplate object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<IsarLinkBase<dynamic>> _transactionTemplateGetLinks(
|
List<IsarLinkBase<dynamic>> _transactionTemplateGetLinks(
|
||||||
TransactionTemplate object) {
|
TransactionTemplate object,
|
||||||
|
) {
|
||||||
return [object.expenseCategory, object.beneficiary, object.account];
|
return [object.expenseCategory, object.beneficiary, object.account];
|
||||||
}
|
}
|
||||||
|
|
||||||
void _transactionTemplateAttach(
|
void _transactionTemplateAttach(
|
||||||
IsarCollection<dynamic> col, Id id, TransactionTemplate object) {
|
IsarCollection<dynamic> col,
|
||||||
|
Id id,
|
||||||
|
TransactionTemplate object,
|
||||||
|
) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
object.expenseCategory.attach(
|
object.expenseCategory.attach(
|
||||||
col, col.isar.collection<ExpenseCategory>(), r'expenseCategory', id);
|
col,
|
||||||
object.beneficiary
|
col.isar.collection<ExpenseCategory>(),
|
||||||
.attach(col, col.isar.collection<Beneficiary>(), r'beneficiary', id);
|
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);
|
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,10 +157,7 @@ extension TransactionTemplateQueryWhere
|
|||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterWhereClause>
|
||||||
idEqualTo(Id id) {
|
idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,29 +210,35 @@ extension TransactionTemplateQueryWhere
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
extension TransactionTemplateQueryFilter
|
||||||
TransactionTemplate, QFilterCondition> {
|
on
|
||||||
|
QueryBuilder<
|
||||||
|
TransactionTemplate,
|
||||||
|
TransactionTemplate,
|
||||||
|
QFilterCondition
|
||||||
|
> {
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
amountEqualTo(
|
amountEqualTo(double value, {double epsilon = Query.epsilon}) {
|
||||||
double value, {
|
|
||||||
double epsilon = Query.epsilon,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,12 +249,14 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,12 +267,14 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,52 +287,51 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
idEqualTo(Id value) {
|
idEqualTo(Id value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
idGreaterThan(
|
idGreaterThan(Id value, {bool include = false}) {
|
||||||
Id value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
idLessThan(
|
idLessThan(Id value, {bool include = false}) {
|
||||||
Id value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,27 +343,28 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameEqualTo(
|
nameEqualTo(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,12 +375,14 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,12 +393,14 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,103 +413,114 @@ extension TransactionTemplateQueryFilter on QueryBuilder<TransactionTemplate,
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameStartsWith(
|
nameStartsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameEndsWith(
|
nameEndsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameContains(String value, {bool caseSensitive = true}) {
|
nameContains(String value, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameMatches(String pattern, {bool caseSensitive = true}) {
|
nameMatches(String pattern, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'name',
|
property: r'name',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameIsEmpty() {
|
nameIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.equalTo(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
nameIsNotEmpty() {
|
nameIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'name',
|
FilterCondition.greaterThan(property: r'name', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
recurringEqualTo(bool value) {
|
recurringEqualTo(bool value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'recurring',
|
FilterCondition.equalTo(property: r'recurring', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension TransactionTemplateQueryObject on QueryBuilder<TransactionTemplate,
|
extension TransactionTemplateQueryObject
|
||||||
TransactionTemplate, QFilterCondition> {}
|
on
|
||||||
|
QueryBuilder<
|
||||||
|
TransactionTemplate,
|
||||||
|
TransactionTemplate,
|
||||||
|
QFilterCondition
|
||||||
|
> {}
|
||||||
|
|
||||||
extension TransactionTemplateQueryLinks on QueryBuilder<TransactionTemplate,
|
extension TransactionTemplateQueryLinks
|
||||||
TransactionTemplate, QFilterCondition> {
|
on
|
||||||
|
QueryBuilder<
|
||||||
|
TransactionTemplate,
|
||||||
|
TransactionTemplate,
|
||||||
|
QFilterCondition
|
||||||
|
> {
|
||||||
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
QueryBuilder<TransactionTemplate, TransactionTemplate, QAfterFilterCondition>
|
||||||
expenseCategory(FilterQuery<ExpenseCategory> q) {
|
expenseCategory(FilterQuery<ExpenseCategory> q) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
@ -17,21 +17,9 @@ const TransactionSchema = CollectionSchema(
|
|||||||
name: r'Transaction',
|
name: r'Transaction',
|
||||||
id: 5320225499417954855,
|
id: 5320225499417954855,
|
||||||
properties: {
|
properties: {
|
||||||
r'amount': PropertySchema(
|
r'amount': PropertySchema(id: 0, name: r'amount', type: IsarType.double),
|
||||||
id: 0,
|
r'date': PropertySchema(id: 1, name: r'date', type: IsarType.dateTime),
|
||||||
name: r'amount',
|
r'tags': PropertySchema(id: 2, name: r'tags', type: IsarType.stringList),
|
||||||
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,
|
estimateSize: _transactionEstimateSize,
|
||||||
serialize: _transactionSerialize,
|
serialize: _transactionSerialize,
|
||||||
@ -57,7 +45,7 @@ const TransactionSchema = CollectionSchema(
|
|||||||
name: r'beneficiary',
|
name: r'beneficiary',
|
||||||
target: r'Beneficiary',
|
target: r'Beneficiary',
|
||||||
single: true,
|
single: true,
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
embeddedSchemas: {},
|
embeddedSchemas: {},
|
||||||
getId: _transactionGetId,
|
getId: _transactionGetId,
|
||||||
@ -134,13 +122,24 @@ List<IsarLinkBase<dynamic>> _transactionGetLinks(Transaction object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _transactionAttach(
|
void _transactionAttach(
|
||||||
IsarCollection<dynamic> col, Id id, Transaction object) {
|
IsarCollection<dynamic> col,
|
||||||
|
Id id,
|
||||||
|
Transaction object,
|
||||||
|
) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
object.expenseCategory.attach(
|
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.account.attach(col, col.isar.collection<Account>(), r'account', id);
|
||||||
object.beneficiary
|
object.beneficiary.attach(
|
||||||
.attach(col, col.isar.collection<Beneficiary>(), r'beneficiary', id);
|
col,
|
||||||
|
col.isar.collection<Beneficiary>(),
|
||||||
|
r'beneficiary',
|
||||||
|
id,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
extension TransactionQueryWhereSort
|
extension TransactionQueryWhereSort
|
||||||
@ -156,15 +155,13 @@ extension TransactionQueryWhere
|
|||||||
on QueryBuilder<Transaction, Transaction, QWhereClause> {
|
on QueryBuilder<Transaction, Transaction, QWhereClause> {
|
||||||
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idEqualTo(Id id) {
|
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(lower: id, upper: id));
|
||||||
lower: id,
|
|
||||||
upper: id,
|
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idNotEqualTo(
|
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idNotEqualTo(
|
||||||
Id id) {
|
Id id,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
if (query.whereSort == Sort.asc) {
|
if (query.whereSort == Sort.asc) {
|
||||||
return query
|
return query
|
||||||
@ -186,8 +183,10 @@ extension TransactionQueryWhere
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idGreaterThan(Id id,
|
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idGreaterThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||||
@ -195,8 +194,10 @@ extension TransactionQueryWhere
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idLessThan(Id id,
|
QueryBuilder<Transaction, Transaction, QAfterWhereClause> idLessThan(
|
||||||
{bool include = false}) {
|
Id id, {
|
||||||
|
bool include = false,
|
||||||
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||||
@ -211,12 +212,14 @@ extension TransactionQueryWhere
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(
|
||||||
|
IdWhereClause.between(
|
||||||
lower: lowerId,
|
lower: lowerId,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upperId,
|
upper: upperId,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -228,11 +231,13 @@ extension TransactionQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,12 +248,14 @@ extension TransactionQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,12 +265,14 @@ extension TransactionQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
value: value,
|
value: value,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -275,24 +284,26 @@ extension TransactionQueryFilter
|
|||||||
double epsilon = Query.epsilon,
|
double epsilon = Query.epsilon,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'amount',
|
property: r'amount',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
epsilon: epsilon,
|
epsilon: epsilon,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> dateEqualTo(
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> dateEqualTo(
|
||||||
DateTime value) {
|
DateTime value,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'date',
|
FilterCondition.equalTo(property: r'date', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,11 +312,13 @@ extension TransactionQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'date',
|
property: r'date',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,11 +327,13 @@ extension TransactionQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'date',
|
property: r'date',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,23 +344,25 @@ extension TransactionQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'date',
|
property: r'date',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> idEqualTo(
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> idEqualTo(
|
||||||
Id value) {
|
Id value,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'id',
|
FilterCondition.equalTo(property: r'id', value: value),
|
||||||
value: value,
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -354,11 +371,13 @@ extension TransactionQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,11 +386,13 @@ extension TransactionQueryFilter
|
|||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'id',
|
property: r'id',
|
||||||
value: value,
|
value: value,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -382,27 +403,28 @@ extension TransactionQueryFilter
|
|||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementEqualTo(
|
tagsElementEqualTo(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.equalTo(
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,12 +435,14 @@ extension TransactionQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,12 +453,14 @@ extension TransactionQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,154 +473,120 @@ extension TransactionQueryFilter
|
|||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.between(
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
lower: lower,
|
lower: lower,
|
||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementStartsWith(
|
tagsElementStartsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.startsWith(
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementEndsWith(
|
tagsElementEndsWith(String value, {bool caseSensitive = true}) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.endsWith(
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementContains(String value, {bool caseSensitive = true}) {
|
tagsElementContains(String value, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.contains(
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementMatches(String pattern, {bool caseSensitive = true}) {
|
tagsElementMatches(String pattern, {bool caseSensitive = true}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
return query.addFilterCondition(
|
||||||
|
FilterCondition.matches(
|
||||||
property: r'tags',
|
property: r'tags',
|
||||||
wildcard: pattern,
|
wildcard: pattern,
|
||||||
caseSensitive: caseSensitive,
|
caseSensitive: caseSensitive,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementIsEmpty() {
|
tagsElementIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(
|
||||||
property: r'tags',
|
FilterCondition.equalTo(property: r'tags', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsElementIsNotEmpty() {
|
tagsElementIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(
|
||||||
property: r'tags',
|
FilterCondition.greaterThan(property: r'tags', value: ''),
|
||||||
value: '',
|
);
|
||||||
));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsLengthEqualTo(int length) {
|
tagsLengthEqualTo(int length) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.listLength(
|
return query.listLength(r'tags', length, true, length, true);
|
||||||
r'tags',
|
|
||||||
length,
|
|
||||||
true,
|
|
||||||
length,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> tagsIsEmpty() {
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> tagsIsEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.listLength(
|
return query.listLength(r'tags', 0, true, 0, true);
|
||||||
r'tags',
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsIsNotEmpty() {
|
tagsIsNotEmpty() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.listLength(
|
return query.listLength(r'tags', 0, false, 999999, true);
|
||||||
r'tags',
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
999999,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsLengthLessThan(
|
tagsLengthLessThan(int length, {bool include = false}) {
|
||||||
int length, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.listLength(
|
return query.listLength(r'tags', 0, true, length, include);
|
||||||
r'tags',
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
length,
|
|
||||||
include,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
|
||||||
tagsLengthGreaterThan(
|
tagsLengthGreaterThan(int length, {bool include = false}) {
|
||||||
int length, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.listLength(
|
return query.listLength(r'tags', length, include, 999999, true);
|
||||||
r'tags',
|
|
||||||
length,
|
|
||||||
include,
|
|
||||||
999999,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -623,7 +615,8 @@ extension TransactionQueryObject
|
|||||||
extension TransactionQueryLinks
|
extension TransactionQueryLinks
|
||||||
on QueryBuilder<Transaction, Transaction, QFilterCondition> {
|
on QueryBuilder<Transaction, Transaction, QFilterCondition> {
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> expenseCategory(
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> expenseCategory(
|
||||||
FilterQuery<ExpenseCategory> q) {
|
FilterQuery<ExpenseCategory> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'expenseCategory');
|
return query.link(q, r'expenseCategory');
|
||||||
});
|
});
|
||||||
@ -637,7 +630,8 @@ extension TransactionQueryLinks
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> account(
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> account(
|
||||||
FilterQuery<Account> q) {
|
FilterQuery<Account> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'account');
|
return query.link(q, r'account');
|
||||||
});
|
});
|
||||||
@ -651,7 +645,8 @@ extension TransactionQueryLinks
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> beneficiary(
|
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> beneficiary(
|
||||||
FilterQuery<Beneficiary> q) {
|
FilterQuery<Beneficiary> q,
|
||||||
|
) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.link(q, r'beneficiary');
|
return query.link(q, r'beneficiary');
|
||||||
});
|
});
|
||||||
|
@ -211,7 +211,12 @@ Stream<void> watchExpenseCategory() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Stream<void> watchBudgets(Account account) {
|
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) {
|
Future<List<Budget>> getBudgets(Account? account) {
|
||||||
@ -219,7 +224,12 @@ Future<List<Budget>> getBudgets(Account? account) {
|
|||||||
return Future.value([]);
|
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) {
|
Future<void> upsertBudget(Budget budget) {
|
||||||
@ -239,11 +249,13 @@ Future<void> upsertBudgetItem(BudgetItem item) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
enum TransactionQueryDateOption {
|
enum TransactionQueryDateOption { thisMonth }
|
||||||
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) {
|
final lower = switch (option) {
|
||||||
TransactionQueryDateOption.thisMonth => DateTime(
|
TransactionQueryDateOption.thisMonth => DateTime(
|
||||||
today.year,
|
today.year,
|
||||||
@ -255,7 +267,8 @@ Future<List<Transaction>> getTransactionsInTimeframe(Account account, DateTime t
|
|||||||
TransactionQueryDateOption.thisMonth => monthEnding(today),
|
TransactionQueryDateOption.thisMonth => monthEnding(today),
|
||||||
};
|
};
|
||||||
|
|
||||||
return GetIt.I.get<Isar>()
|
return GetIt.I
|
||||||
|
.get<Isar>()
|
||||||
.transactions
|
.transactions
|
||||||
.filter()
|
.filter()
|
||||||
.account((q) => q.idEqualTo(account.id))
|
.account((q) => q.idEqualTo(account.id))
|
||||||
|
@ -195,7 +195,8 @@ class OkaneNavigationLayout extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
if (p.showAccountName && state.activeAccountIndex != null)
|
if (p.showAccountName &&
|
||||||
|
state.activeAccountIndex != null)
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(left: 8),
|
padding: EdgeInsets.only(left: 8),
|
||||||
child: Text(
|
child: Text(
|
||||||
@ -218,7 +219,8 @@ class OkaneNavigationLayout extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
ScreenSize.normal => Column(
|
ScreenSize.normal => Column(
|
||||||
children: [
|
children: [
|
||||||
if (p.showAccountName && state.activeAccountIndex != null)
|
if (p.showAccountName &&
|
||||||
|
state.activeAccountIndex != null)
|
||||||
AccountIndicator(
|
AccountIndicator(
|
||||||
accountName:
|
accountName:
|
||||||
state
|
state
|
||||||
|
@ -9,6 +9,8 @@ import 'package:okane/ui/pages/account/total_balance_card.dart';
|
|||||||
import 'package:okane/ui/pages/account/upcoming_transactions_card.dart';
|
import 'package:okane/ui/pages/account/upcoming_transactions_card.dart';
|
||||||
import 'package:okane/ui/state/core.dart';
|
import 'package:okane/ui/state/core.dart';
|
||||||
import 'package:okane/ui/utils.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 {
|
class AccountListPage extends StatefulWidget {
|
||||||
final bool isPage;
|
final bool isPage;
|
||||||
@ -102,18 +104,25 @@ class AccountListPageState extends State<AccountListPage> {
|
|||||||
),
|
),
|
||||||
|
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||||
child: TotalBalanceCard(),
|
child: TotalBalanceCard(),
|
||||||
),
|
),
|
||||||
|
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||||
child: UpcomingTransactionsCard(),
|
child: UpcomingTransactionsCard(),
|
||||||
),
|
),
|
||||||
|
Wrap(
|
||||||
Row(
|
|
||||||
children: [
|
children: [
|
||||||
Padding(padding: EdgeInsets.all(16), child: BreakdownCard()),
|
Padding(
|
||||||
|
padding: EdgeInsets.all(8),
|
||||||
|
//child: BreakdownCard(),
|
||||||
|
child: PieChartCard(
|
||||||
|
titleText: "Spending Breakdown",
|
||||||
|
fallbackText: "No spending available",
|
||||||
|
items: [],
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -8,6 +8,8 @@ import 'package:okane/database/collections/transaction.dart';
|
|||||||
import 'package:okane/database/database.dart';
|
import 'package:okane/database/database.dart';
|
||||||
import 'package:okane/ui/state/core.dart';
|
import 'package:okane/ui/state/core.dart';
|
||||||
import 'package:okane/ui/utils.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_INCOME = "Income";
|
||||||
const CATEGORY_OTHER = "Other";
|
const CATEGORY_OTHER = "Other";
|
||||||
@ -71,35 +73,42 @@ class BreakdownCard extends StatelessWidget {
|
|||||||
return (expenses: expenses, colors: colors, usable: usableMoney);
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final bloc = GetIt.I.get<CoreCubit>();
|
final bloc = GetIt.I.get<CoreCubit>();
|
||||||
return Card(
|
return BlocBuilder<CoreCubit, CoreState>(
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(8),
|
|
||||||
child: BlocBuilder<CoreCubit, CoreState>(
|
|
||||||
builder: (context, state) {
|
builder: (context, state) {
|
||||||
if (bloc.activeAccount == null) {
|
if (bloc.activeAccount == null) {
|
||||||
return Text("No active account");
|
return _buildCenterText("No account active");
|
||||||
}
|
}
|
||||||
|
|
||||||
return FutureBuilder(
|
return FutureBuilder(
|
||||||
future: getLastTransactions(
|
future: getLastTransactions(bloc.activeAccount!, DateTime.now(), 30),
|
||||||
bloc.activeAccount!,
|
|
||||||
DateTime.now(),
|
|
||||||
30,
|
|
||||||
),
|
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
final title = Padding(
|
|
||||||
padding: EdgeInsets.only(bottom: 16),
|
|
||||||
child: Text("Expense Breakdown"),
|
|
||||||
);
|
|
||||||
if (!snapshot.hasData) {
|
if (!snapshot.hasData) {
|
||||||
return Column(children: [title, CircularProgressIndicator()]);
|
return _buildCard(
|
||||||
}
|
Padding(
|
||||||
|
padding: EdgeInsets.all(16),
|
||||||
if (snapshot.data!.isEmpty) {
|
child: SizedBox(
|
||||||
return Column(children: [title, Text("No transactions")]);
|
width: 150 - 16 * 2,
|
||||||
|
height: 150 - 16 * 2,
|
||||||
|
child: CircularProgressIndicator(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
null,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final data = _computeSections(snapshot.data!);
|
final data = _computeSections(snapshot.data!);
|
||||||
@ -115,58 +124,76 @@ class BreakdownCard extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
.toList();
|
.toList();
|
||||||
return Column(
|
if (sectionData.isEmpty) {
|
||||||
children: [
|
return _buildCenterText("No expenses available");
|
||||||
title,
|
}
|
||||||
Row(
|
return OkanePieChart(
|
||||||
children: [
|
items:
|
||||||
SizedBox(
|
data.expenses.entries
|
||||||
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(
|
.map(
|
||||||
(key) => LegendItem(
|
(e) => (
|
||||||
text: key,
|
title: e.key,
|
||||||
color: data.colors[key]!,
|
value: e.value,
|
||||||
|
color: colorHash(e.key),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.toList(),
|
.toList(),
|
||||||
),
|
);
|
||||||
),
|
},
|
||||||
],
|
);
|
||||||
),
|
},
|
||||||
|
);
|
||||||
|
return ResponsiveCard(
|
||||||
|
titleText: "Expense Breakdown",
|
||||||
|
child: BlocBuilder<CoreCubit, CoreState>(
|
||||||
|
builder: (context, state) {
|
||||||
|
if (bloc.activeAccount == null) {
|
||||||
|
return Text("No active account");
|
||||||
|
}
|
||||||
|
|
||||||
Padding(
|
return FutureBuilder(
|
||||||
padding: EdgeInsets.only(top: 16),
|
future: getLastTransactions(
|
||||||
child: Text(
|
bloc.activeAccount!,
|
||||||
"Available money: ${formatCurrency(data.usable)}",
|
DateTime.now(),
|
||||||
|
30,
|
||||||
),
|
),
|
||||||
|
builder: (context, snapshot) {
|
||||||
|
if (!snapshot.hasData) {
|
||||||
|
return CircularProgressIndicator();
|
||||||
|
}
|
||||||
|
|
||||||
|
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 Center(child: Text("No expenses"));
|
||||||
|
}
|
||||||
|
return OkanePieChart(
|
||||||
|
items:
|
||||||
|
data.expenses.entries
|
||||||
|
.map(
|
||||||
|
(e) => (
|
||||||
|
title: e.key,
|
||||||
|
value: e.value,
|
||||||
|
color: colorHash(e.key),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.toList(),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,18 +23,17 @@ class AddBudgetState extends State<AddBudgetPopup> {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
TextField(
|
TextField(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(hintText: "Budget name"),
|
||||||
hintText: "Budget name",
|
|
||||||
),
|
|
||||||
controller: _budgetNameEditController,
|
controller: _budgetNameEditController,
|
||||||
),
|
),
|
||||||
|
|
||||||
TextField(
|
TextField(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(hintText: "Income"),
|
||||||
hintText: "Income",
|
|
||||||
),
|
|
||||||
controller: _budgetIncomeEditController,
|
controller: _budgetIncomeEditController,
|
||||||
keyboardType: TextInputType.numberWithOptions(signed: false, decimal: true),
|
keyboardType: TextInputType.numberWithOptions(
|
||||||
|
signed: false,
|
||||||
|
decimal: true,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
Row(
|
Row(
|
||||||
@ -42,12 +41,14 @@ class AddBudgetState extends State<AddBudgetPopup> {
|
|||||||
children: [
|
children: [
|
||||||
OutlinedButton(
|
OutlinedButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (_budgetNameEditController.text.isEmpty || _budgetIncomeEditController.text.isEmpty) {
|
if (_budgetNameEditController.text.isEmpty ||
|
||||||
|
_budgetIncomeEditController.text.isEmpty) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final bloc = GetIt.I.get<CoreCubit>();
|
final bloc = GetIt.I.get<CoreCubit>();
|
||||||
final budget = Budget()
|
final budget =
|
||||||
|
Budget()
|
||||||
..name = _budgetNameEditController.text
|
..name = _budgetNameEditController.text
|
||||||
..period = BudgetPeriod.month
|
..period = BudgetPeriod.month
|
||||||
..includeOtherSpendings = false
|
..includeOtherSpendings = false
|
||||||
|
@ -11,7 +11,11 @@ class AddBudgetItemPopup extends StatefulWidget {
|
|||||||
final VoidCallback onDone;
|
final VoidCallback onDone;
|
||||||
final Budget budget;
|
final Budget budget;
|
||||||
|
|
||||||
const AddBudgetItemPopup({super.key, required this.onDone, required this.budget});
|
const AddBudgetItemPopup({
|
||||||
|
super.key,
|
||||||
|
required this.onDone,
|
||||||
|
required this.budget,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
AddBudgetItemState createState() => AddBudgetItemState();
|
AddBudgetItemState createState() => AddBudgetItemState();
|
||||||
@ -48,11 +52,12 @@ class AddBudgetItemState extends State<AddBudgetItemPopup> {
|
|||||||
),
|
),
|
||||||
|
|
||||||
TextField(
|
TextField(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(hintText: "Amount"),
|
||||||
hintText: "Amount",
|
|
||||||
),
|
|
||||||
controller: _budgetItemAmountEditController,
|
controller: _budgetItemAmountEditController,
|
||||||
keyboardType: TextInputType.numberWithOptions(signed: false, decimal: true),
|
keyboardType: TextInputType.numberWithOptions(
|
||||||
|
signed: false,
|
||||||
|
decimal: true,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
Row(
|
Row(
|
||||||
@ -60,16 +65,27 @@ class AddBudgetItemState extends State<AddBudgetItemPopup> {
|
|||||||
children: [
|
children: [
|
||||||
OutlinedButton(
|
OutlinedButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (_budgetItemAmountEditController.text.isEmpty || _expenseCategory == null) {
|
if (_budgetItemAmountEditController.text.isEmpty ||
|
||||||
|
_expenseCategory == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (widget.budget.items.where((i) => i.expenseCategory.value!.name == _expenseCategory!.name).firstOrNull != null) {
|
if (widget.budget.items
|
||||||
|
.where(
|
||||||
|
(i) =>
|
||||||
|
i.expenseCategory.value!.name ==
|
||||||
|
_expenseCategory!.name,
|
||||||
|
)
|
||||||
|
.firstOrNull !=
|
||||||
|
null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final item = BudgetItem()
|
final item =
|
||||||
|
BudgetItem()
|
||||||
..expenseCategory.value = _expenseCategory
|
..expenseCategory.value = _expenseCategory
|
||||||
..amount = double.parse(_budgetItemAmountEditController.text);
|
..amount = double.parse(
|
||||||
|
_budgetItemAmountEditController.text,
|
||||||
|
);
|
||||||
await upsertBudgetItem(item);
|
await upsertBudgetItem(item);
|
||||||
widget.budget.items.add(item);
|
widget.budget.items.add(item);
|
||||||
await upsertBudget(widget.budget);
|
await upsertBudget(widget.budget);
|
||||||
|
@ -8,6 +8,8 @@ import 'package:okane/ui/pages/account/breakdown_card.dart';
|
|||||||
import 'package:okane/ui/pages/budgets/add_budget_item.dart';
|
import 'package:okane/ui/pages/budgets/add_budget_item.dart';
|
||||||
import 'package:okane/ui/state/core.dart';
|
import 'package:okane/ui/state/core.dart';
|
||||||
import 'package:okane/ui/utils.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 {
|
class BudgetDetailsPage extends StatelessWidget {
|
||||||
final bool isPage;
|
final bool isPage;
|
||||||
@ -258,205 +260,42 @@ class BudgetDetailsPage extends StatelessWidget {
|
|||||||
Wrap(
|
Wrap(
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.all(8),
|
padding: EdgeInsets.symmetric(horizontal: 8),
|
||||||
child: SizedBox(
|
child: PieChartCard(
|
||||||
child: Card(
|
fallbackText: "",
|
||||||
child: Column(
|
valueConverter: formatCurrency,
|
||||||
crossAxisAlignment:
|
items:
|
||||||
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(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(
|
|
||||||
horizontal: 8,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment:
|
|
||||||
CrossAxisAlignment.start,
|
|
||||||
children:
|
|
||||||
state.activeBudget!.items
|
state.activeBudget!.items
|
||||||
.map(
|
.map(
|
||||||
(i) => LegendItem(
|
(i) => (
|
||||||
text:
|
title: i.expenseCategory.value!.name,
|
||||||
i
|
value: i.amount,
|
||||||
.expenseCategory
|
|
||||||
.value!
|
|
||||||
.name,
|
|
||||||
color: colorHash(
|
color: colorHash(
|
||||||
i
|
i.expenseCategory.value!.name,
|
||||||
.expenseCategory
|
|
||||||
.value!
|
|
||||||
.name,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.toList(),
|
.toList(),
|
||||||
),
|
titleText: "Budget breakdown",
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.all(8),
|
padding: EdgeInsets.symmetric(horizontal: 8),
|
||||||
child: SizedBox(
|
child: PieChartCard(
|
||||||
child: Card(
|
fallbackText: "No spending available",
|
||||||
child: Column(
|
valueConverter: formatCurrency,
|
||||||
crossAxisAlignment:
|
items:
|
||||||
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
|
spending.entries
|
||||||
.map(
|
.map(
|
||||||
(
|
(e) => (
|
||||||
e,
|
title: e.key,
|
||||||
) => PieChartSectionData(
|
value: e.value.abs(),
|
||||||
value:
|
color: colorHash(e.key),
|
||||||
e.value
|
|
||||||
.abs(),
|
|
||||||
title:
|
|
||||||
formatCurrency(
|
|
||||||
e.value
|
|
||||||
.abs(),
|
|
||||||
),
|
|
||||||
titleStyle: TextStyle(
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.bold,
|
|
||||||
),
|
|
||||||
radius: 40,
|
|
||||||
color:
|
|
||||||
colorHash(
|
|
||||||
e.key,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.toList(),
|
.toList(),
|
||||||
),
|
titleText: "Spending Breakdown",
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(
|
|
||||||
horizontal: 8,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment:
|
|
||||||
CrossAxisAlignment.start,
|
|
||||||
children:
|
|
||||||
spending.keys
|
|
||||||
.map(
|
|
||||||
(k) => LegendItem(
|
|
||||||
text: k,
|
|
||||||
color: colorHash(k),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.toList(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -19,9 +19,7 @@ class BudgetListPage extends StatelessWidget {
|
|||||||
if (state.budgets.isEmpty) {
|
if (state.budgets.isEmpty) {
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [Text("No budgets")],
|
||||||
Text("No budgets"),
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,11 @@ class EditBudgetPopup extends StatefulWidget {
|
|||||||
|
|
||||||
final VoidCallback onDone;
|
final VoidCallback onDone;
|
||||||
|
|
||||||
const EditBudgetPopup({required this.budget, required this.onDone, super.key});
|
const EditBudgetPopup({
|
||||||
|
required this.budget,
|
||||||
|
required this.onDone,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
EditBudgetState createState() => EditBudgetState();
|
EditBudgetState createState() => EditBudgetState();
|
||||||
@ -32,9 +36,7 @@ class EditBudgetState extends State<EditBudgetPopup> {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
TextField(
|
TextField(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(hintText: "Name"),
|
||||||
hintText: "Name",
|
|
||||||
),
|
|
||||||
controller: _budgetNameEditController,
|
controller: _budgetNameEditController,
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
@ -56,7 +58,9 @@ class EditBudgetState extends State<EditBudgetPopup> {
|
|||||||
if (_budgetNameEditController.text.isEmpty) {
|
if (_budgetNameEditController.text.isEmpty) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_budgetNameEditController.text == widget.budget.name && _includeOtherSpendings == widget.budget.includeOtherSpendings) {
|
if (_budgetNameEditController.text == widget.budget.name &&
|
||||||
|
_includeOtherSpendings ==
|
||||||
|
widget.budget.includeOtherSpendings) {
|
||||||
widget.onDone();
|
widget.onDone();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -99,9 +99,7 @@ class CoreCubit extends Cubit<CoreState> {
|
|||||||
emit(state.copyWith(expenseCategories: await getExpenseCategories()));
|
emit(state.copyWith(expenseCategories: await getExpenseCategories()));
|
||||||
});
|
});
|
||||||
_budgetsStreamSubscription?.cancel();
|
_budgetsStreamSubscription?.cancel();
|
||||||
_budgetsStreamSubscription = watchBudgets(activeAccount!).listen((
|
_budgetsStreamSubscription = watchBudgets(activeAccount!).listen((_) async {
|
||||||
_,
|
|
||||||
) async {
|
|
||||||
emit(state.copyWith(budgets: await getBudgets(activeAccount!)));
|
emit(state.copyWith(budgets: await getBudgets(activeAccount!)));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,8 @@ part of 'core.dart';
|
|||||||
T _$identity<T>(T value) => value;
|
T _$identity<T>(T value) => value;
|
||||||
|
|
||||||
final _privateConstructorUsedError = UnsupportedError(
|
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
|
/// @nodoc
|
||||||
mixin _$CoreState {
|
mixin _$CoreState {
|
||||||
@ -41,8 +42,8 @@ abstract class $CoreStateCopyWith<$Res> {
|
|||||||
factory $CoreStateCopyWith(CoreState value, $Res Function(CoreState) then) =
|
factory $CoreStateCopyWith(CoreState value, $Res Function(CoreState) then) =
|
||||||
_$CoreStateCopyWithImpl<$Res, CoreState>;
|
_$CoreStateCopyWithImpl<$Res, CoreState>;
|
||||||
@useResult
|
@useResult
|
||||||
$Res call(
|
$Res call({
|
||||||
{OkanePage activePage,
|
OkanePage activePage,
|
||||||
int? activeAccountIndex,
|
int? activeAccountIndex,
|
||||||
Transaction? activeTransaction,
|
Transaction? activeTransaction,
|
||||||
List<Account> accounts,
|
List<Account> accounts,
|
||||||
@ -52,7 +53,8 @@ abstract class $CoreStateCopyWith<$Res> {
|
|||||||
List<Beneficiary> beneficiaries,
|
List<Beneficiary> beneficiaries,
|
||||||
List<ExpenseCategory> expenseCategories,
|
List<ExpenseCategory> expenseCategories,
|
||||||
List<Budget> budgets,
|
List<Budget> budgets,
|
||||||
Budget? activeBudget});
|
Budget? activeBudget,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
@ -80,52 +82,66 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
|
|||||||
Object? budgets = null,
|
Object? budgets = null,
|
||||||
Object? activeBudget = freezed,
|
Object? activeBudget = freezed,
|
||||||
}) {
|
}) {
|
||||||
return _then(_value.copyWith(
|
return _then(
|
||||||
activePage: null == activePage
|
_value.copyWith(
|
||||||
|
activePage:
|
||||||
|
null == activePage
|
||||||
? _value.activePage
|
? _value.activePage
|
||||||
: activePage // ignore: cast_nullable_to_non_nullable
|
: activePage // ignore: cast_nullable_to_non_nullable
|
||||||
as OkanePage,
|
as OkanePage,
|
||||||
activeAccountIndex: freezed == activeAccountIndex
|
activeAccountIndex:
|
||||||
|
freezed == activeAccountIndex
|
||||||
? _value.activeAccountIndex
|
? _value.activeAccountIndex
|
||||||
: activeAccountIndex // ignore: cast_nullable_to_non_nullable
|
: activeAccountIndex // ignore: cast_nullable_to_non_nullable
|
||||||
as int?,
|
as int?,
|
||||||
activeTransaction: freezed == activeTransaction
|
activeTransaction:
|
||||||
|
freezed == activeTransaction
|
||||||
? _value.activeTransaction
|
? _value.activeTransaction
|
||||||
: activeTransaction // ignore: cast_nullable_to_non_nullable
|
: activeTransaction // ignore: cast_nullable_to_non_nullable
|
||||||
as Transaction?,
|
as Transaction?,
|
||||||
accounts: null == accounts
|
accounts:
|
||||||
|
null == accounts
|
||||||
? _value.accounts
|
? _value.accounts
|
||||||
: accounts // ignore: cast_nullable_to_non_nullable
|
: accounts // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Account>,
|
as List<Account>,
|
||||||
recurringTransactions: null == recurringTransactions
|
recurringTransactions:
|
||||||
|
null == recurringTransactions
|
||||||
? _value.recurringTransactions
|
? _value.recurringTransactions
|
||||||
: recurringTransactions // ignore: cast_nullable_to_non_nullable
|
: recurringTransactions // ignore: cast_nullable_to_non_nullable
|
||||||
as List<RecurringTransaction>,
|
as List<RecurringTransaction>,
|
||||||
transactions: null == transactions
|
transactions:
|
||||||
|
null == transactions
|
||||||
? _value.transactions
|
? _value.transactions
|
||||||
: transactions // ignore: cast_nullable_to_non_nullable
|
: transactions // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Transaction>,
|
as List<Transaction>,
|
||||||
transactionTemplates: null == transactionTemplates
|
transactionTemplates:
|
||||||
|
null == transactionTemplates
|
||||||
? _value.transactionTemplates
|
? _value.transactionTemplates
|
||||||
: transactionTemplates // ignore: cast_nullable_to_non_nullable
|
: transactionTemplates // ignore: cast_nullable_to_non_nullable
|
||||||
as List<TransactionTemplate>,
|
as List<TransactionTemplate>,
|
||||||
beneficiaries: null == beneficiaries
|
beneficiaries:
|
||||||
|
null == beneficiaries
|
||||||
? _value.beneficiaries
|
? _value.beneficiaries
|
||||||
: beneficiaries // ignore: cast_nullable_to_non_nullable
|
: beneficiaries // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Beneficiary>,
|
as List<Beneficiary>,
|
||||||
expenseCategories: null == expenseCategories
|
expenseCategories:
|
||||||
|
null == expenseCategories
|
||||||
? _value.expenseCategories
|
? _value.expenseCategories
|
||||||
: expenseCategories // ignore: cast_nullable_to_non_nullable
|
: expenseCategories // ignore: cast_nullable_to_non_nullable
|
||||||
as List<ExpenseCategory>,
|
as List<ExpenseCategory>,
|
||||||
budgets: null == budgets
|
budgets:
|
||||||
|
null == budgets
|
||||||
? _value.budgets
|
? _value.budgets
|
||||||
: budgets // ignore: cast_nullable_to_non_nullable
|
: budgets // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Budget>,
|
as List<Budget>,
|
||||||
activeBudget: freezed == activeBudget
|
activeBudget:
|
||||||
|
freezed == activeBudget
|
||||||
? _value.activeBudget
|
? _value.activeBudget
|
||||||
: activeBudget // ignore: cast_nullable_to_non_nullable
|
: activeBudget // ignore: cast_nullable_to_non_nullable
|
||||||
as Budget?,
|
as Budget?,
|
||||||
) as $Val);
|
)
|
||||||
|
as $Val,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,12 +149,13 @@ class _$CoreStateCopyWithImpl<$Res, $Val extends CoreState>
|
|||||||
abstract class _$$CoreStateImplCopyWith<$Res>
|
abstract class _$$CoreStateImplCopyWith<$Res>
|
||||||
implements $CoreStateCopyWith<$Res> {
|
implements $CoreStateCopyWith<$Res> {
|
||||||
factory _$$CoreStateImplCopyWith(
|
factory _$$CoreStateImplCopyWith(
|
||||||
_$CoreStateImpl value, $Res Function(_$CoreStateImpl) then) =
|
_$CoreStateImpl value,
|
||||||
__$$CoreStateImplCopyWithImpl<$Res>;
|
$Res Function(_$CoreStateImpl) then,
|
||||||
|
) = __$$CoreStateImplCopyWithImpl<$Res>;
|
||||||
@override
|
@override
|
||||||
@useResult
|
@useResult
|
||||||
$Res call(
|
$Res call({
|
||||||
{OkanePage activePage,
|
OkanePage activePage,
|
||||||
int? activeAccountIndex,
|
int? activeAccountIndex,
|
||||||
Transaction? activeTransaction,
|
Transaction? activeTransaction,
|
||||||
List<Account> accounts,
|
List<Account> accounts,
|
||||||
@ -148,7 +165,8 @@ abstract class _$$CoreStateImplCopyWith<$Res>
|
|||||||
List<Beneficiary> beneficiaries,
|
List<Beneficiary> beneficiaries,
|
||||||
List<ExpenseCategory> expenseCategories,
|
List<ExpenseCategory> expenseCategories,
|
||||||
List<Budget> budgets,
|
List<Budget> budgets,
|
||||||
Budget? activeBudget});
|
Budget? activeBudget,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
@ -156,8 +174,9 @@ class __$$CoreStateImplCopyWithImpl<$Res>
|
|||||||
extends _$CoreStateCopyWithImpl<$Res, _$CoreStateImpl>
|
extends _$CoreStateCopyWithImpl<$Res, _$CoreStateImpl>
|
||||||
implements _$$CoreStateImplCopyWith<$Res> {
|
implements _$$CoreStateImplCopyWith<$Res> {
|
||||||
__$$CoreStateImplCopyWithImpl(
|
__$$CoreStateImplCopyWithImpl(
|
||||||
_$CoreStateImpl _value, $Res Function(_$CoreStateImpl) _then)
|
_$CoreStateImpl _value,
|
||||||
: super(_value, _then);
|
$Res Function(_$CoreStateImpl) _then,
|
||||||
|
) : super(_value, _then);
|
||||||
|
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
@ -174,60 +193,73 @@ class __$$CoreStateImplCopyWithImpl<$Res>
|
|||||||
Object? budgets = null,
|
Object? budgets = null,
|
||||||
Object? activeBudget = freezed,
|
Object? activeBudget = freezed,
|
||||||
}) {
|
}) {
|
||||||
return _then(_$CoreStateImpl(
|
return _then(
|
||||||
activePage: null == activePage
|
_$CoreStateImpl(
|
||||||
|
activePage:
|
||||||
|
null == activePage
|
||||||
? _value.activePage
|
? _value.activePage
|
||||||
: activePage // ignore: cast_nullable_to_non_nullable
|
: activePage // ignore: cast_nullable_to_non_nullable
|
||||||
as OkanePage,
|
as OkanePage,
|
||||||
activeAccountIndex: freezed == activeAccountIndex
|
activeAccountIndex:
|
||||||
|
freezed == activeAccountIndex
|
||||||
? _value.activeAccountIndex
|
? _value.activeAccountIndex
|
||||||
: activeAccountIndex // ignore: cast_nullable_to_non_nullable
|
: activeAccountIndex // ignore: cast_nullable_to_non_nullable
|
||||||
as int?,
|
as int?,
|
||||||
activeTransaction: freezed == activeTransaction
|
activeTransaction:
|
||||||
|
freezed == activeTransaction
|
||||||
? _value.activeTransaction
|
? _value.activeTransaction
|
||||||
: activeTransaction // ignore: cast_nullable_to_non_nullable
|
: activeTransaction // ignore: cast_nullable_to_non_nullable
|
||||||
as Transaction?,
|
as Transaction?,
|
||||||
accounts: null == accounts
|
accounts:
|
||||||
|
null == accounts
|
||||||
? _value._accounts
|
? _value._accounts
|
||||||
: accounts // ignore: cast_nullable_to_non_nullable
|
: accounts // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Account>,
|
as List<Account>,
|
||||||
recurringTransactions: null == recurringTransactions
|
recurringTransactions:
|
||||||
|
null == recurringTransactions
|
||||||
? _value._recurringTransactions
|
? _value._recurringTransactions
|
||||||
: recurringTransactions // ignore: cast_nullable_to_non_nullable
|
: recurringTransactions // ignore: cast_nullable_to_non_nullable
|
||||||
as List<RecurringTransaction>,
|
as List<RecurringTransaction>,
|
||||||
transactions: null == transactions
|
transactions:
|
||||||
|
null == transactions
|
||||||
? _value._transactions
|
? _value._transactions
|
||||||
: transactions // ignore: cast_nullable_to_non_nullable
|
: transactions // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Transaction>,
|
as List<Transaction>,
|
||||||
transactionTemplates: null == transactionTemplates
|
transactionTemplates:
|
||||||
|
null == transactionTemplates
|
||||||
? _value._transactionTemplates
|
? _value._transactionTemplates
|
||||||
: transactionTemplates // ignore: cast_nullable_to_non_nullable
|
: transactionTemplates // ignore: cast_nullable_to_non_nullable
|
||||||
as List<TransactionTemplate>,
|
as List<TransactionTemplate>,
|
||||||
beneficiaries: null == beneficiaries
|
beneficiaries:
|
||||||
|
null == beneficiaries
|
||||||
? _value._beneficiaries
|
? _value._beneficiaries
|
||||||
: beneficiaries // ignore: cast_nullable_to_non_nullable
|
: beneficiaries // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Beneficiary>,
|
as List<Beneficiary>,
|
||||||
expenseCategories: null == expenseCategories
|
expenseCategories:
|
||||||
|
null == expenseCategories
|
||||||
? _value._expenseCategories
|
? _value._expenseCategories
|
||||||
: expenseCategories // ignore: cast_nullable_to_non_nullable
|
: expenseCategories // ignore: cast_nullable_to_non_nullable
|
||||||
as List<ExpenseCategory>,
|
as List<ExpenseCategory>,
|
||||||
budgets: null == budgets
|
budgets:
|
||||||
|
null == budgets
|
||||||
? _value._budgets
|
? _value._budgets
|
||||||
: budgets // ignore: cast_nullable_to_non_nullable
|
: budgets // ignore: cast_nullable_to_non_nullable
|
||||||
as List<Budget>,
|
as List<Budget>,
|
||||||
activeBudget: freezed == activeBudget
|
activeBudget:
|
||||||
|
freezed == activeBudget
|
||||||
? _value.activeBudget
|
? _value.activeBudget
|
||||||
: activeBudget // ignore: cast_nullable_to_non_nullable
|
: activeBudget // ignore: cast_nullable_to_non_nullable
|
||||||
as Budget?,
|
as Budget?,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
|
|
||||||
class _$CoreStateImpl implements _CoreState {
|
class _$CoreStateImpl implements _CoreState {
|
||||||
const _$CoreStateImpl(
|
const _$CoreStateImpl({
|
||||||
{this.activePage = OkanePage.accounts,
|
this.activePage = OkanePage.accounts,
|
||||||
this.activeAccountIndex,
|
this.activeAccountIndex,
|
||||||
this.activeTransaction = null,
|
this.activeTransaction = null,
|
||||||
final List<Account> accounts = const [],
|
final List<Account> accounts = const [],
|
||||||
@ -237,8 +269,8 @@ class _$CoreStateImpl implements _CoreState {
|
|||||||
final List<Beneficiary> beneficiaries = const [],
|
final List<Beneficiary> beneficiaries = const [],
|
||||||
final List<ExpenseCategory> expenseCategories = const [],
|
final List<ExpenseCategory> expenseCategories = const [],
|
||||||
final List<Budget> budgets = const [],
|
final List<Budget> budgets = const [],
|
||||||
this.activeBudget = null})
|
this.activeBudget = null,
|
||||||
: _accounts = accounts,
|
}) : _accounts = accounts,
|
||||||
_recurringTransactions = recurringTransactions,
|
_recurringTransactions = recurringTransactions,
|
||||||
_transactions = transactions,
|
_transactions = transactions,
|
||||||
_transactionTemplates = transactionTemplates,
|
_transactionTemplates = transactionTemplates,
|
||||||
@ -341,16 +373,26 @@ class _$CoreStateImpl implements _CoreState {
|
|||||||
(identical(other.activeTransaction, activeTransaction) ||
|
(identical(other.activeTransaction, activeTransaction) ||
|
||||||
other.activeTransaction == activeTransaction) &&
|
other.activeTransaction == activeTransaction) &&
|
||||||
const DeepCollectionEquality().equals(other._accounts, _accounts) &&
|
const DeepCollectionEquality().equals(other._accounts, _accounts) &&
|
||||||
const DeepCollectionEquality()
|
const DeepCollectionEquality().equals(
|
||||||
.equals(other._recurringTransactions, _recurringTransactions) &&
|
other._recurringTransactions,
|
||||||
const DeepCollectionEquality()
|
_recurringTransactions,
|
||||||
.equals(other._transactions, _transactions) &&
|
) &&
|
||||||
const DeepCollectionEquality()
|
const DeepCollectionEquality().equals(
|
||||||
.equals(other._transactionTemplates, _transactionTemplates) &&
|
other._transactions,
|
||||||
const DeepCollectionEquality()
|
_transactions,
|
||||||
.equals(other._beneficiaries, _beneficiaries) &&
|
) &&
|
||||||
const DeepCollectionEquality()
|
const DeepCollectionEquality().equals(
|
||||||
.equals(other._expenseCategories, _expenseCategories) &&
|
other._transactionTemplates,
|
||||||
|
_transactionTemplates,
|
||||||
|
) &&
|
||||||
|
const DeepCollectionEquality().equals(
|
||||||
|
other._beneficiaries,
|
||||||
|
_beneficiaries,
|
||||||
|
) &&
|
||||||
|
const DeepCollectionEquality().equals(
|
||||||
|
other._expenseCategories,
|
||||||
|
_expenseCategories,
|
||||||
|
) &&
|
||||||
const DeepCollectionEquality().equals(other._budgets, _budgets) &&
|
const DeepCollectionEquality().equals(other._budgets, _budgets) &&
|
||||||
(identical(other.activeBudget, activeBudget) ||
|
(identical(other.activeBudget, activeBudget) ||
|
||||||
other.activeBudget == activeBudget));
|
other.activeBudget == activeBudget));
|
||||||
@ -369,7 +411,8 @@ class _$CoreStateImpl implements _CoreState {
|
|||||||
const DeepCollectionEquality().hash(_beneficiaries),
|
const DeepCollectionEquality().hash(_beneficiaries),
|
||||||
const DeepCollectionEquality().hash(_expenseCategories),
|
const DeepCollectionEquality().hash(_expenseCategories),
|
||||||
const DeepCollectionEquality().hash(_budgets),
|
const DeepCollectionEquality().hash(_budgets),
|
||||||
activeBudget);
|
activeBudget,
|
||||||
|
);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(ignore: true)
|
||||||
@override
|
@override
|
||||||
@ -379,8 +422,8 @@ class _$CoreStateImpl implements _CoreState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract class _CoreState implements CoreState {
|
abstract class _CoreState implements CoreState {
|
||||||
const factory _CoreState(
|
const factory _CoreState({
|
||||||
{final OkanePage activePage,
|
final OkanePage activePage,
|
||||||
final int? activeAccountIndex,
|
final int? activeAccountIndex,
|
||||||
final Transaction? activeTransaction,
|
final Transaction? activeTransaction,
|
||||||
final List<Account> accounts,
|
final List<Account> accounts,
|
||||||
@ -390,7 +433,8 @@ abstract class _CoreState implements CoreState {
|
|||||||
final List<Beneficiary> beneficiaries,
|
final List<Beneficiary> beneficiaries,
|
||||||
final List<ExpenseCategory> expenseCategories,
|
final List<ExpenseCategory> expenseCategories,
|
||||||
final List<Budget> budgets,
|
final List<Budget> budgets,
|
||||||
final Budget? activeBudget}) = _$CoreStateImpl;
|
final Budget? activeBudget,
|
||||||
|
}) = _$CoreStateImpl;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
OkanePage get activePage;
|
OkanePage get activePage;
|
||||||
|
@ -74,12 +74,5 @@ String formatCurrency(double amount, {bool precise = true}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DateTime monthEnding(DateTime now) {
|
DateTime monthEnding(DateTime now) {
|
||||||
return DateTime(
|
return DateTime(now.year, now.month, 32, 23, 59, 59);
|
||||||
now.year,
|
|
||||||
now.month,
|
|
||||||
32,
|
|
||||||
23,
|
|
||||||
59,
|
|
||||||
59,
|
|
||||||
);
|
|
||||||
}
|
}
|
@ -22,8 +22,7 @@ class AccountIndicator extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
if (trailing != null)
|
if (trailing != null) trailing!,
|
||||||
trailing!,
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
84
lib/ui/widgets/piechart.dart
Normal file
84
lib/ui/widgets/piechart.dart
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
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(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
82
lib/ui/widgets/piechart_card.dart
Normal file
82
lib/ui/widgets/piechart_card.dart
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
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) 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