ff-admin-server/src/entity/club/member/membership.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

import { Column, ColumnType, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm";
2024-09-14 11:32:34 +02:00
import { member } from "./member";
2025-02-15 10:59:54 +01:00
import { membershipStatus } from "../../configuration/membershipStatus";
import { getTypeByORM } from "../../../migrations/ormHelper";
2024-09-14 11:32:34 +02:00
@Entity()
export class membership {
@PrimaryColumn({ generated: "increment", type: "int" })
id: number;
@Column({ type: getTypeByORM("date").type as ColumnType })
2024-09-14 11:32:34 +02:00
start: Date;
@Column({ type: getTypeByORM("date").type as ColumnType, nullable: true })
2024-09-14 11:32:34 +02:00
end?: Date;
@Column({ type: "varchar", length: 255, nullable: true })
terminationReason?: string;
2025-01-02 17:08:53 +01:00
@Column()
2025-01-29 08:53:49 +01:00
memberId: string;
2025-01-02 17:08:53 +01:00
@Column()
statusId: number;
2024-09-14 11:32:34 +02:00
@ManyToOne(() => member, (member) => member.memberships, {
nullable: false,
onDelete: "CASCADE",
onUpdate: "RESTRICT",
})
@JoinColumn()
member: member;
@ManyToOne(() => membershipStatus, (membershipStatus) => membershipStatus.memberships, {
nullable: false,
onDelete: "RESTRICT",
onUpdate: "RESTRICT",
2025-01-29 16:49:34 +01:00
cascade: ["insert"],
2024-09-14 11:32:34 +02:00
})
@JoinColumn()
status: membershipStatus;
}