diff --git a/src/entity/hrms/hrms_faculty.ts b/src/entity/hrms/hrms_faculty.ts new file mode 100644 index 0000000..62f99ad --- /dev/null +++ b/src/entity/hrms/hrms_faculty.ts @@ -0,0 +1,39 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index } from "typeorm"; + +import { Status } from "../../types/status"; + +@Entity("hrms_faculties") +export class HrmsFaculty { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 128, + }) + code: string; + + @Column({ + nullable: false, + length: 256, + }) + name: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} diff --git a/src/entity/hrms/hrms_scholarship.ts b/src/entity/hrms/hrms_scholarship.ts new file mode 100644 index 0000000..129b02f --- /dev/null +++ b/src/entity/hrms/hrms_scholarship.ts @@ -0,0 +1,55 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from "typeorm"; + +import { Status } from "../../types/status"; +import { HrmsFaculty } from "./hrms_faculty"; +import { HrmsEmployee } from "./hrms_employee"; + +@Entity("hrms_scholarships") +export class HrmsScholarship { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => HrmsFaculty, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + faculty: HrmsFaculty; + + @ManyToOne(() => HrmsEmployee, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + employee: HrmsEmployee; + + @Column({ + nullable: false, + length: 256, + }) + university: string; + + @Column({ + nullable: false, + length: 64, + }) + phone: string; + + @Column({ + nullable: false, + length: 256, + }) + file: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} diff --git a/src/entity/hrms/hrms_study.ts b/src/entity/hrms/hrms_study.ts new file mode 100644 index 0000000..d66e088 --- /dev/null +++ b/src/entity/hrms/hrms_study.ts @@ -0,0 +1,39 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index } from "typeorm"; + +import { Status } from "../../types/status"; + +@Entity("studies") +export class HrmsStudy { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 128, + }) + code: string; + + @Column({ + nullable: false, + length: 256, + }) + name: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} diff --git a/src/entity/hrms/hrms_training.ts b/src/entity/hrms/hrms_training.ts new file mode 100644 index 0000000..917152d --- /dev/null +++ b/src/entity/hrms/hrms_training.ts @@ -0,0 +1,51 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from "typeorm"; + +import { Status } from "../../types/status"; +import { HrmsFaculty } from "./hrms_faculty"; +import { HrmsEmployee } from "./hrms_employee"; + +@Entity("hrms_trainings") +export class HrmsTraining { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 256, + }) + name: string; + + @Column({ + nullable: false, + length: 4096, + }) + description: string; + + @Column({ + nullable: false, + }) + start_at: Date; + + @Column({ + nullable: false, + }) + end_at: Date; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} diff --git a/src/entity/hrms/hrms_training_participant.ts b/src/entity/hrms/hrms_training_participant.ts new file mode 100644 index 0000000..d7e1dda --- /dev/null +++ b/src/entity/hrms/hrms_training_participant.ts @@ -0,0 +1,42 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from "typeorm"; + +import { Status } from "../../types/status"; +import { HrmsEmployee } from "./hrms_employee"; +import { HrmsDepartment } from "./hrms_department"; +import { HrmsTraining } from "./hrms_training"; + +@Entity("hrms_training_participants") +export class HrmsTrainingParticipant { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => HrmsTraining, { onDelete: "NO ACTION", nullable: false }) + @JoinColumn() + training: HrmsTraining; + + @ManyToOne(() => HrmsDepartment, { onDelete: "NO ACTION", nullable: false }) + @JoinColumn() + department: HrmsDepartment; + + @ManyToOne(() => HrmsEmployee, { onDelete: "NO ACTION", nullable: false }) + @JoinColumn() + employee: HrmsEmployee; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +}