mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
import { ObjectType, Field, Int } from 'type-graphql'
|
|
import Decimal from 'decimal.js-light'
|
|
import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink'
|
|
import { User } from './User'
|
|
import CONFIG from '@/config'
|
|
|
|
@ObjectType()
|
|
export class TransactionLink {
|
|
constructor(transactionLink: dbTransactionLink, user: User, redeemedBy: User | null = null) {
|
|
this.id = transactionLink.id
|
|
this.user = user
|
|
this.amount = transactionLink.amount
|
|
this.holdAvailableAmount = transactionLink.holdAvailableAmount
|
|
this.memo = transactionLink.memo
|
|
this.code = transactionLink.code
|
|
this.createdAt = transactionLink.createdAt
|
|
this.validUntil = transactionLink.validUntil
|
|
this.deletedAt = transactionLink.deletedAt
|
|
this.redeemedAt = transactionLink.redeemedAt
|
|
this.redeemedBy = redeemedBy
|
|
this.link = CONFIG.COMMUNITY_REDEEM_URL.replace(/{code}/g, this.code)
|
|
}
|
|
|
|
@Field(() => Number)
|
|
id: number
|
|
|
|
@Field(() => User)
|
|
user: User
|
|
|
|
@Field(() => Decimal)
|
|
amount: Decimal
|
|
|
|
@Field(() => Decimal)
|
|
holdAvailableAmount: Decimal
|
|
|
|
@Field(() => String)
|
|
memo: string
|
|
|
|
@Field(() => String)
|
|
code: string
|
|
|
|
@Field(() => Date)
|
|
createdAt: Date
|
|
|
|
@Field(() => Date, { nullable: true })
|
|
deletedAt: Date | null
|
|
|
|
@Field(() => Date)
|
|
validUntil: Date
|
|
|
|
@Field(() => Date, { nullable: true })
|
|
redeemedAt: Date | null
|
|
|
|
@Field(() => User, { nullable: true })
|
|
redeemedBy: User | null
|
|
|
|
@Field(() => String)
|
|
link: string
|
|
}
|
|
|
|
@ObjectType()
|
|
export class TransactionLinkResult {
|
|
@Field(() => Int)
|
|
linkCount: number
|
|
|
|
@Field(() => [TransactionLink])
|
|
linkList: TransactionLink[]
|
|
}
|