diff options
author | TheArcaneBrony <myrainbowdash949@gmail.com> | 2022-08-15 11:13:21 +0200 |
---|---|---|
committer | TheArcaneBrony <myrainbowdash949@gmail.com> | 2022-08-15 11:13:21 +0200 |
commit | 1a94fb1208bf0e4c669cad16aff5f57dc0bf7a3c (patch) | |
tree | 1035116ddbaacc5fcc5ae250a6592eb88f78f75c /src/util/entities/TeamMember.ts | |
parent | Do the funny thing (make user->invite cascade delet) (diff) | |
parent | change dev panel path, we missed this one... (diff) | |
download | server-1a94fb1208bf0e4c669cad16aff5f57dc0bf7a3c.tar.xz |
Merge branch 'dev/restructure' into staging
Diffstat (limited to 'src/util/entities/TeamMember.ts')
-rw-r--r-- | src/util/entities/TeamMember.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/util/entities/TeamMember.ts b/src/util/entities/TeamMember.ts new file mode 100644 index 00000000..b726e1e8 --- /dev/null +++ b/src/util/entities/TeamMember.ts @@ -0,0 +1,37 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { User } from "./User"; + +export enum TeamMemberState { + INVITED = 1, + ACCEPTED = 2, +} + +@Entity("team_members") +export class TeamMember extends BaseClass { + @Column({ type: "int" }) + membership_state: TeamMemberState; + + @Column({ type: "simple-array" }) + permissions: string[]; + + @Column({ nullable: true }) + @RelationId((member: TeamMember) => member.team) + team_id: string; + + @JoinColumn({ name: "team_id" }) + @ManyToOne(() => require("./Team").Team, (team: import("./Team").Team) => team.members, { + onDelete: "CASCADE", + }) + team: import("./Team").Team; + + @Column({ nullable: true }) + @RelationId((member: TeamMember) => member.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; +} |