ff-admin-server/src/migrations/1736084198860-extendViewValues.ts
2025-01-25 11:39:34 +01:00

111 lines
4.9 KiB
TypeScript

import { DataSource, MigrationInterface, QueryRunner, View } from "typeorm";
import { member } from "../entity/club/member/member";
import { memberExecutivePositions } from "../entity/club/member/memberExecutivePositions";
import { memberQualifications } from "../entity/club/member/memberQualifications";
import { membership } from "../entity/club/member/membership";
export class ExtendViewValues1736084198860 implements MigrationInterface {
name = "ExtendViewValues1736084198860";
public async up(queryRunner: QueryRunner): Promise<void> {
// await queryRunner.dropView("membership_view");
// await queryRunner.dropView("member_view");
// await queryRunner.createView(
// new View({
// name: "member_view",
// 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"),
// }),
// true
// );
// await queryRunner.createView(
// new View({
// name: "membership_view",
// expression: (datasource: DataSource) =>
// datasource
// .getRepository(membership)
// .createQueryBuilder("membership")
// .select("status.id", "statusId")
// .addSelect("status.status", "status")
// .addSelect("member.id", "memberId")
// .addSelect("member.salutation", "memberSalutation")
// .addSelect("member.firstname", "memberFirstname")
// .addSelect("member.lastname", "memberLastname")
// .addSelect("member.nameaffix", "memberNameaffix")
// .addSelect("member.birthdate", "memberBirthdate")
// .addSelect(
// "SUM(TIMESTAMPDIFF(DAY, membership.start, COALESCE(membership.end, CURRENT_DATE)))",
// "durationInDays"
// )
// .addSelect(
// "CONCAT('_', FROM_DAYS(SUM(TIMESTAMPDIFF(DAY, membership.start, COALESCE(membership.end, CURRENT_DATE)))))",
// "durationInYears"
// )
// .leftJoin("membership.status", "status")
// .leftJoin("membership.member", "member")
// .groupBy("status.id")
// .addGroupBy("member.id"),
// }),
// true
// );
}
public async down(queryRunner: QueryRunner): Promise<void> {
// await queryRunner.dropView("membership_view");
// await queryRunner.dropView("member_view");
// await queryRunner.createView(
// new View({
// name: "member_view",
// 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"),
// }),
// true
// );
// await queryRunner.createView(
// new View({
// name: "membership_view",
// expression: (datasource: DataSource) =>
// datasource
// .getRepository(membership)
// .createQueryBuilder("membership")
// .select("status.id", "statusId")
// .addSelect("status.status", "status")
// .addSelect("member.id", "memberId")
// .addSelect("member.salutation", "memberSalutation")
// .addSelect("member.firstname", "memberFirstname")
// .addSelect("member.lastname", "memberLastname")
// .addSelect("member.nameaffix", "memberNameaffix")
// .addSelect("member.birthdate", "memberBirthdate")
// .addSelect(
// "SUM(TIMESTAMPDIFF(DAY, membership.start, COALESCE(membership.end, CURRENT_DATE)))",
// "durationInDays"
// )
// .leftJoin("membership.status", "status")
// .leftJoin("membership.member", "member")
// .groupBy("status.id"),
// }),
// true
// );
}
}