import { IsInt, IsNotEmpty, IsObject } from "class-validator"; import { Donor } from './Donor'; /** * Defines the Donation base calss. * A donation just associates a donor with a donation amount. * The specifics of the amoun's determination has to be implemented in child classes. */ export abstract class Donation { /** * Autogenerated unique id (primary key). */ @IsInt() id: number; /** * The donations's donor. */ @IsNotEmpty() @IsObject() donor: Donor; /** * The donation's amount in cents (or whatever your currency's smallest unit is.). * The exact implementation may differ for each type of donation. */ public abstract get amount(): number; }