35 lines
1.3 KiB
TypeScript
Executable File
35 lines
1.3 KiB
TypeScript
Executable File
|
|
import Decimal from "decimal.js";
|
|
import { Column, Entity, ManyToOne } from "typeorm";
|
|
|
|
import { Wallet } from "./wallet.entity";
|
|
import { BaseEntity } from "../../../common/entities/base.entity";
|
|
import { DecimalTransformer } from "../../../common/transformers/decimal.transformer";
|
|
import { DepositRequest } from "../../payments/entities/deposit-request.entity";
|
|
import { Payment } from "../../payments/entities/payment.entity";
|
|
import { TransactionType } from "../enums/transaction-type.enum";
|
|
|
|
@Entity()
|
|
export class WalletTransaction extends BaseEntity {
|
|
@Column({ type: "int", generated: "identity", insert: false })
|
|
numericId: number;
|
|
|
|
@ManyToOne(() => Wallet, (wallet) => wallet.transactions, { onDelete: "CASCADE", nullable: false })
|
|
wallet: Wallet;
|
|
|
|
@Column({ type: "decimal", precision: 16, scale: 2, nullable: false, transformer: new DecimalTransformer() })
|
|
amount: Decimal;
|
|
|
|
@Column({ type: "enum", enum: TransactionType, nullable: false })
|
|
type: TransactionType;
|
|
|
|
@Column({ type: "text", nullable: false })
|
|
description: string;
|
|
|
|
@ManyToOne(() => Payment, (payment) => payment.transactions, { onDelete: "CASCADE", nullable: true })
|
|
payment: Payment | null;
|
|
|
|
@ManyToOne(() => DepositRequest, (depositRequest) => depositRequest.transactions, { onDelete: "CASCADE", nullable: true })
|
|
depositRequest: DepositRequest | null;
|
|
}
|