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; @Column({ nullable: true, comment: "หมายเหตุ", default: null, }) note: 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;