import { Column, Entity, ManyToOne, OneToMany, JoinColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { Profile } from "./Profile"; import { ProfileEmployee } from "./ProfileEmployee"; import { ProfileFamilyCoupleHistory } from "./ProfileFamilyCoupleHistory"; @Entity("profileFamilyCouple") export class ProfileFamilyCouple extends EntityBase { @Column({ nullable: true, default: null, type: "boolean", }) couple: boolean; @Column({ nullable: true, default: null, comment: "คำนำหน้าคู่สมรส", }) couplePrefix: string; @Column({ nullable: true, default: null, comment: "ชื่อคู่สมรส", }) coupleFirstName: string; @Column({ nullable: true, default: null, comment: "นามสกุลคู่สมรส", }) coupleLastName: string; @Column({ nullable: true, default: null, comment: "นามสกุลคู่สมรส(เดิม)", }) coupleLastNameOld: string; @Column({ nullable: true, default: null, comment: "อาชีพคู่สมรส", }) coupleCareer: string; @Column({ nullable: true, default: null, length: 13, comment: "เลขที่บัตรประชาชนคู่สมรส", }) coupleCitizenId: string; @Column({ nullable: true, default: null, type: "boolean", comment: "มีชีวิตคู่สมรส", }) coupleLive: boolean; @Column({ nullable: true, comment: "ความสัมพันธ์", length: 40, default: null, }) relationship: string; @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(() => ProfileFamilyCoupleHistory, (v) => v.profileFamilyCouple) histories: ProfileFamilyCoupleHistory[]; @ManyToOne(() => Profile, (v) => v.profileFamilyCouple) @JoinColumn({ name: "profileId" }) profile: Profile; @ManyToOne(() => ProfileEmployee, (v) => v.profileFamilyCouple) @JoinColumn({ name: "profileEmployeeId" }) profileEmployee: ProfileEmployee; } export type CreateProfileFamilyCouple = { profileId: string; // couple: boolean | null; couplePrefix: string | null; coupleFirstName: string | null; coupleLastName: string | null; coupleLastNameOld: string | null; coupleCareer: string | null; coupleCitizenId: string | null; coupleLive: boolean | null; relationship: string | null; }; export type CreateProfileEmployeeFamilyCouple = { profileEmployeeId: string; // couple: boolean | null; couplePrefix: string | null; coupleFirstName: string | null; coupleLastName: string | null; coupleLastNameOld: string | null; coupleCareer: string | null; coupleCitizenId: string | null; coupleLive: boolean | null; relationship: string | null; }; export type UpdateProfileFamilyCouple = { // couple?: boolean | null; couplePrefix?: string | null; coupleFirstName?: string | null; coupleLastName?: string | null; coupleLastNameOld?: string | null; coupleCareer?: string | null; coupleCitizenId?: string | null; coupleLive?: boolean | null; relationship: string | null; };