hrms-api-org/src/entities/ProfileAssessment.ts

137 lines
3.3 KiB
TypeScript

import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileEmployee } from "./ProfileEmployee";
import { ProfileAssessmentHistory } from "./ProfileAssessmentHistory";
@Entity("profileAssessment")
export class ProfileAssessment extends EntityBase {
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Profile",
default: null,
})
profileId: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง ProfileEmployee",
default: null,
})
profileEmployeeId: string;
@Column({
nullable: true,
comment: "ชื่อแบบประเมิน",
type: "text",
default: null,
})
name: string;
@Column({
nullable: true,
type: "datetime",
comment: "วันที่ได้รับ",
default: null,
})
date: Date;
@Column({
nullable: true,
type: "double",
comment: "ผลประเมินส่วนที่1 (คะแนน)",
default: null,
})
point1: number;
@Column({
nullable: true,
type: "double",
comment: "ส่วนที่1 (คะแนน)",
default: null,
})
point1Total: number;
@Column({
nullable: true,
type: "double",
comment: "ผลประเมินส่วนที่2 (คะแนน)",
default: null,
})
point2: number;
@Column({
nullable: true,
type: "double",
comment: "ส่วนที่2 (คะแนน)",
default: null,
})
point2Total: number;
@Column({
nullable: true,
type: "double",
comment: "ผลประเมินรวม (คะแนน)",
default: null,
})
pointSum: number;
@Column({
nullable: true,
type: "double",
comment: "ผลรวม (คะแนน)",
default: null,
})
pointSumTotal: number;
@OneToMany(
() => ProfileAssessmentHistory,
(profileAssessmentHistory) => profileAssessmentHistory.histories,
)
profileAssessmentHistorys: ProfileAssessmentHistory[];
@ManyToOne(() => Profile, (profile) => profile.profileAssessments)
@JoinColumn({ name: "profileId" })
profile: Profile;
@ManyToOne(() => ProfileEmployee, (ProfileEmployee) => ProfileEmployee.profileAssessments)
@JoinColumn({ name: "profileEmployeeId" })
profileEmployee: ProfileEmployee;
}
export class CreateProfileAssessment {
profileId: string | null;
name: string | null;
date: Date | null;
point1: number | null;
point1Total: number | null;
point2: number | null;
point2Total: number | null;
pointSum: number | null;
pointSumTotal: number | null;
}
export class CreateProfileEmployeeAssessment {
profileEmployeeId: string | null;
name: string | null;
date: Date | null;
point1: number | null;
point1Total: number | null;
point2: number | null;
point2Total: number | null;
pointSum: number | null;
pointSumTotal: number | null;
}
export type UpdateProfileAssessment = {
name?: string | null;
date?: Date | null;
point1?: number | null;
point1Total?: number | null;
point2?: number | null;
point2Total?: number | null;
pointSum?: number | null;
pointSumTotal?: number | null;
};