All files / src/core/models transaction.model.ts

100% Statements 19/19
75% Branches 12/16
100% Functions 2/2
100% Lines 17/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 608x 8x 8x 8x 8x                 8x 12x       8x   12x       8x           8x         8x         8x         8x       8x       8x         8x  
import { Table, Column, Model, PrimaryKey, DataType, Unique, AllowNull, IsDate, HasOne } from 'sequelize-typescript';
import { EntryTypeExtensions } from '../extensions/entryTypeExtensions';
import { TransactionTypeExtensions } from '../extensions/transactionTypeExtensions';
import CardOperation from './cardOperation.model';
import StandardTransfer from './standardTransfer.model';
 
@Table({
    modelName: "transaction",
    timestamps: false,
    indexes: [{
        fields: ['id']
    }]
})
export default class Transaction extends Model {
    @HasOne(() => CardOperation, {
        as: 'card_operation',
        foreignKey: 'transaction_id'
    })
    card_operation!: CardOperation;
    
    @HasOne(() => StandardTransfer, {
        as: 'standard_transfer',
        foreignKey: 'transaction_id',
    })
    standard_transfer!: StandardTransfer;
 
    @PrimaryKey
    @Unique
    @AllowNull(false)
    @Column
    id!: string;
 
    @IsDate
    @AllowNull(false)
    @Column(DataType.DATE)
    date!: Date;
 
    @Unique('unique-transaction')
    @AllowNull(false)
    @Column
    reference!: string;
 
    @IsDate
    @AllowNull(false)
    @Column(DataType.DATE)
    value_date!: Date;
 
    @AllowNull(false)
    @Column(DataType.DECIMAL(20, 2))
    sum!: number;
 
    @AllowNull(false)
    @Column(EntryTypeExtensions.toDataType())
    entry_type!: string;
 
    @Unique('unique-transaction')
    @AllowNull(false)
    @Column(TransactionTypeExtensions.toDataType())
    type!: string;
}