38 lines
960 B
TypeScript
38 lines
960 B
TypeScript
|
import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm";
|
||
|
import { member } from "./member";
|
||
|
import { membershipStatus } from "./membershipStatus";
|
||
|
|
||
|
@Entity()
|
||
|
export class membership {
|
||
|
@PrimaryColumn({ generated: "increment", type: "int" })
|
||
|
id: number;
|
||
|
|
||
|
@Column({ type: "varchar", length: 255, unique: true, nullable: true })
|
||
|
internalId?: string;
|
||
|
|
||
|
@Column({ type: "date" })
|
||
|
start: Date;
|
||
|
|
||
|
@Column({ type: "date", nullable: true })
|
||
|
end?: Date;
|
||
|
|
||
|
@Column({ type: "varchar", length: 255, nullable: true })
|
||
|
terminationReason?: string;
|
||
|
|
||
|
@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",
|
||
|
})
|
||
|
@JoinColumn()
|
||
|
status: membershipStatus;
|
||
|
}
|