diff --git a/src/entities/ProfileDiscipline.ts b/src/entities/ProfileDiscipline.ts index d30c82e5..443500da 100644 --- a/src/entities/ProfileDiscipline.ts +++ b/src/entities/ProfileDiscipline.ts @@ -1,6 +1,7 @@ import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; +import { ProfileEmployee } from "./ProfileEmployee"; import { ProfileDisciplineHistory } from "./ProfileDisciplineHistory"; @Entity("profileDiscipline") @@ -20,6 +21,14 @@ export class ProfileDiscipline extends EntityBase { }) profileId: string; + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง ProfileEmployee", + default: null, + }) + profileEmployeeId: string; + @Column({ nullable: true, comment: "ระดับความผิด", @@ -69,12 +78,16 @@ export class ProfileDiscipline extends EntityBase { @ManyToOne(() => Profile, (profile) => profile.profileDiscipline) @JoinColumn({ name: "profileId" }) profile: Profile; + + @ManyToOne(() => ProfileEmployee, (ProfileEmployee) => ProfileEmployee.profileDisciplines) + @JoinColumn({ name: "profileEmployeeId" }) + profileEmployee: ProfileEmployee; } export class CreateProfileDiscipline { date: Date | null; - profileId: string; - + profileId?: string; + profileEmployeeId?: string | null; level: string | null; detail: string | null; refCommandDate: Date | null; diff --git a/src/entities/ProfileDuty.ts b/src/entities/ProfileDuty.ts index 650b5f96..8c7d38ed 100644 --- a/src/entities/ProfileDuty.ts +++ b/src/entities/ProfileDuty.ts @@ -1,6 +1,7 @@ import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; +import { ProfileEmployee } from "./ProfileEmployee"; import { ProfileDutyHistory } from "./ProfileDutyHistory"; @Entity("profileDuty") @@ -13,6 +14,14 @@ export class ProfileDuty extends EntityBase { }) profileId: string; + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง ProfileEmployee", + default: null, + }) + profileEmployeeId: string; + @Column({ nullable: true, type: "datetime", @@ -67,11 +76,15 @@ export class ProfileDuty extends EntityBase { @ManyToOne(() => Profile, (profile) => profile.profileDutys) @JoinColumn({ name: "profileId" }) profile: Profile; + + @ManyToOne(() => ProfileEmployee, (ProfileEmployee) => ProfileEmployee.profileDutys) + @JoinColumn({ name: "profileEmployeeId" }) + profileEmployee: ProfileEmployee; } export class CreateProfileDuty { - profileId: string | null; - + profileId?: string | null; + profileEmployeeId?: string | null; dateStart: Date | null; dateEnd: Date | null; detail: string | null; diff --git a/src/entities/ProfileEmployee.ts b/src/entities/ProfileEmployee.ts index 5ba248f8..60a3a35e 100644 --- a/src/entities/ProfileEmployee.ts +++ b/src/entities/ProfileEmployee.ts @@ -10,6 +10,10 @@ import { ProfileTraining } from "./ProfileTraining"; import { ProfileInsignia } from "./ProfileInsignia"; import { ProfileHonor } from "./ProfileHonor"; import { ProfileAssessment } from "./ProfileAssessment"; +import { ProfileLeave } from "./ProfileLeave"; +import { ProfileDuty } from "./ProfileDuty"; +import { ProfileNopaid } from "./ProfileNopaid"; +import { ProfileDiscipline } from "./ProfileDiscipline"; @Entity("profileEmployee") export class ProfileEmployee extends EntityBase { @Column({ @@ -216,6 +220,18 @@ export class ProfileEmployee extends EntityBase { @OneToMany(() => ProfileAssessment, (v) => v.profileEmployee) profileAssessments: ProfileAssessment[]; + @OneToMany(() => ProfileLeave, (v) => v.profileEmployee) + profileLeaves: ProfileLeave[]; + + @OneToMany(() => ProfileDuty, (v) => v.profileEmployee) + profileDutys: ProfileDuty[]; + + @OneToMany(() => ProfileNopaid, (v) => v.profileEmployee) + profileNopaids: ProfileNopaid[]; + + @OneToMany(() => ProfileDiscipline, (v) => v.profileEmployee) + profileDisciplines: ProfileNopaid[]; + @ManyToOne(() => EmployeePosLevel, (v) => v.profiles) posLevel: EmployeePosLevel; diff --git a/src/entities/ProfileLeave.ts b/src/entities/ProfileLeave.ts index 1104174e..cc44f131 100644 --- a/src/entities/ProfileLeave.ts +++ b/src/entities/ProfileLeave.ts @@ -1,6 +1,7 @@ import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; +import { ProfileEmployee } from "./ProfileEmployee"; import { LeaveType } from "./LeaveType"; @Entity("profileLeave") @@ -13,6 +14,14 @@ export class ProfileLeave extends EntityBase { }) profileId: string; + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง ProfileEmployee", + default: null, + }) + profileEmployeeId: string; + @Column({ nullable: true, length: 40, @@ -85,6 +94,10 @@ export class ProfileLeave extends EntityBase { @ManyToOne(() => Profile, (v) => v.profileLeaves) profile: Profile; + + @ManyToOne(() => ProfileEmployee, (ProfileEmployee) => ProfileEmployee.profileLeaves) + @JoinColumn({ name: "profileEmployeeId" }) + profileEmployee: ProfileEmployee; } @Entity("profileLeaveHistory") @@ -102,8 +115,9 @@ export class ProfileLeaveHistory extends ProfileLeave { } export class CreateProfileLeave { - profileId: string | null; + profileId?: string | null; leaveTypeId: string; + profileEmployeeId?: string | null; dateLeaveStart: Date | null; dateLeaveEnd: Date | null; leaveDays: number | null; diff --git a/src/entities/ProfileNopaid.ts b/src/entities/ProfileNopaid.ts index fd2092ae..fae00ccf 100644 --- a/src/entities/ProfileNopaid.ts +++ b/src/entities/ProfileNopaid.ts @@ -1,6 +1,7 @@ import { Entity, Column, OneToMany, ManyToOne, JoinColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; +import { ProfileEmployee } from "./ProfileEmployee"; import { ProfileNopaidHistory } from "./ProfileNopaidHistory"; @Entity("profileNopaid") @@ -13,6 +14,14 @@ export class ProfileNopaid extends EntityBase { }) profileId: string; + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง ProfileEmployee", + default: null, + }) + profileEmployeeId: string; + @Column({ nullable: true, type: "datetime", @@ -59,11 +68,15 @@ export class ProfileNopaid extends EntityBase { @ManyToOne(() => Profile, (profile) => profile.profileNopaids) @JoinColumn({ name: "profileId" }) profile: Profile; + + @ManyToOne(() => ProfileEmployee, (ProfileEmployee) => ProfileEmployee.profileNopaids) + @JoinColumn({ name: "profileEmployeeId" }) + profileEmployee: ProfileEmployee; } export class CreateProfileNopaid { - profileId: string | null; - + profileId?: string | null; + profileEmployeeId?: string | null; date: Date | null; detail: string | null; reference: string | null;