import { DataSource, ViewColumn, ViewEntity } from "typeorm"; import { member } from "../entity/club/member/member"; import { Salutation } from "../enums/salutation"; @ViewEntity({ expression: (datasource: DataSource) => datasource .getRepository(member) .createQueryBuilder("member") .select("member.id", "id") .addSelect("member.salutation", "salutation") .addSelect("member.firstname", "firstname") .addSelect("member.lastname", "lastname") .addSelect("member.nameaffix", "nameaffix") .addSelect("member.birthdate", "birthdate") .addSelect("TIMESTAMPDIFF(YEAR, member.birthdate, CURDATE())", "todayAge") .addSelect("YEAR(CURDATE()) - YEAR(member.birthdate)", "ageThisYear") .addSelect("CONCAT('_', FROM_DAYS(TIMESTAMPDIFF(DAY, member.birthdate, CURDATE())))", "exactAge"), }) 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; @ViewColumn() exactAge: Date; }