folder structure
This commit is contained in:
parent
5d3f8ea46a
commit
84e2ec72ac
242 changed files with 635 additions and 635 deletions
56
src/entity/club/member/communication.ts
Normal file
56
src/entity/club/member/communication.ts
Normal file
|
@ -0,0 +1,56 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { communicationType } from "../../settings/communicationType";
|
||||
|
||||
@Entity()
|
||||
export class communication {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({ type: "boolean", default: false })
|
||||
preferred: boolean;
|
||||
|
||||
@Column({ type: "boolean", default: false })
|
||||
isSMSAlarming: boolean;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
mobile: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
email: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
postalCode: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
city: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
street: string;
|
||||
|
||||
@Column({ type: "integer", nullable: true })
|
||||
streetNumber: number;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
streetNumberAddition: string;
|
||||
|
||||
@Column()
|
||||
memberId: number;
|
||||
|
||||
@Column()
|
||||
typeId: number;
|
||||
|
||||
@ManyToOne(() => communicationType, (communicationType) => communicationType.communications, {
|
||||
nullable: false,
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
type: communicationType;
|
||||
|
||||
@ManyToOne(() => member, (member) => member.awards, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
member: member;
|
||||
}
|
72
src/entity/club/member/member.ts
Normal file
72
src/entity/club/member/member.ts
Normal file
|
@ -0,0 +1,72 @@
|
|||
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";
|
||||
import { CommunicationViewModel } from "../../../viewmodel/admin/club/member/communication.models";
|
||||
|
||||
@Entity()
|
||||
export class member {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({
|
||||
type: "varchar",
|
||||
length: "255",
|
||||
default: Salutation.none.toString(),
|
||||
transformer: {
|
||||
to(value: Salutation) {
|
||||
return value.toString();
|
||||
},
|
||||
from(value: string) {
|
||||
return Salutation[value as keyof typeof Salutation];
|
||||
},
|
||||
},
|
||||
})
|
||||
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;
|
||||
|
||||
@Column({ type: "varchar", length: 255, unique: true, nullable: true })
|
||||
internalId?: string;
|
||||
|
||||
@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[];
|
||||
|
||||
firstMembershipEntry?: membership;
|
||||
lastMembershipEntry?: membership;
|
||||
preferredCommunication?: Array<communication>;
|
||||
smsAlarming?: Array<communication>;
|
||||
}
|
38
src/entity/club/member/memberAwards.ts
Normal file
38
src/entity/club/member/memberAwards.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { award } from "../../settings/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;
|
||||
|
||||
@Column()
|
||||
memberId: number;
|
||||
|
||||
@Column()
|
||||
awardId: number;
|
||||
|
||||
@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;
|
||||
}
|
38
src/entity/club/member/memberExecutivePositions.ts
Normal file
38
src/entity/club/member/memberExecutivePositions.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { executivePosition } from "../../settings/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;
|
||||
|
||||
@Column()
|
||||
memberId: number;
|
||||
|
||||
@Column()
|
||||
executivePositionId: number;
|
||||
|
||||
@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;
|
||||
}
|
41
src/entity/club/member/memberQualifications.ts
Normal file
41
src/entity/club/member/memberQualifications.ts
Normal file
|
@ -0,0 +1,41 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { qualification } from "../../settings/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;
|
||||
|
||||
@Column()
|
||||
memberId: number;
|
||||
|
||||
@Column()
|
||||
qualificationId: number;
|
||||
|
||||
@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;
|
||||
}
|
46
src/entity/club/member/membership.ts
Normal file
46
src/entity/club/member/membership.ts
Normal file
|
@ -0,0 +1,46 @@
|
|||
import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { member } from "./member";
|
||||
import { membershipStatus } from "../../settings/membershipStatus";
|
||||
|
||||
@Entity()
|
||||
export class membership {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
@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;
|
||||
|
||||
@Column()
|
||||
memberId: number;
|
||||
|
||||
@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",
|
||||
})
|
||||
@JoinColumn()
|
||||
status: membershipStatus;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue