import 'reflect-metadata'; import { Type, Expose, Transform } from 'class-transformer'; import { PayInCreateOrderResponseData } from './PayInCreateOrderResponseData'; import { QueryBankListResponse } from './QueryBankListResponse'; import { QueryBankAccountResponse } from './QueryBankAccountResponse'; import { PayOutResponse } from './PayOutResponse'; import { BankDetailsList } from './BankDetailsList'; import { TransactionResultsResponse } from './TransactionResultsResponse'; import { MerchantBalanceResponse } from './MerchantBalanceResponse'; import { CreateVirtualAccountResponse } from './CreateVirtualAccountResponse'; import { QueryPayInResponse } from './QueryPayInResponse'; import { BulkQueryPayInResponse } from './BulkQueryPayInResponse'; type Datatypes = PayInCreateOrderResponseData | QueryBankAccountResponse | PayOutResponse | BankDetailsList | TransactionResultsResponse | MerchantBalanceResponse | CreateVirtualAccountResponse | QueryPayInResponse | BulkQueryPayInResponse; export class PayInCreateOrderResponse { @Expose() @Type(() => {return PayInCreateOrderResponseData || QueryBankAccountResponse || PayOutResponse || TransactionResultsResponse || MerchantBalanceResponse || CreateVirtualAccountResponse || QueryPayInResponse || BulkQueryPayInResponse} ) @Type(() => {return TransactionResultsResponse || QueryBankAccountResponse || BankDetailsList} ) data?: Datatypes; @Expose() @Transform(({ value }) => value ?? null) respMsg!: string | null; @Expose() @Transform(({ value }) => value ?? null) respCode!: string | null; @Expose() @Transform(({ value }) => value ?? null) status!: string | null; }