import { Entity, Column, OneToMany, ManyToOne, JoinColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; import { ProfileEmployee } from "./ProfileEmployee"; import { ProfileDevelopmentHistory } from "./ProfileDevelopmentHistory"; import { DevelopmentProject } from "./DevelopmentProject"; @Entity("profileDevelopment") export class ProfileDevelopment extends EntityBase { // REQUEST = ขอแก้ไข // DEVELOP = พัฒนา // KPI = ประเมิน @Column({ nullable: true, comment: "ระบบ", default: null, }) type: string; @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: "ชื่อเรื่อง", default: null, }) name: string; // @Column({ // nullable: true, // comment: "เป้าหมาย", // default: null, // }) // target: string; // @Column({ // type: "double", // nullable: true, // default: null, // comment: "ผลการประเมิน", // }) // summary: number; // @Column({ // nullable: true, // comment: "ระดับคะแนน", // default: null, // }) // point: number; @Column({ nullable: true, comment: "เกณฑ์การประเมิน 10", default: null, }) achievement10: string; @Column({ nullable: true, comment: "เกณฑ์การประเมิน 5", default: null, }) achievement5: string; @Column({ nullable: true, comment: "เกณฑ์การประเมิน 0", default: null, }) achievement0: string; @Column({ comment: "วิธีพัฒนา70", default: false, }) isDevelopment70: boolean; @Column({ comment: "วิธีพัฒนา20", default: false, }) isDevelopment20: boolean; @Column({ comment: "วิธีพัฒนา10", default: false, }) isDevelopment10: boolean; @Column({ nullable: true, comment: "รายละเอียดอื่นๆ 70 แผน", default: null, }) reasonDevelopment70: string; @Column({ nullable: true, comment: "รายละเอียดอื่นๆ 20 แผน", default: null, }) reasonDevelopment20: string; @Column({ nullable: true, comment: "รายละเอียดอื่นๆ 10 แผน", default: null, }) reasonDevelopment10: string; @Column({ nullable: true, comment: "เป้าหมายการนำไปพัฒนางาน", length: 255, default: null, }) developmentTarget: string; @Column({ nullable: true, comment: "วิธีการวัดผลการพัฒนา", length: 255, default: null, }) developmentResults: string; @Column({ nullable: true, comment: "รายงานผลการพัฒนา", length: 255, default: null, }) developmentReport: string; @Column({ nullable: true, length: 40, comment: "id kpi development", default: null, }) kpiDevelopmentId: string; @OneToMany( () => ProfileDevelopmentHistory, (profileDevelopmentHistory) => profileDevelopmentHistory.histories, ) profileDevelopmentHistories: ProfileDevelopmentHistory[]; @ManyToOne(() => Profile, (profile) => profile.profileDevelopments) @JoinColumn({ name: "profileId" }) profile: Profile; @ManyToOne(() => ProfileEmployee, (ProfileEmployee) => ProfileEmployee.profileDevelopments) @JoinColumn({ name: "profileEmployeeId" }) profileEmployee: ProfileEmployee; @OneToMany( () => DevelopmentProject, (developmentProject) => developmentProject.profileDevelopment, ) developmentProjects: DevelopmentProject[]; } export class CreateProfileDevelopment { type?: string | null; profileId: string | null; name: string | null; // target: string | null; achievement10?: string | null; achievement5?: string | null; achievement0?: string | null; kpiDevelopmentId?: string | null; reasonDevelopment70?: string | null; reasonDevelopment20?: string | null; reasonDevelopment10?: string | null; isDevelopment70: boolean | null; isDevelopment20: boolean | null; isDevelopment10: boolean | null; // summary?: number | null; // point?: number | null; developmentTarget?: string | null; developmentResults?: string | null; developmentReport?: string | null; developmentProjects?: string[]; } export class CreateProfileEmployeeDevelopment { type?: string | null; profileEmployeeId: string | null; name: string | null; // target: string | null; achievement10?: string | null; achievement5?: string | null; achievement0?: string | null; kpiDevelopmentId?: string | null; reasonDevelopment70?: string | null; reasonDevelopment20?: string | null; reasonDevelopment10?: string | null; isDevelopment70: boolean | null; isDevelopment20: boolean | null; isDevelopment10: boolean | null; // summary?: number | null; // point?: number | null; developmentTarget?: string | null; developmentResults?: string | null; developmentReport?: string | null; developmentProjects?: string[]; } export type UpdateProfileDevelopment = { type?: string | null; name: string | null; // target: string | null; achievement10?: string | null; achievement5?: string | null; achievement0?: string | null; kpiDevelopmentId?: string | null; reasonDevelopment70?: string | null; reasonDevelopment20?: string | null; reasonDevelopment10?: string | null; isDevelopment70: boolean | null; isDevelopment20: boolean | null; isDevelopment10: boolean | null; // summary?: number | null; // point?: number | null; developmentTarget?: string | null; developmentResults?: string | null; developmentReport?: string | null; developmentProjects?: string[]; };