ff-admin-server/src/views/memberView.ts

48 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-12-18 12:55:03 +01:00
import { DataSource, ViewColumn, ViewEntity } from "typeorm";
2025-01-05 14:14:00 +01:00
import { member } from "../entity/club/member/member";
2024-12-18 12:55:03 +01:00
import { Salutation } from "../enums/salutation";
@ViewEntity({
expression: (datasource: DataSource) =>
datasource
.getRepository(member)
.createQueryBuilder("member")
2024-12-18 22:27:33 +01:00
.select("member.id", "id")
.addSelect("member.salutation", "salutation")
.addSelect("member.firstname", "firstname")
.addSelect("member.lastname", "lastname")
.addSelect("member.nameaffix", "nameaffix")
.addSelect("member.birthdate", "birthdate")
2024-12-18 12:55:03 +01:00
.addSelect("TIMESTAMPDIFF(YEAR, member.birthdate, CURDATE())", "todayAge")
2025-01-05 16:09:39 +01:00
.addSelect("YEAR(CURDATE()) - YEAR(member.birthdate)", "ageThisYear")
.addSelect("CONCAT('_', FROM_DAYS(TIMESTAMPDIFF(DAY, member.birthdate, CURDATE())))", "exactAge"),
2024-12-18 12:55:03 +01:00
})
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;
2025-01-05 16:09:39 +01:00
@ViewColumn()
2025-01-21 14:49:14 +01:00
exactAge: string;
2024-12-18 12:55:03 +01:00
}