import { Column, ColumnType, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm"; import { member } from "./member"; import { membershipStatus } from "../../settings/membershipStatus"; import { getTypeByORM } from "../../../migrations/ormHelper"; @Entity() export class membership { @PrimaryColumn({ generated: "increment", type: "int" }) id: number; @Column({ type: getTypeByORM("date").type as ColumnType }) start: Date; @Column({ type: getTypeByORM("date").type as ColumnType, nullable: true }) end?: Date; @Column({ type: "varchar", length: 255, nullable: true }) terminationReason?: string; @Column() memberId: string; @Column() statusId: number; @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", cascade: ["insert"], }) @JoinColumn() status: membershipStatus; }