gradido/backend/src/graphql/model/UnconfirmedContribution.ts
2025-05-16 07:45:42 +02:00

62 lines
1.6 KiB
TypeScript

import {
Contribution as DbContribution,
ContributionMessage as DbContributionMessage,
} from 'database'
import { Decimal } from 'decimal.js-light'
import { Field, Int, ObjectType } from 'type-graphql'
import { ContributionMessage } from './ContributionMessage'
import { User } from './User'
@ObjectType()
export class UnconfirmedContribution {
constructor(dbContribution: DbContribution) {
const user = dbContribution.user
this.id = dbContribution.id
this.userId = dbContribution.userId
this.amount = dbContribution.amount
this.memo = dbContribution.memo
this.contributionDate = dbContribution.contributionDate
this.user = user ? new User(user) : null
this.moderatorId = dbContribution.moderatorId
this.contributionStatus = dbContribution.contributionStatus
this.messagesCount = dbContribution.messages ? dbContribution.messages.length : 0
this.messages = dbContribution.messages
? dbContribution.messages.map(
(dbMessage: DbContributionMessage) => new ContributionMessage(dbMessage),
)
: null
}
@Field(() => Int)
id: number
@Field(() => Int, { nullable: true })
userId: number | null
@Field(() => User, { nullable: true })
user: User | null
@Field(() => Date)
contributionDate: Date
@Field(() => String)
memo: string
@Field(() => Decimal)
amount: Decimal
@Field(() => Int, { nullable: true })
moderatorId: number | null
@Field(() => String)
contributionStatus: string
@Field(() => Int)
messagesCount: number
@Field(() => [ContributionMessage], { nullable: true })
messages: ContributionMessage[] | null
}