43 lines
1.2 KiB
TypeScript
Executable File
43 lines
1.2 KiB
TypeScript
Executable File
import { Column, Entity, JoinColumn, OneToOne } from "typeorm";
|
|
|
|
import { User } from "./user.entity";
|
|
import { BaseEntity } from "../../../common/entities/base.entity";
|
|
import { Address } from "../../address/entities/address.entity";
|
|
import { GenderEnum } from "../enums/gender-type.enum";
|
|
import { NationalityEnum } from "../enums/nationality.enum";
|
|
|
|
@Entity()
|
|
export class RealUser extends BaseEntity {
|
|
@Column({ type: "varchar", length: 150 })
|
|
firstName: string;
|
|
|
|
@Column({ type: "varchar", length: 200 })
|
|
lastName: string;
|
|
|
|
@Column({ type: "varchar", length: 100 })
|
|
fatherName: string;
|
|
|
|
@Column({ type: "varchar", length: 12, nullable: true })
|
|
birthDate: string;
|
|
|
|
@Column({ type: "varchar", length: 100, unique: true })
|
|
nationalCode: string;
|
|
|
|
@Column({ type: "varchar", length: 11, unique: true, nullable: false })
|
|
phone: string;
|
|
|
|
@Column({ type: "enum", enum: GenderEnum })
|
|
gender: GenderEnum;
|
|
|
|
@Column({ type: "enum", enum: NationalityEnum })
|
|
nationality: NationalityEnum;
|
|
|
|
@OneToOne(() => Address, { nullable: false, cascade: true })
|
|
@JoinColumn()
|
|
address: Address;
|
|
|
|
@OneToOne(() => User, (user) => user.realUser, { onDelete: "CASCADE", nullable: false })
|
|
@JoinColumn()
|
|
user: User;
|
|
}
|