import { IsInt, IsObject, IsPositive } from 'class-validator'; import { DistanceDonation } from '../entities/DistanceDonation'; import { ResponseObjectType } from '../enums/ResponseObjectType'; import { IResponse } from './IResponse'; import { ResponseDonation } from './ResponseDonation'; import { ResponseRunner } from './ResponseRunner'; /** * Defines the distance donation response. */ export class ResponseDistanceDonation extends ResponseDonation implements IResponse { /** * The responseType. * This contains the type of class/entity this response contains. */ responseType: ResponseObjectType = ResponseObjectType.DISTANCEDONATION; /** * The donation's associated runner. * Used as the source of the donation's distance. */ @IsObject() runner: ResponseRunner; /** * The donation's amount donated per distance. * The amount the donor set to be donated per kilometer that the runner ran. */ @IsInt() @IsPositive() amountPerDistance: number; /** * Creates a ResponseDistanceDonation object from a scan. * @param donation The distance donation the response shall be build for. */ public constructor(donation: DistanceDonation) { super(donation); if (donation.runner) { this.runner = donation.runner.toResponse(); } this.amountPerDistance = donation.amountPerDistance; } }