import { Entity, Column, OneToMany, ManyToOne, JoinColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { KpiPeriod } from "./kpiPeriod"; import { KpiUserRole } from "./kpiUserRole"; @Entity("kpiRole") export class KpiRole extends EntityBase { @Column({ nullable: true, comment: "ตำแหน่ง", default: null, }) position: string; @Column({ nullable: true, comment: "รหัสตัวชี้วัด", default: null, }) including: string; @Column({ nullable: true, comment: "ชื่อตัวชี้วัด", default: null, }) includingName: string; @Column({ nullable: true, comment: "ค่าเป้าหมาย", default: null, }) target: string; @Column({ nullable: true, comment: "หน่วยนับ", default: null, }) unit: number; @Column({ nullable: true, comment: "น้ำหนัก", default: null, }) weight: number; @Column({ nullable: true, comment: "ผลสำเร็จของงาน 1", default: null, }) achievement1: string; @Column({ nullable: true, comment: "ผลสำเร็จของงาน 2", default: null, }) achievement2: string; @Column({ nullable: true, comment: "ผลสำเร็จของงาน 3", default: null, }) achievement3: string; @Column({ nullable: true, comment: "ผลสำเร็จของงาน 4", default: null, }) achievement4: string; @Column({ nullable: true, comment: "ผลสำเร็จของงาน 5", default: null, }) achievement5: string; @Column({ nullable: true, comment: "id หน่วยงาน", default: null, }) rootId: string; @Column({ nullable: true, comment: "ชื่อหน่วยงาน", default: null, }) root: string; @Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน", default: null, }) rootShortName: string; @Column({ nullable: true, comment: "id หน่วยงาน child1", default: null, }) child1Id: string; @Column({ nullable: true, comment: "ชื่อหน่วยงาน child1", default: null, }) child1: string; @Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child1", default: null, }) child1ShortName: string; @Column({ nullable: true, comment: "id หน่วยงาน child2", default: null, }) child2Id: string; @Column({ nullable: true, comment: "ชื่อหน่วยงาน child2", default: null, }) child2: string; @Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child2", default: null, }) child2ShortName: string; @Column({ nullable: true, comment: "id หน่วยงาน child3", default: null, }) child3Id: string; @Column({ nullable: true, comment: "ชื่อหน่วยงาน child3", default: null, }) child3: string; @Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child3", default: null, }) child3ShortName: string; @Column({ nullable: true, comment: "id หน่วยงาน child4", default: null, }) child4Id: string; @Column({ nullable: true, comment: "ชื่อหน่วยงาน child4", default: null, }) child4: string; @Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child4", default: null, }) child4ShortName: string; @Column({ nullable: true, comment: "id revision", default: null, }) orgRevisionId: string; @Column({ nullable: true, comment: "นิยามหรือความหมาย", default: null, }) meaning: string; @Column({ nullable: true, comment: "สูตรคำนวณ", default: null, }) formula: string; @Column({ nullable: true, length: 40, comment: "ไอดีรอบ", default: null, }) kpiPeriodId: string | null; @ManyToOne(() => KpiPeriod, (kpiPeriod) => kpiPeriod.kpiRoles) @JoinColumn({ name: "kpiPeriodId" }) kpiPeriod: KpiPeriod; @OneToMany(() => KpiUserRole, (kpiUserRole) => kpiUserRole.kpiRoles) kpiUserRoles: KpiUserRole[]; } export class createKpiRole { @Column() position: string | null; @Column() including: string | null; @Column() includingName: string | null; @Column() target: string | null; @Column() unit: number | null; @Column() weight: number | null; @Column() achievement1: string | null; @Column() achievement2: string | null; @Column() achievement3: string | null; @Column() achievement4: string | null; @Column() achievement5: string | null; @Column() node: number; @Column() nodeId: string | null; @Column() orgRevisionId: string; @Column() meaning: string | null; @Column() formula: string | null; @Column() kpiPeriodId: string | null; } export class updateKpiRole { @Column() position: string | null; @Column() including: string | null; @Column() includingName: string | null; @Column() target: string | null; @Column() unit: number | null; @Column() weight: number | null; @Column() achievement1: string | null; @Column() achievement2: string | null; @Column() achievement3: string | null; @Column() achievement4: string | null; @Column() achievement5: string | null; @Column() node: number; @Column() nodeId: string | null; @Column() orgRevisionId: string; @Column() meaning: string | null; @Column() formula: string | null; @Column() kpiPeriodId: string | null; }