feat: auto recognize uncategorized transactions

This commit is contained in:
Ahmed Bouhuolia
2024-06-19 13:49:12 +02:00
parent 0b5cee070a
commit 6c4b0cdac5
9 changed files with 308 additions and 26 deletions

View File

@@ -11,9 +11,15 @@ export default class UncategorizedCashflowTransaction extends mixin(
[ModelSettings]
) {
id!: number;
date!: Date | string;
amount!: number;
categorized!: boolean;
accountId!: number;
referenceNo!: string;
payee!: string;
description!: string;
plaidTransactionId!: string;
recognizedTransactionId!: number;
/**
* Table name.
@@ -75,11 +81,21 @@ export default class UncategorizedCashflowTransaction extends mixin(
return 0 < this.withdrawal;
}
/**
* Detarmines whether the transaction is recognized.
*/
public get isRecognized(): boolean {
return !!this.recognizedTransactionId;
}
/**
* Relationship mapping.
*/
static get relationMappings() {
const Account = require('models/Account');
const {
RecognizedBankTransaction,
} = require('models/RecognizedBankTransaction');
return {
/**
@@ -93,6 +109,18 @@ export default class UncategorizedCashflowTransaction extends mixin(
to: 'accounts.id',
},
},
/**
* Transaction may has association to recognized transaction.
*/
recognizedTransaction: {
relation: Model.HasOneRelation,
modelClass: RecognizedBankTransaction,
join: {
from: 'uncategorized_cashflow_transactions.recognizedTransactionId',
to: 'recognized_bank_transactions.id',
},
},
};
}