diff --git a/src/orm/shieldagent.entity.ts b/src/orm/shieldagent.entity.ts new file mode 100644 index 0000000..2cca437 --- /dev/null +++ b/src/orm/shieldagent.entity.ts @@ -0,0 +1,27 @@ +import { Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn} from "typeorm"; + +export type ClearanceLevelType = "director" | "commander" | "agent" + +@Entity() +export class ShieldAgent { + + @PrimaryGeneratedColumn('increment') + id: number + + @Column() + official_email: string + + @Column() + contact_no: number + + @Column({ + type: "simple-enum", + enum: ["director", "commander", "agent"], + default: "agent" + }) + clearance_level: ClearanceLevelType + + @OneToOne(type => ShieldAgent) + @JoinColumn() + manager?: ShieldAgent +} diff --git a/src/orm/superhero.entity.ts b/src/orm/superhero.entity.ts index 1e1a163..448f1ff 100644 --- a/src/orm/superhero.entity.ts +++ b/src/orm/superhero.entity.ts @@ -1,6 +1,7 @@ -import { Entity, PrimaryGeneratedColumn, Column, OneToOne } from "typeorm"; -import { User } from "./user.entity"; +import { Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from "typeorm"; +import { ShieldAgent } from "./shieldagent.entity"; +export type LevelType = "inductee" | "soldier" | "avenger" @Entity() export class Superhero { @@ -8,10 +9,17 @@ export class Superhero { @PrimaryGeneratedColumn('increment') id: number - @Column({unique: true, nullable: false}) - caid: number + @Column() + ref_code: string - @OneToOne(type => User, user => user.superhero) - user: User + @Column({ + type: "simple-enum", + enum: ["inductee", "soldier", "avenger"], + default: "inductee" + }) + level: LevelType -} \ No newline at end of file + @OneToOne(type => ShieldAgent) + @JoinColumn() + handler?: ShieldAgent +} diff --git a/src/orm/user.entity.ts b/src/orm/user.entity.ts index 4a48b71..c0208a8 100644 --- a/src/orm/user.entity.ts +++ b/src/orm/user.entity.ts @@ -1,5 +1,6 @@ import { Entity, Column, PrimaryColumn, OneToOne, JoinColumn } from "typeorm"; import { Superhero } from "./superhero.entity"; +import { ShieldAgent } from "./shieldagent.entity"; @Entity() @@ -8,11 +9,24 @@ export class User { @PrimaryColumn() id: number - @Column({nullable: false, length: 50}) - username: string + @Column() + email: string - @OneToOne(type => Superhero, superhero => superhero.user) + @Column() + college: string + + @Column() + branch: string + + @Column() + grad_year: number + + @OneToOne(type => Superhero) @JoinColumn() superhero?: Superhero + @OneToOne(type => ShieldAgent) + @JoinColumn() + shieldAgent?: ShieldAgent + } \ No newline at end of file