import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm"; import { EntityBase } from "./base/Base"; import { InsigniaType } from "./InsigniaType"; import { ProfileInsignia } from "./ProfileInsignia"; import { ProfileInsigniaHistory } from "./ProfileInsigniaHistory"; @Entity("insignia") export class Insignia extends EntityBase { @Column({ nullable: true, comment: "ชื่อเครื่องราช", length: 255, default: null, }) name: string; @Column({ nullable: true, comment: "ชื่อย่อเครื่องราช", length: 255, default: null, }) shortName: string; @Column({ nullable: true, comment: "ลำดับชั้นของเครื่องราช เอาไว้ตรวจสอบเวลาขอว่าต้องได้ชั้นที่สูงกว่าที่เคยได้รับแล้วเท่านั้น", default: null, }) level: number; @Column({ comment: "สถานะการใช้งาน", default: false, }) isActive: boolean; @Column({ nullable: true, comment: "หมายเหตุ", default: null, }) note: string; @Column({ length: 40, comment: "id ประเภทเครื่องราช", }) insigniaTypeId: string; @ManyToOne(() => InsigniaType, (insigniaType) => insigniaType.insignias) @JoinColumn({ name: "insigniaTypeId" }) insigniaType: InsigniaType; @OneToMany(() => ProfileInsignia, (v) => v.insignia) @JoinColumn({ name: "insigniaId" }) profileInsignias: ProfileInsignia; @OneToMany(() => ProfileInsigniaHistory, (v) => v.insignia) @JoinColumn({ name: "insigniaHistoryId" }) profileInsigniaHistories: ProfileInsigniaHistory; } export class CreateInsignias { @Column() name: string; @Column() shortName: string; @Column() isActive: boolean; @Column() note: string; @Column("uuid") insigniaTypeId: string; } export type UpdateInsignias = Partial;