242 lines
4.5 KiB
TypeScript
242 lines
4.5 KiB
TypeScript
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
|
|
import { EntityBase } from "./base/Base";
|
|
import { ProfileEducation } from "./ProfileEducation";
|
|
|
|
@Entity("profileEducationHistory")
|
|
export class ProfileEducationHistory extends EntityBase {
|
|
@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: "ระยะเวลาหลักสูตร",
|
|
nullable: true,
|
|
})
|
|
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,
|
|
comment: "เป็นวุฒิศึกษาสูงสุด",
|
|
default: null,
|
|
})
|
|
isHigh: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "หมายเหตุ",
|
|
default: null,
|
|
})
|
|
note: string;
|
|
|
|
@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()
|
|
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()
|
|
isHigh?: boolean | null;
|
|
|
|
@Column("uuid")
|
|
profileEducationId: string | null;
|
|
|
|
@Column()
|
|
note: string | null;
|
|
}
|
|
|
|
export type UpdateProfileEducationHistory = Partial<CreateProfileEducationHistory>;
|