import { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { Device } from "./Device"; import { UserTariffPlan } from "./UserTariffPlan"; import { PassportHistory } from "./PassportHistory"; import { PassportTag } from "./PassportTag"; @Index("IX_passport_age_category_id_v2_0", ["ageCategoryIdV2_0"], {}) @Index("PK_passport", ["id"], { unique: true }) @Index("IX_passport_user_id", ["userId"], {}) @Index("IX_passport_user_tariff_plan_id", ["userTariffPlanId"], {}) @Entity("passport", { schema: "core" }) export class Passport { @PrimaryGeneratedColumn({ type: "integer", name: "id" }) id: number; @Column("timestamp without time zone", { name: "created_date" }) createdDate: Date; @Column("integer", { name: "created_by" }) createdBy: number; @Column("timestamp without time zone", { name: "modified_date" }) modifiedDate: Date; @Column("integer", { name: "modified_by" }) modifiedBy: number; @Column("smallint", { name: "state" }) state: number; @Column("integer", { name: "user_id" }) userId: number; @Column("character varying", { name: "name", nullable: true, length: 255 }) name: string | null; @Column("date", { name: "birth_date" }) birthDate: string; @Column("smallint", { name: "gender" }) gender: number; @Column("jsonb", { name: "game_profile", nullable: true }) gameProfile: object | null; @Column("integer", { name: "age_category_id_v2_0", nullable: true }) ageCategoryIdV2_0: number | null; @Column("integer", { name: "user_tariff_plan_id", nullable: true }) userTariffPlanId: number | null; @Column("integer", { name: "client_version", nullable: true }) clientVersion: number | null; @OneToMany(() => Device, (device) => device.passport) devices: Device[]; @ManyToOne( () => UserTariffPlan, (userTariffPlan) => userTariffPlan.passports, { onDelete: "SET NULL" } ) @JoinColumn([{ name: "user_tariff_plan_id", referencedColumnName: "id" }]) userTariffPlan: UserTariffPlan; @OneToMany( () => PassportHistory, (passportHistory) => passportHistory.passport ) passportHistories: PassportHistory[]; @OneToMany(() => PassportTag, (passportTag) => passportTag.passport) passportTags: PassportTag[]; }