38 lines
780 B
TypeScript
38 lines
780 B
TypeScript
|
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;
|
||
|
}
|