import { DataSource, ViewColumn, ViewEntity } from "typeorm";
import { member } from "../entity/member";
import { Salutation } from "../enums/salutation";

@ViewEntity({
  expression: (datasource: DataSource) =>
    datasource
      .getRepository(member)
      .createQueryBuilder("member")
      .addSelect("TIMESTAMPDIFF(YEAR, member.birthdate, CURDATE())", "todayAge")
      .addSelect("YEAR(CURDATE()) - YEAR(member.birthdate)", "ageThisYear"),
})
export class memberView {
  @ViewColumn()
  id: number;

  @ViewColumn()
  salutation: Salutation;

  @ViewColumn()
  firstname: string;

  @ViewColumn()
  lastname: string;

  @ViewColumn()
  nameaffix: string;

  @ViewColumn()
  birthdate: Date;

  @ViewColumn()
  todayAge: number;

  @ViewColumn()
  ageThisYear: number;
}