import { IsBoolean } from "class-validator";
import { ChildEntity, Column, OneToMany } from "typeorm";
import { Donation } from './Donation';
import { Participant } from "./Participant";

/**
 * Defines the Donor entity.
*/
@ChildEntity()
export class Donor extends Participant {
  /**
   * Does this donor need a receipt?
   * Will later be used to automaticly generate donation receipts.
   */
  @Column()
  @IsBoolean()
  receiptNeeded: boolean = false;

  /**
 * Used to link the participant as the donor of a donation.
 * Attention: Only runner's can be associated as a distanceDonations distance source.
 */
  @OneToMany(() => Donation, donation => donation.donor, { nullable: true })
  donations: Donation[];
}