import { Column, Entity, ManyToOne, OneToMany, JoinColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; import { ProfileEmployee } from "./ProfileEmployee"; import { ProfileFamilyFatherHistory } from "./ProfileFamilyFatherHistory"; @Entity("profileFamilyFather") export class ProfileFamilyFather extends EntityBase { @Column({ nullable: true, default: null, comment: "คำนำหน้าบิดา", }) fatherPrefix: string; @Column({ nullable: true, default: null, comment: "ชื่อบิดา", }) fatherFirstName: string; @Column({ nullable: true, default: null, comment: "นามสกุลบิดา", }) fatherLastName: string; @Column({ nullable: true, default: null, comment: "อาชีพบิดา", }) fatherCareer: string; @Column({ nullable: true, default: null, comment: "เลขที่บัตรประชาชนบิดา", }) fatherCitizenId: string; @Column({ nullable: true, default: null, comment: "มีชีวิตบิดา", }) fatherLive: boolean; @Column({ nullable: true, length: 40, type: "uuid", comment: "คีย์นอก(FK) ของตาราง Profile", default: null, }) profileId: string; @Column({ nullable: true, length: 40, comment: "คีย์นอก(FK)ของตาราง ProfileEmployee", default: null, }) profileEmployeeId: string; @OneToMany(() => ProfileFamilyFatherHistory, (v) => v.profileFamilyFather) histories: ProfileFamilyFatherHistory[]; @ManyToOne(() => Profile, (v) => v.profileFamilyFather) @JoinColumn({ name: "profileId" }) profile: Profile; @ManyToOne(() => ProfileEmployee, (v) => v.profileFamilyFather) @JoinColumn({ name: "profileEmployeeId" }) profileEmployee: ProfileEmployee; } export type CreateProfileFamilyFather = { profileId: string; fatherPrefix: string | null; fatherFirstName: string | null; fatherLastName: string | null; fatherCareer: string | null; fatherCitizenId: string | null; fatherLive: boolean | null; } export type CreateProfileEmployeeFamilyFather = { profileEmployeeId: string; fatherPrefix: string | null; fatherFirstName: string | null; fatherLastName: string | null; fatherCareer: string | null; fatherCitizenId: string | null; fatherLive: boolean | null; } export type UpdateProfileFamilyFather = { fatherPrefix?: string | null; fatherFirstName?: string | null; fatherLastName?: string | null; fatherCareer?: string | null; fatherCitizenId?: string | null; fatherLive?: boolean | null; };