member tables
This commit is contained in:
parent
75fb556796
commit
10db9a40f4
14 changed files with 483 additions and 26 deletions
|
@ -1,5 +1,5 @@
|
|||
import { Column, Entity, OneToMany, PrimaryColumn } from "typeorm";
|
||||
//import { memberAwards } from "./memberAwards";
|
||||
import { memberAwards } from "./memberAwards";
|
||||
|
||||
@Entity()
|
||||
export class award {
|
||||
|
@ -9,8 +9,6 @@ export class award {
|
|||
@Column({ type: "varchar", length: 255 })
|
||||
award: string;
|
||||
|
||||
// @OneToMany(() => memberAwards, (member) => member.award, {
|
||||
// onDelete: "RESTRICT",
|
||||
// })
|
||||
// members: memberAwards[];
|
||||
@OneToMany(() => memberAwards, (member) => member.award)
|
||||
members: memberAwards[];
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
//import { member } from "./member";
|
||||
import { member } from "./member";
|
||||
import { communicationType } from "./communicationType";
|
||||
|
||||
@Entity()
|
||||
|
@ -33,8 +33,10 @@ export class communication {
|
|||
})
|
||||
type: communicationType;
|
||||
|
||||
// @ManyToOne(() => member, (member) => member.awards, {
|
||||
// onDelete: "RESTRICT",
|
||||
// })
|
||||
// member: member;
|
||||
@ManyToOne(() => member, (member) => member.awards, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
member: member;
|
||||
}
|
||||
|
|
|
@ -24,8 +24,6 @@ export class communicationType {
|
|||
})
|
||||
useColumns: Array<string>;
|
||||
|
||||
@OneToMany(() => communication, (communication) => communication.type, {
|
||||
onDelete: "RESTRICT",
|
||||
})
|
||||
@OneToMany(() => communication, (communication) => communication.type)
|
||||
communications: communication[];
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Column, Entity, OneToMany, PrimaryColumn } from "typeorm";
|
||||
//import { memberExecutivePositions } from "./memberExecutivePositions";
|
||||
import { memberExecutivePositions } from "./memberExecutivePositions";
|
||||
|
||||
@Entity()
|
||||
export class executivePosition {
|
||||
|
@ -9,8 +9,6 @@ export class executivePosition {
|
|||
@Column({ type: "varchar", length: 255 })
|
||||
position: string;
|
||||
|
||||
// @OneToMany(() => memberExecutivePositions, (memberExecutivePositions) => memberExecutivePositions.executivePosition, {
|
||||
// onDelete: "RESTRICT",
|
||||
// })
|
||||
// members: memberExecutivePositions[];
|
||||
@OneToMany(() => memberExecutivePositions, (memberExecutivePositions) => memberExecutivePositions.executivePosition)
|
||||
members: memberExecutivePositions[];
|
||||
}
|
||||
|
|
51
src/entity/member.ts
Normal file
51
src/entity/member.ts
Normal file
|
@ -0,0 +1,51 @@
|
|||
import { Column, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, PrimaryColumn } from "typeorm";
|
||||
import { Salutation } from "../enums/salutation";
|
||||
import { membership } from "./membership";
|
||||
import { memberAwards } from "./memberAwards";
|
||||
import { memberQualifications } from "./memberQualifications";
|
||||
import { memberExecutivePositions } from "./memberExecutivePositions";
|
||||
import { communication } from "./communication";
|
||||
|
||||
@Entity()
|
||||
export class member {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({ type: "enum", enum: Salutation, default: Salutation.none })
|
||||
salutation: Salutation;
|
||||
|
||||
@Column({ type: "varchar", length: 255 })
|
||||
firstname: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255 })
|
||||
lastname: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255 })
|
||||
nameaffix: string;
|
||||
|
||||
@Column({ type: "date" })
|
||||
birthdate: Date;
|
||||
|
||||
@OneToMany(() => communication, (communications) => communications.member)
|
||||
communications: communication;
|
||||
|
||||
@OneToOne(() => communication, {
|
||||
nullable: true,
|
||||
onDelete: "SET NULL",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
@JoinColumn()
|
||||
sendNewsletter?: communication;
|
||||
|
||||
@OneToMany(() => membership, (membership) => membership.member)
|
||||
memberships: membership[];
|
||||
|
||||
@OneToMany(() => memberAwards, (awards) => awards.member)
|
||||
awards: memberAwards[];
|
||||
|
||||
@OneToMany(() => memberExecutivePositions, (executivePositions) => executivePositions.member)
|
||||
positions: memberExecutivePositions[];
|
||||
|
||||
@OneToMany(() => memberQualifications, (qualifications) => qualifications.member)
|
||||
qualifications: memberQualifications[];
|
||||
}
|
32
src/entity/memberAwards.ts
Normal file
32
src/entity/memberAwards.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { award } from "./award";
|
||||
|
||||
@Entity()
|
||||
export class memberAwards {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({ type: "boolean", default: true })
|
||||
given: boolean;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
note?: string;
|
||||
|
||||
@Column({ type: "date" })
|
||||
date: Date;
|
||||
|
||||
@ManyToOne(() => member, (member) => member.awards, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
member: member;
|
||||
|
||||
@ManyToOne(() => award, (award) => award.members, {
|
||||
nullable: false,
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
award: award;
|
||||
}
|
32
src/entity/memberExecutivePositions.ts
Normal file
32
src/entity/memberExecutivePositions.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { executivePosition } from "./executivePosition";
|
||||
|
||||
@Entity()
|
||||
export class memberExecutivePositions {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
note?: string;
|
||||
|
||||
@Column({ type: "date" })
|
||||
start: Date;
|
||||
|
||||
@Column({ type: "date", nullable: true })
|
||||
end?: Date;
|
||||
|
||||
@ManyToOne(() => member, (member) => member.awards, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
member: member;
|
||||
|
||||
@ManyToOne(() => executivePosition, (executivePosition) => executivePosition.members, {
|
||||
nullable: false,
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
executivePosition: executivePosition;
|
||||
}
|
35
src/entity/memberQualifications.ts
Normal file
35
src/entity/memberQualifications.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { qualification } from "./qualification";
|
||||
|
||||
@Entity()
|
||||
export class memberQualifications {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
note?: 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.awards, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
member: member;
|
||||
|
||||
@ManyToOne(() => qualification, (qualification) => qualification.members, {
|
||||
nullable: false,
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
qualification: qualification;
|
||||
}
|
37
src/entity/membership.ts
Normal file
37
src/entity/membership.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
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;
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
import { Column, Entity, OneToMany, PrimaryColumn } from "typeorm";
|
||||
//import { membership } from "./membership";
|
||||
import { membership } from "./membership";
|
||||
|
||||
@Entity()
|
||||
export class membershipStatus {
|
||||
|
@ -9,6 +9,6 @@ export class membershipStatus {
|
|||
@Column({ type: "varchar", length: 255 })
|
||||
status: string;
|
||||
|
||||
// @OneToMany(() => membership, (membership) => membership.status)
|
||||
// memberships: membership[];
|
||||
@OneToMany(() => membership, (membership) => membership.status)
|
||||
memberships: membership[];
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Column, Entity, OneToMany, PrimaryColumn } from "typeorm";
|
||||
//import { memberQualifications } from "./memberQualifications";
|
||||
import { memberQualifications } from "./memberQualifications";
|
||||
|
||||
@Entity()
|
||||
export class qualification {
|
||||
|
@ -12,8 +12,6 @@ export class qualification {
|
|||
@Column({ type: "varchar", length: 255, nullable: true, default: null })
|
||||
description?: string;
|
||||
|
||||
// @OneToMany(() => memberQualifications, (memberQualifications) => memberQualifications.qualification, {
|
||||
// onDelete: "RESTRICT",
|
||||
// })
|
||||
// members: memberQualifications[];
|
||||
@OneToMany(() => memberQualifications, (memberQualifications) => memberQualifications.qualification)
|
||||
members: memberQualifications[];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue