import { Entity, Column, ManyToOne, JoinColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; import { ProfileLeave } from "./ProfileLeave"; @Entity("profileLeaveHistory") export class ProfileLeaveHistory extends EntityBase { @Column({ comment: "สถานะการใช้งาน", default: false, }) isActive: boolean; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // restCount: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // restDay: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาพักผ่อน (วัน)", // default: null, // }) // sickCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาป่วย (วัน)", // default: null, // }) // sickDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // otherDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // personalCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลากิจส่วนตัว (วัน)", // default: null, // }) // personalDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // studyCount: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // absentCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล (วัน)", // default: null, // }) // absentDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // agencyCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาไปปฏิบัติงานในองค์การระหว่างประเทศ (วัน)", // default: null, // }) // agencyDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // coupleCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาติดตามคู่สมรส (วัน)", // default: null, // }) // coupleDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // lateCount: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // lateDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // maternityCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาคลอดบุตร (วัน)", // default: null, // }) // maternityDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // militaryCount: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // militaryDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // ordainCount: number; // @Column({ // nullable: true, // type: "double", // comment: "ลาอุปสมบทหรือการลาประกอบพิธีฮัจย์ฯ (วัน)", // default: null, // }) // ordainDay: number; // @Column({ // nullable: true, // type: "double", // comment: "", // default: null, // }) // otherCount: number; @Column({ nullable: true, type: "datetime", comment: "วัน เดือน ปี ที่เริ่มลา", default: null, }) dateStartLeave: Date; @Column({ nullable: true, type: "datetime", comment: "วัน เดือน ปี ที่สิ้นสุดลา", default: null, }) dateEndLeave: Date; @Column({ nullable: true, type: "double", comment: "ลาครั้งที่", default: null, }) numLeave: number; @Column({ nullable: true, type: "double", comment: "ลามาแล้ว", default: null, }) sumLeave: number; @Column({ nullable: true, type: "double", comment: "รวมเป็น", default: null, }) totalLeave: number; @Column({ nullable: true, comment: "สถานะ", type: "text", default: null, }) status: string; @Column({ nullable: true, length: 40, comment: "คีย์นอก(FK)ของตาราง TypeLeave", default: null, }) typeLeaveId: string; @Column({ nullable: true, comment: "เหตุผล", type: "text", default: null, }) reason: string; @Column({ nullable: true, length: 40, comment: "คีย์นอก(FK)ของตาราง ProfileLeave", default: null, }) profileLeaveId: string; @ManyToOne(() => ProfileLeave, (profileLeave) => profileLeave.profileLeaves) @JoinColumn({ name: "profileLeaveId" }) histories: ProfileLeave; } export class CreateProfileLeaveHistory { @Column() isActive: boolean; // @Column() // restCount: number | null; // @Column() // restDay: number | null; // @Column() // sickCount: number | null; // @Column() // sickDay: number | null; // @Column() // otherDay: number | null; // @Column() // personalCount: number | null; // @Column() // personalDay: number | null; // @Column() // studyCount: number | null; // @Column() // absentCount: number | null; // @Column() // absentDay: number | null; // @Column() // agencyCount: number | null; // @Column() // agencyDay: number | null; // @Column() // coupleCount: number | null; // @Column() // coupleDay: number | null; // @Column() // lateCount: number | null; // @Column() // lateDay: number | null; // @Column() // maternityCount: number | null; // @Column() // maternityDay: number | null; // @Column() // militaryCount: number | null; // @Column() // militaryDay: number | null; // @Column() // ordainCount: number | null; // @Column() // ordainDay: number | null; // @Column() // otherCount: number | null; @Column() dateStartLeave: Date | null; @Column() dateEndLeave: Date | null; @Column() numLeave: number | null; @Column() sumLeave: number | null; @Column() totalLeave: number | null; @Column() status: string | null; @Column("uuid") typeLeaveId: string | null; @Column() reason: string | null; @Column("uuid") profileLeaveId: string | null; } export type UpdateProfileLeaveHistory = Partial;