import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryGeneratedColumn, } from "typeorm"; import { Passport } from "./Passport"; @Index("PK_device", ["id"], { unique: true }) @Index("IX_device_passport_id", ["passportId"], {}) @Index("IX_device_udid", ["udid"], {}) @Index("IX_device_user_id", ["userId"], {}) @Entity("device", { schema: "core" }) export class Device { @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("character varying", { name: "udid", length: 128 }) udid: string; @Column("integer", { name: "user_id" }) userId: number; @Column("jsonb", { name: "data", nullable: true }) data: object | null; @Column("smallint", { name: "state", default: () => "1" }) state: number; @Column("integer", { name: "passport_id", nullable: true }) passportId: number | null; @Column("character varying", { name: "advertising_id", nullable: true, length: 128, }) advertisingId: string | null; @Column("jsonb", { name: "analytics_data", nullable: true }) analyticsData: object | null; @ManyToOne(() => Passport, (passport) => passport.devices, { onDelete: "SET NULL", }) @JoinColumn([{ name: "passport_id", referencedColumnName: "id" }]) passport: Passport; }