Files
bigcapital/packages/server/src/models/BankRule.ts

71 lines
1.4 KiB
TypeScript

import TenantModel from 'models/TenantModel';
import { Model } from 'objection';
export class BankRule extends TenantModel {
id!: number;
name!: string;
order!: number;
applyIfAccountId!: number;
applyIfTransactionType!: string;
assignCategory!: string;
assignAccountId!: number;
assignPayee!: string;
assignMemo!: string;
conditionsType!: string;
/**
* Table name
*/
static get tableName() {
return 'bank_rules';
}
/**
* Timestamps columns.
*/
get timestamps() {
return ['created_at', 'updated_at'];
}
/**
* Virtual attributes.
*/
static get virtualAttributes() {
return [];
}
/**
* Relationship mapping.
*/
static get relationMappings() {
const { BankRuleCondition } = require('models/BankRuleCondition');
const Account = require('models/Account');
return {
/**
* Sale invoice associated entries.
*/
conditions: {
relation: Model.HasManyRelation,
modelClass: BankRuleCondition,
join: {
from: 'bank_rules.id',
to: 'bank_rule_conditions.ruleId',
},
},
/**
* Bank rule may associated to the assign account.
*/
assignAccount: {
relation: Model.BelongsToOneRelation,
modelClass: Account.default,
join: {
from: 'bank_rules.assignAccountId',
to: 'accounts.id',
},
},
};
}
}