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 }