gradido/backend/src/graphql/model/DisbursementLink.ts

58 lines
1.4 KiB
TypeScript

import { Decimal } from 'decimal.js-light'
import { ObjectType, Field } from 'type-graphql'
import { DisbursementJwtPayloadType } from '@/auth/jwt/payloadtypes/DisbursementJwtPayloadType'
import { Community } from './Community'
import { User } from './User'
@ObjectType()
export class DisbursementLink {
constructor(
disbursementPayload: DisbursementJwtPayloadType,
senderCommunity: Community,
senderUser: User,
recipientCommunity: Community,
recipientUser?: User,
) {
this.senderCommunity = senderCommunity
this.recipientCommunity = recipientCommunity
this.senderUser = senderUser
if (recipientUser !== undefined) {
this.recipientUser = recipientUser
} else {
this.recipientUser = null
}
this.amount = new Decimal(disbursementPayload.amount)
this.memo = disbursementPayload.memo
this.code = disbursementPayload.redeemcode
if (disbursementPayload.exp) {
this.validUntil = new Date(disbursementPayload.exp)
}
}
@Field(() => Community)
senderCommunity: Community
@Field(() => User)
senderUser: User
@Field(() => Community)
recipientCommunity: Community
@Field(() => User, { nullable: true })
recipientUser: User | null
@Field(() => Decimal)
amount: Decimal
@Field(() => String)
memo: string
@Field(() => String)
code: string
@Field(() => Date)
validUntil: Date
}