65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
|
import { EntityBase } from "./base/Base";
|
|
import { EmployeePosType } from "./EmployeePosType";
|
|
import { DevelopmentHistory } from "./DevelopmentHistory";
|
|
|
|
enum EmployeePosLevelAuthoritys {
|
|
HEAD = "HEAD",
|
|
DEPUTY = "DEPUTY",
|
|
GOVERNOR = "GOVERNOR",
|
|
}
|
|
@Entity("employeePosLevel")
|
|
export class EmployeePosLevel extends EntityBase {
|
|
@Column({
|
|
comment: "ชื่อระดับชั้นงาน",
|
|
type: "int",
|
|
})
|
|
posLevelName: number;
|
|
|
|
@Column({
|
|
comment: "ระดับของระดับชั้นงาน",
|
|
type: "int",
|
|
})
|
|
posLevelRank: number;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment:
|
|
"ผู้มีอำนาจสั่งบรรจุของระดับนี้ head = หัวหน้าหน่วยงาน , deputy = ปลัด , governor = ผู้ว่าฯ",
|
|
type: "enum",
|
|
enum: EmployeePosLevelAuthoritys,
|
|
default: null,
|
|
})
|
|
posLevelAuthority: EmployeePosLevelAuthoritys;
|
|
|
|
@Column({
|
|
length: 40,
|
|
comment: "คีย์นอก(FK)ของตาราง employeePosType",
|
|
})
|
|
posTypeId: string;
|
|
|
|
@ManyToOne(() => EmployeePosType, (posType: EmployeePosType) => posType.posLevels)
|
|
@JoinColumn({ name: "posTypeId" })
|
|
posType: EmployeePosType;
|
|
|
|
@OneToMany(() => DevelopmentHistory, (developmentHistory) => developmentHistory.employeePosLevel)
|
|
developmentHistorys: DevelopmentHistory[];
|
|
}
|
|
|
|
export class CreateEmployeePosLevel {
|
|
@Column()
|
|
posLevelName: number;
|
|
|
|
@Column()
|
|
posLevelRank: number;
|
|
|
|
@Column()
|
|
posLevelAuthority: string;
|
|
|
|
@Column("uuid")
|
|
posTypeId: string;
|
|
}
|
|
|
|
export type UpdateEmployeePosLevel = Partial<CreateEmployeePosLevel> & {
|
|
posLevelAuthority: EmployeePosLevelAuthoritys;
|
|
};
|