add entity org part 1
This commit is contained in:
parent
0f7edf5d15
commit
f36ff656ef
13 changed files with 1783 additions and 1 deletions
|
|
@ -5,6 +5,12 @@ import { PosLevel } from "./PosLevel";
|
|||
import { PosType } from "./PosType";
|
||||
import { ProfileSalary } from "./ProfileSalary";
|
||||
import { ProfileDiscipline } from "./ProfileDiscipline";
|
||||
import { ProfileCertificate } from "./ProfileCertificate";
|
||||
import { ProfileEducation } from "./ProfileEducation";
|
||||
import { ProfileTraining } from "./ProfileTraining";
|
||||
import { ProfileInsignia } from "./ProfileInsignia";
|
||||
import { ProfileHonor } from "./ProfileHonor";
|
||||
import { ProfileAssessment } from "./ProfileAssessment";
|
||||
|
||||
@Entity("profile")
|
||||
export class Profile extends EntityBase {
|
||||
|
|
@ -124,7 +130,7 @@ export class Profile extends EntityBase {
|
|||
default: null,
|
||||
})
|
||||
birthDate: Date;
|
||||
|
||||
|
||||
@OneToMany(() => PosMaster, (posMaster) => posMaster.current_holder)
|
||||
current_holders: PosMaster[];
|
||||
|
||||
|
|
@ -137,6 +143,24 @@ export class Profile extends EntityBase {
|
|||
@OneToMany(() => ProfileDiscipline, (profileDiscipline) => profileDiscipline.profile)
|
||||
profileDiscipline: ProfileDiscipline[];
|
||||
|
||||
@OneToMany(() => ProfileCertificate, (profileCertificate) => profileCertificate.profile)
|
||||
profileCertificates: ProfileCertificate[];
|
||||
|
||||
@OneToMany(() => ProfileEducation, (profileEducation) => profileEducation.profile)
|
||||
profileEducations: ProfileEducation[];
|
||||
|
||||
@OneToMany(() => ProfileTraining, (profileTraining) => profileTraining.profile)
|
||||
profileTrainings: ProfileTraining[];
|
||||
|
||||
@OneToMany(() => ProfileInsignia, (profileInsignia) => profileInsignia.profile)
|
||||
profileInsignias: ProfileInsignia[];
|
||||
|
||||
@OneToMany(() => ProfileHonor, (profileHonor) => profileHonor.profile)
|
||||
profileHonors: ProfileHonor[];
|
||||
|
||||
@OneToMany(() => ProfileAssessment, (profileAssessment) => profileAssessment.profile)
|
||||
profileAssessments: ProfileAssessment[];
|
||||
|
||||
@ManyToOne(() => PosLevel, (posLevel) => posLevel.posLevels)
|
||||
@JoinColumn({ name: "posLevelId" })
|
||||
posLevel: PosLevel;
|
||||
|
|
|
|||
126
src/entities/ProfileAssessment.ts
Normal file
126
src/entities/ProfileAssessment.ts
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileAssessmentHistory } from "./ProfileAssessmentHistory";
|
||||
|
||||
@Entity("profileAssessment")
|
||||
export class ProfileAssessment extends EntityBase {
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileId: string;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
export class CreateProfileAssessment {
|
||||
@Column("uuid")
|
||||
profileId: string | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
name: string | null;
|
||||
|
||||
@Column()
|
||||
date: Date | null;
|
||||
|
||||
@Column()
|
||||
point1: number | null;
|
||||
|
||||
@Column()
|
||||
point1Total: number | null;
|
||||
|
||||
@Column()
|
||||
point2: number | null;
|
||||
|
||||
@Column()
|
||||
point2Total: number | null;
|
||||
|
||||
@Column()
|
||||
pointSum: number | null;
|
||||
|
||||
@Column()
|
||||
pointSumTotal: number | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileAssessment = Partial<CreateProfileAssessment>;
|
||||
125
src/entities/ProfileAssessmentHistory.ts
Normal file
125
src/entities/ProfileAssessmentHistory.ts
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileAssessment } from "./ProfileAssessment";
|
||||
|
||||
@Entity("profileAssessmentHistory")
|
||||
export class ProfileAssessmentHistory extends EntityBase {
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@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;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง ProfileAssessment",
|
||||
default: null,
|
||||
})
|
||||
profileAssessmentId: string;
|
||||
|
||||
@ManyToOne(() => ProfileAssessment, (profileAssessment) => profileAssessment.profileAssessmentHistorys)
|
||||
@JoinColumn({ name: "profileAssessmentId" })
|
||||
histories: ProfileAssessment;
|
||||
}
|
||||
|
||||
export class CreateProfileAssessmentHistory {
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
name: string | null;
|
||||
|
||||
@Column()
|
||||
date: Date | null;
|
||||
|
||||
@Column()
|
||||
point1: number | null;
|
||||
|
||||
@Column()
|
||||
point1Total: number | null;
|
||||
|
||||
@Column()
|
||||
point2: number | null;
|
||||
|
||||
@Column()
|
||||
point2Total: number | null;
|
||||
|
||||
@Column()
|
||||
pointSum: number | null;
|
||||
|
||||
@Column()
|
||||
pointSumTotal: number | null;
|
||||
|
||||
@Column("uuid")
|
||||
profileAssessmentId: string | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileAssessmentHistory = Partial<CreateProfileAssessmentHistory>;
|
||||
96
src/entities/ProfileCertificate.ts
Normal file
96
src/entities/ProfileCertificate.ts
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
import { Entity, Column, OneToMany, ManyToOne, JoinColumn } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileCertificateHistory } from "./ProfileCertificateHistory";
|
||||
|
||||
@Entity("profileCertificate")
|
||||
export class ProfileCertificate extends EntityBase {
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่หมดอายุ",
|
||||
default: null,
|
||||
})
|
||||
expireDate: Date;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่ออกใบอนุญาต",
|
||||
default: null,
|
||||
})
|
||||
issueDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เลขที่ใบอนุญาต",
|
||||
length: 20,
|
||||
default: null,
|
||||
})
|
||||
certificateNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ชื่อใบอนุญาต",
|
||||
length: 100,
|
||||
default: null,
|
||||
})
|
||||
certificateType: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "หน่วยงานผู้ออกใบอนุญาต",
|
||||
length: 200,
|
||||
default: null,
|
||||
})
|
||||
issuer: string;
|
||||
|
||||
@OneToMany(() => ProfileCertificateHistory, (profileCertificateHistory) => profileCertificateHistory.histories)
|
||||
profileCertificateHistories: ProfileCertificateHistory[];
|
||||
|
||||
@ManyToOne(() => Profile, (profile) => profile.profileCertificates)
|
||||
@JoinColumn({ name: "profileId" })
|
||||
profile: Profile;
|
||||
|
||||
}
|
||||
|
||||
export class CreateProfileCertificate {
|
||||
|
||||
@Column("uuid")
|
||||
profileId: string | null;
|
||||
|
||||
@Column()
|
||||
expireDate: Date | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
issueDate: Date | null;
|
||||
|
||||
@Column()
|
||||
certificateNo: string | null;
|
||||
|
||||
@Column()
|
||||
certificateType: string | null;
|
||||
|
||||
@Column()
|
||||
issuer: string | null;
|
||||
|
||||
}
|
||||
|
||||
export type UpdateProfileCertificate = Partial<CreateProfileCertificate>;
|
||||
94
src/entities/ProfileCertificateHistory.ts
Normal file
94
src/entities/ProfileCertificateHistory.ts
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
import { Entity, Column, OneToMany, ManyToOne, JoinColumn } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileCertificate } from "./ProfileCertificate";
|
||||
|
||||
@Entity("profileCertificateHistory")
|
||||
export class ProfileCertificateHistory extends EntityBase {
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่หมดอายุ",
|
||||
default: null,
|
||||
})
|
||||
expireDate: Date;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่ออกใบอนุญาต",
|
||||
default: null,
|
||||
})
|
||||
issueDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เลขที่ใบอนุญาต",
|
||||
length: 20,
|
||||
default: null,
|
||||
})
|
||||
certificateNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ชื่อใบอนุญาต",
|
||||
length: 100,
|
||||
default: null,
|
||||
})
|
||||
certificateType: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "หน่วยงานผู้ออกใบอนุญาต",
|
||||
length: 200,
|
||||
default: null,
|
||||
})
|
||||
issuer: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง ProfileCertificate",
|
||||
default: null,
|
||||
})
|
||||
profileCertificateId: string;
|
||||
|
||||
@ManyToOne(() => ProfileCertificate, (profileCertificate) => profileCertificate.profileCertificateHistories)
|
||||
@JoinColumn({ name: "profileCertificateId" })
|
||||
histories: ProfileCertificate;
|
||||
|
||||
}
|
||||
|
||||
export class CreateProfileCertificateHistory {
|
||||
|
||||
@Column()
|
||||
expireDate: Date | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
issueDate: Date | null;
|
||||
|
||||
@Column()
|
||||
certificateNo: string | null;
|
||||
|
||||
@Column()
|
||||
certificateType: string | null;
|
||||
|
||||
@Column()
|
||||
issuer: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
profileCertificateId: string | null;
|
||||
|
||||
}
|
||||
|
||||
export type UpdateProfileCertificateHistory = Partial<CreateProfileCertificateHistory>;
|
||||
232
src/entities/ProfileEducation.ts
Normal file
232
src/entities/ProfileEducation.ts
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileEducationHistory } from "./ProfileEducationHistory";
|
||||
|
||||
@Entity("profileEducation")
|
||||
export class ProfileEducation extends EntityBase {
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileId: string;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเทศ",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
country: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "วุฒิการศึกษา",
|
||||
length: 200,
|
||||
default: null,
|
||||
})
|
||||
degree: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ระยะเวลา",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
duration: string;
|
||||
|
||||
@Column({
|
||||
comment: "ระยะเวลาหลักสูตร",
|
||||
})
|
||||
durationYear: number;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "สาขาวิชา/ทาง",
|
||||
length: 200,
|
||||
default: null,
|
||||
})
|
||||
field: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่สำเร็จการศึกษา",
|
||||
default: null,
|
||||
})
|
||||
finishDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ทุน",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
fundName: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เกรดเฉลี่ย",
|
||||
length: 20,
|
||||
default: null,
|
||||
})
|
||||
gpa: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "สถานศึกษา",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
institute: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ข้อมูลการติดต่อ",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
other: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "ตั้งแต่",
|
||||
default: null,
|
||||
})
|
||||
startDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "ถึง",
|
||||
default: null,
|
||||
})
|
||||
endDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ระดับศึกษา",
|
||||
type: "text", // ใช้ "text" แทน "string" เพื่อรองรับ long text
|
||||
default: null,
|
||||
})
|
||||
educationLevel: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "Id ระดับศึกษา",
|
||||
default: null,
|
||||
})
|
||||
educationLevelId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เป็นวุฒิการศึกษาในตำแหน่ง",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
positionPath: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "Id เป็นวุฒิการศึกษาในตำแหน่ง",
|
||||
default: null,
|
||||
})
|
||||
positionPathId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเภทช่วงเวลาการศึกษา",
|
||||
default: null,
|
||||
})
|
||||
isDate: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เป็นวุฒิศึกษาในตำแหน่ง",
|
||||
default: null,
|
||||
})
|
||||
isEducation: boolean;
|
||||
|
||||
@OneToMany(() => ProfileEducationHistory, (profileEducationHistory) => profileEducationHistory.histories)
|
||||
profileEducationHistories: ProfileEducationHistory[];
|
||||
|
||||
@ManyToOne(() => Profile, (profile) => profile.profileEducations)
|
||||
@JoinColumn({ name: "profileId" })
|
||||
profile: Profile;
|
||||
|
||||
}
|
||||
|
||||
export class CreateProfileEducation {
|
||||
@Column("uuid")
|
||||
profileId: string | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
country: string | null;
|
||||
|
||||
@Column()
|
||||
degree: string | null;
|
||||
|
||||
@Column()
|
||||
duration: string | null;
|
||||
|
||||
@Column()
|
||||
durationYear: number;
|
||||
|
||||
@Column()
|
||||
field: string | null;
|
||||
|
||||
@Column()
|
||||
finishDate: Date | null;
|
||||
|
||||
@Column()
|
||||
fundName: string | null;
|
||||
|
||||
@Column()
|
||||
gpa: string | null;
|
||||
|
||||
@Column()
|
||||
institute: string | null;
|
||||
|
||||
@Column()
|
||||
other: string | null;
|
||||
|
||||
@Column()
|
||||
startDate: Date | null;
|
||||
|
||||
@Column()
|
||||
endDate: Date | null;
|
||||
|
||||
@Column()
|
||||
educationLevel: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
educationLevelId: string | null;
|
||||
|
||||
@Column()
|
||||
positionPath: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
positionPathId: string | null;
|
||||
|
||||
@Column()
|
||||
isDate: boolean | null;
|
||||
|
||||
@Column()
|
||||
isEducation: boolean | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileEducation = Partial<CreateProfileEducation>;
|
||||
232
src/entities/ProfileEducationHistory.ts
Normal file
232
src/entities/ProfileEducationHistory.ts
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileEducation } from "./ProfileEducation";
|
||||
|
||||
@Entity("profileEducationHistory")
|
||||
export class ProfileEducationHistory extends EntityBase {
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเทศ",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
country: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "วุฒิการศึกษา",
|
||||
length: 200,
|
||||
default: null,
|
||||
})
|
||||
degree: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ระยะเวลา",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
duration: string;
|
||||
|
||||
@Column({
|
||||
comment: "ระยะเวลาหลักสูตร",
|
||||
})
|
||||
durationYear: number;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "สาขาวิชา/ทาง",
|
||||
length: 200,
|
||||
default: null,
|
||||
})
|
||||
field: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่สำเร็จการศึกษา",
|
||||
default: null,
|
||||
})
|
||||
finishDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ทุน",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
fundName: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เกรดเฉลี่ย",
|
||||
length: 20,
|
||||
default: null,
|
||||
})
|
||||
gpa: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "สถานศึกษา",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
institute: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ข้อมูลการติดต่อ",
|
||||
length: 1000,
|
||||
default: null,
|
||||
})
|
||||
other: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "ตั้งแต่",
|
||||
default: null,
|
||||
})
|
||||
startDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "ถึง",
|
||||
default: null,
|
||||
})
|
||||
endDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ระดับศึกษา",
|
||||
type: "text", // ใช้ "text" แทน "string" เพื่อรองรับ long text
|
||||
default: null,
|
||||
})
|
||||
educationLevel: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "Id ระดับศึกษา",
|
||||
default: null,
|
||||
})
|
||||
educationLevelId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เป็นวุฒิการศึกษาในตำแหน่ง",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
positionPath: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "Id เป็นวุฒิการศึกษาในตำแหน่ง",
|
||||
default: null,
|
||||
})
|
||||
positionPathId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเภทช่วงเวลาการศึกษา",
|
||||
default: null,
|
||||
})
|
||||
isDate: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เป็นวุฒิศึกษาในตำแหน่ง",
|
||||
default: null,
|
||||
})
|
||||
isEducation: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileEducationId: string;
|
||||
|
||||
@ManyToOne(() => ProfileEducation, (profileEducation) => profileEducation.profileEducationHistories)
|
||||
@JoinColumn({ name: "profileEducationId" })
|
||||
histories: ProfileEducation;
|
||||
|
||||
}
|
||||
|
||||
export class CreateProfileEducationHistory {
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
country: string | null;
|
||||
|
||||
@Column()
|
||||
degree: string | null;
|
||||
|
||||
@Column()
|
||||
duration: string | null;
|
||||
|
||||
@Column()
|
||||
durationYear: number;
|
||||
|
||||
@Column()
|
||||
field: string | null;
|
||||
|
||||
@Column()
|
||||
finishDate: Date | null;
|
||||
|
||||
@Column()
|
||||
fundName: string | null;
|
||||
|
||||
@Column()
|
||||
gpa: string | null;
|
||||
|
||||
@Column()
|
||||
institute: string | null;
|
||||
|
||||
@Column()
|
||||
other: string | null;
|
||||
|
||||
@Column()
|
||||
startDate: Date | null;
|
||||
|
||||
@Column()
|
||||
endDate: Date | null;
|
||||
|
||||
@Column()
|
||||
educationLevel: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
educationLevelId: string | null;
|
||||
|
||||
@Column()
|
||||
positionPath: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
positionPathId: string | null;
|
||||
|
||||
@Column()
|
||||
isDate: boolean | null;
|
||||
|
||||
@Column()
|
||||
isEducation: boolean | null;
|
||||
|
||||
@Column("uuid")
|
||||
profileEducationId: string | null;
|
||||
|
||||
}
|
||||
|
||||
export type UpdateProfileEducationHistory = Partial<CreateProfileEducationHistory>;
|
||||
103
src/entities/ProfileHonor.ts
Normal file
103
src/entities/ProfileHonor.ts
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileHonorHistory } from "./ProfileHonorHistory";
|
||||
|
||||
@Entity("profileHonor")
|
||||
export class ProfileHonor extends EntityBase {
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileId: string;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 2000,
|
||||
comment: "รายละเอียด",
|
||||
default: null,
|
||||
})
|
||||
detail: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่ได้รับ",
|
||||
default: null,
|
||||
})
|
||||
issueDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "หน่วยงานที่ออก",
|
||||
default: null,
|
||||
})
|
||||
issuer: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "เอกสารอ้างอิง (ลงวันที่)",
|
||||
default: null,
|
||||
})
|
||||
refCommandDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
refCommandNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเภทช่วงเวลาการศึกษา",
|
||||
default: null,
|
||||
})
|
||||
isDate: boolean;
|
||||
|
||||
@OneToMany(() => ProfileHonorHistory, (profileHonorHistory) => profileHonorHistory.histories)
|
||||
profileHonorHistories: ProfileHonorHistory[];
|
||||
|
||||
@ManyToOne(() => Profile, (profile) => profile.profileHonors)
|
||||
@JoinColumn({ name: "profileId" })
|
||||
profile: Profile;
|
||||
}
|
||||
|
||||
export class CreateProfileHonor {
|
||||
@Column("uuid")
|
||||
profileId: string | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
detail: string | null;
|
||||
|
||||
@Column()
|
||||
issueDate: Date | null;
|
||||
|
||||
@Column()
|
||||
issuer: string | null;
|
||||
|
||||
@Column()
|
||||
refCommandDate: Date | null;
|
||||
|
||||
@Column()
|
||||
refCommandNo: string | null;
|
||||
|
||||
@Column()
|
||||
isDate: boolean | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileHonor = Partial<CreateProfileHonor>;
|
||||
92
src/entities/ProfileHonorHistory.ts
Normal file
92
src/entities/ProfileHonorHistory.ts
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileHonor } from "./ProfileHonor";
|
||||
|
||||
@Entity("profileHonorHistory")
|
||||
export class ProfileHonorHistory extends EntityBase {
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 2000,
|
||||
comment: "รายละเอียด",
|
||||
default: null,
|
||||
})
|
||||
detail: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่ได้รับ",
|
||||
default: null,
|
||||
})
|
||||
issueDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "หน่วยงานที่ออก",
|
||||
default: null,
|
||||
})
|
||||
issuer: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "เอกสารอ้างอิง (ลงวันที่)",
|
||||
default: null,
|
||||
})
|
||||
refCommandDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
refCommandNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง ProfileHonor",
|
||||
default: null,
|
||||
})
|
||||
profileHonorId: string;
|
||||
|
||||
@ManyToOne(() => ProfileHonor, (profileHonor) => profileHonor.profileHonorHistories)
|
||||
@JoinColumn({ name: "profileHonorId" })
|
||||
histories: ProfileHonor;
|
||||
}
|
||||
|
||||
export class CreateProfileHonorHistory {
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
detail: string | null;
|
||||
|
||||
@Column()
|
||||
issueDate: Date | null;
|
||||
|
||||
@Column()
|
||||
issuer: string | null;
|
||||
|
||||
@Column()
|
||||
refCommandDate: Date | null;
|
||||
|
||||
@Column()
|
||||
refCommandNo: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
profileHonorId: string | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileHonorHistory = Partial<CreateProfileHonorHistory>;
|
||||
178
src/entities/ProfileInsignia.ts
Normal file
178
src/entities/ProfileInsignia.ts
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileInsigniaHistory } from "./ProfileInsigniaHistory";
|
||||
|
||||
@Entity("profileInsignia")
|
||||
export class ProfileInsignia extends EntityBase {
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileId: string;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
comment: "ปีที่ยื่นขอ",
|
||||
})
|
||||
year: number;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 20,
|
||||
comment: "ลำดับที่",
|
||||
default: null,
|
||||
})
|
||||
no: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "เล่ม",
|
||||
default: null,
|
||||
})
|
||||
volume: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "ตอน",
|
||||
default: null,
|
||||
})
|
||||
section: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "หน้า",
|
||||
default: null,
|
||||
})
|
||||
page: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "ลงวันที่",
|
||||
default: null,
|
||||
})
|
||||
receiveDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Insignia",
|
||||
default: null,
|
||||
})
|
||||
insigniaId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเภท",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
insigniaType: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่ประกาศในราชกิจจาฯ",
|
||||
default: null,
|
||||
})
|
||||
dateAnnounce: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 300,
|
||||
comment: "ราชกิจจาฯ ฉบับที่",
|
||||
default: null,
|
||||
})
|
||||
issue: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "เล่มที่",
|
||||
default: null,
|
||||
})
|
||||
volumeNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "เอกสารอ้างอิง (ลงวันที่)",
|
||||
default: null,
|
||||
})
|
||||
refCommandDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
refCommandNo: string;
|
||||
|
||||
@OneToMany(() => ProfileInsigniaHistory, (profileInsigniaHistory) => profileInsigniaHistory.histories)
|
||||
profileInsigniaHistories: ProfileInsigniaHistory[];
|
||||
|
||||
@ManyToOne(() => Profile, (profile) => profile.profileInsignias)
|
||||
@JoinColumn({ name: "profileId" })
|
||||
profile: Profile;
|
||||
}
|
||||
|
||||
export class CreateProfileInsignia {
|
||||
@Column("uuid")
|
||||
profileId: string | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
year: number;
|
||||
|
||||
@Column()
|
||||
no: string | null;
|
||||
|
||||
@Column()
|
||||
volume: string | null;
|
||||
|
||||
@Column()
|
||||
section: string | null;
|
||||
|
||||
@Column()
|
||||
page: string | null;
|
||||
|
||||
@Column()
|
||||
receiveDate: Date | null;
|
||||
|
||||
@Column("uuid")
|
||||
insigniaId: string | null;
|
||||
|
||||
@Column()
|
||||
insigniaType: string | null;
|
||||
|
||||
@Column()
|
||||
dateAnnounce: Date | null;
|
||||
|
||||
@Column()
|
||||
issue: string | null;
|
||||
|
||||
@Column()
|
||||
volumeNo: string | null;
|
||||
|
||||
@Column()
|
||||
refCommandDate: Date | null;
|
||||
|
||||
@Column()
|
||||
refCommandNo: string | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileInsignia = Partial<CreateProfileInsignia>;
|
||||
177
src/entities/ProfileInsigniaHistory.ts
Normal file
177
src/entities/ProfileInsigniaHistory.ts
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileInsignia } from "./ProfileInsignia";
|
||||
|
||||
@Entity("profileInsigniaHistory")
|
||||
export class ProfileInsigniaHistory extends EntityBase {
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
comment: "ปีที่ยื่นขอ",
|
||||
})
|
||||
year: number;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 20,
|
||||
comment: "ลำดับที่",
|
||||
default: null,
|
||||
})
|
||||
no: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "เล่ม",
|
||||
default: null,
|
||||
})
|
||||
volume: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "ตอน",
|
||||
default: null,
|
||||
})
|
||||
section: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "หน้า",
|
||||
default: null,
|
||||
})
|
||||
page: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "ลงวันที่",
|
||||
default: null,
|
||||
})
|
||||
receiveDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Insignia",
|
||||
default: null,
|
||||
})
|
||||
insigniaId: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเภท",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
insigniaType: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันที่ประกาศในราชกิจจาฯ",
|
||||
default: null,
|
||||
})
|
||||
dateAnnounce: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 300,
|
||||
comment: "ราชกิจจาฯ ฉบับที่",
|
||||
default: null,
|
||||
})
|
||||
issue: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 30,
|
||||
comment: "เล่มที่",
|
||||
default: null,
|
||||
})
|
||||
volumeNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "เอกสารอ้างอิง (ลงวันที่)",
|
||||
default: null,
|
||||
})
|
||||
refCommandDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
|
||||
type: "text",
|
||||
default: null,
|
||||
})
|
||||
refCommandNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง ProfileInsignia",
|
||||
default: null,
|
||||
})
|
||||
profileInsigniaId: string;
|
||||
|
||||
@ManyToOne(() => ProfileInsignia, (profileInsignia) => profileInsignia.profileInsigniaHistories)
|
||||
@JoinColumn({ name: "profileInsigniaId" })
|
||||
histories: ProfileInsignia;
|
||||
}
|
||||
|
||||
export class CreateProfileInsigniaHistory {
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
year: number;
|
||||
|
||||
@Column()
|
||||
no: string | null;
|
||||
|
||||
@Column()
|
||||
volume: string | null;
|
||||
|
||||
@Column()
|
||||
section: string | null;
|
||||
|
||||
@Column()
|
||||
page: string | null;
|
||||
|
||||
@Column()
|
||||
receiveDate: Date | null;
|
||||
|
||||
@Column("uuid")
|
||||
insigniaId: string | null;
|
||||
|
||||
@Column()
|
||||
insigniaType: string | null;
|
||||
|
||||
@Column()
|
||||
dateAnnounce: Date | null;
|
||||
|
||||
@Column()
|
||||
issue: string | null;
|
||||
|
||||
@Column()
|
||||
volumeNo: string | null;
|
||||
|
||||
@Column()
|
||||
refCommandDate: Date | null;
|
||||
|
||||
@Column()
|
||||
refCommandNo: string | null;
|
||||
|
||||
@Column("uuid")
|
||||
profileInsigniaId: string | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileInsigniaHistory = Partial<CreateProfileInsigniaHistory>;
|
||||
157
src/entities/ProfileTraining.ts
Normal file
157
src/entities/ProfileTraining.ts
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileTrainingHistory } from "./ProfileTrainingHistory";
|
||||
|
||||
@Entity("profileTraining")
|
||||
export class ProfileTraining extends EntityBase {
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง Profile",
|
||||
default: null,
|
||||
})
|
||||
profileId: string;
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันเริ่มต้นการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
startDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันสิ้นสุดการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
endDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ",
|
||||
default: null,
|
||||
})
|
||||
numberOrder: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "หัวข้อการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
topic: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "สถานที่ฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
place: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่",
|
||||
default: null,
|
||||
})
|
||||
dateOrder: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
department: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "รวมระยะเวลาในการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
duration: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "ชื่อโครงการ/หลักสูตรการฝึกอบรม",
|
||||
default: null,
|
||||
})
|
||||
name: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ปีที่อบรม (พ.ศ.)",
|
||||
default: null,
|
||||
})
|
||||
yearly: number;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ประเภทช่วงเวลาการศึกษา",
|
||||
default: null,
|
||||
})
|
||||
isDate: boolean;
|
||||
|
||||
@OneToMany(() => ProfileTrainingHistory, (profileTrainingHistory) => profileTrainingHistory.histories)
|
||||
profileTrainingHistories: ProfileTrainingHistory[];
|
||||
|
||||
@ManyToOne(() => Profile, (profile) => profile.profileTrainings)
|
||||
@JoinColumn({ name: "profileId" })
|
||||
profile: Profile;
|
||||
}
|
||||
|
||||
export class CreateProfileTraining {
|
||||
@Column("uuid")
|
||||
profileId: string | null;
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
startDate: Date | null;
|
||||
|
||||
@Column()
|
||||
endDate: Date | null;
|
||||
|
||||
@Column()
|
||||
numberOrder: string | null;
|
||||
|
||||
@Column()
|
||||
topic: string | null;
|
||||
|
||||
@Column()
|
||||
place: string | null;
|
||||
|
||||
@Column()
|
||||
dateOrder: Date | null;
|
||||
|
||||
@Column()
|
||||
department: string | null;
|
||||
|
||||
@Column()
|
||||
duration: string | null;
|
||||
|
||||
@Column()
|
||||
name: string | null;
|
||||
|
||||
@Column()
|
||||
yearly: number | null;
|
||||
|
||||
@Column()
|
||||
isDate: boolean | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileTraining = Partial<CreateProfileTraining>;
|
||||
146
src/entities/ProfileTrainingHistory.ts
Normal file
146
src/entities/ProfileTrainingHistory.ts
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileTraining } from "./ProfileTraining";
|
||||
|
||||
@Entity("profileTrainingHistory")
|
||||
export class ProfileTrainingHistory extends EntityBase {
|
||||
|
||||
@Column({
|
||||
comment: "สถานะการใช้งาน",
|
||||
default: false,
|
||||
})
|
||||
isActive: boolean;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันเริ่มต้นการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
startDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "วันสิ้นสุดการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
endDate: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ",
|
||||
default: null,
|
||||
})
|
||||
numberOrder: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "หัวข้อการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
topic: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "สถานที่ฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
place: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
type: "datetime",
|
||||
comment: "คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่",
|
||||
default: null,
|
||||
})
|
||||
dateOrder: Date;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
department: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "รวมระยะเวลาในการฝึกอบรม/ดูงาน",
|
||||
default: null,
|
||||
})
|
||||
duration: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 200,
|
||||
comment: "ชื่อโครงการ/หลักสูตรการฝึกอบรม",
|
||||
default: null,
|
||||
})
|
||||
name: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ปีที่อบรม (พ.ศ.)",
|
||||
default: null,
|
||||
})
|
||||
yearly: number;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง ProfileTraining",
|
||||
default: null,
|
||||
})
|
||||
profileTrainingId: string;
|
||||
|
||||
@ManyToOne(() => ProfileTraining, (profileTraining) => profileTraining.profileTrainingHistories)
|
||||
@JoinColumn({ name: "profileTrainingId" })
|
||||
histories: ProfileTraining;
|
||||
}
|
||||
|
||||
export class CreateProfileTrainingHistory {
|
||||
|
||||
@Column()
|
||||
isActive: boolean;
|
||||
|
||||
@Column()
|
||||
startDate: Date | null;
|
||||
|
||||
@Column()
|
||||
endDate: Date | null;
|
||||
|
||||
@Column()
|
||||
numberOrder: string | null;
|
||||
|
||||
@Column()
|
||||
topic: string | null;
|
||||
|
||||
@Column()
|
||||
place: string | null;
|
||||
|
||||
@Column()
|
||||
dateOrder: Date | null;
|
||||
|
||||
@Column()
|
||||
department: string | null;
|
||||
|
||||
@Column()
|
||||
duration: string | null;
|
||||
|
||||
@Column()
|
||||
name: string | null;
|
||||
|
||||
@Column()
|
||||
yearly: number | null;
|
||||
|
||||
@Column("uuid")
|
||||
profileTrainingId: string | null;
|
||||
}
|
||||
|
||||
export type UpdateProfileTrainingHistory = Partial<CreateProfileTrainingHistory>;
|
||||
Loading…
Add table
Add a link
Reference in a new issue