import { IsInt, IsNotEmpty, IsPositive } from "class-validator"; import { Donation } from '../entities/Donation'; import { ResponseObjectType } from '../enums/ResponseObjectType'; import { IResponse } from './IResponse'; import { ResponseDonor } from './ResponseDonor'; /** * Defines the donation response. */ export class ResponseDonation implements IResponse { /** * The responseType. * This contains the type of class/entity this response contains. */ responseType: ResponseObjectType = ResponseObjectType.DONATION; /** * The donation's id. */ @IsInt() @IsPositive() id: number; /** * The donation's donor. */ @IsNotEmpty() donor: ResponseDonor; /** * The donation's amount in the smalles unit of your currency (default: euro cent). */ @IsInt() amount: number; /** * Creates a ResponseDonation object from a scan. * @param donation The donation the response shall be build for. */ public constructor(donation: Donation) { this.id = donation.id; this.donor = donation.donor.toResponse(); this.amount = donation.amount; } }