import { Column, Entity, Index, ManyToMany, OneToOne, PrimaryGeneratedColumn, } from "typeorm"; import { UserAttribute } from "./UserAttribute"; import { UserConfig } from "./UserConfig"; import { Role } from "./Role"; @Index("uq_user_firebase_uid", ["firebaseUid"], { unique: true }) @Index("PK_user", ["id"], { unique: true }) @Entity("user", { schema: "sec" }) export class User { @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("character varying", { name: "password_hash", length: 256 }) passwordHash: string; @Column("character varying", { name: "uuid", nullable: true, length: 128 }) uuid: string | null; @Column("character varying", { name: "name", nullable: true, length: 256 }) name: string | null; @Column("character varying", { name: "email", nullable: true, length: 128 }) email: string | null; @Column("character varying", { name: "phone", nullable: true, length: 32 }) phone: string | null; @Column("smallint", { name: "timezone_offset", default: () => "0" }) timezoneOffset: number; @Column("boolean", { name: "is_subscribed" }) isSubscribed: boolean; @Column("integer", { name: "debug_mask", default: () => "0" }) debugMask: number; @Column("smallint", { name: "os_type", nullable: true }) osType: number | null; @Column("smallint", { name: "migration_state", default: () => "0" }) migrationState: number; @Column("integer", { name: "language_id", default: () => "2" }) languageId: number; @Column("boolean", { name: "accept_terms_of_use", default: () => "true" }) acceptTermsOfUse: boolean; @Column("character varying", { name: "country", nullable: true, length: 128 }) country: string | null; @Column("character varying", { name: "firebase_uid", nullable: true, length: 128, }) firebaseUid: string | null; @Column("integer", { name: "flags", default: () => "0" }) flags: number; @OneToOne(() => UserAttribute, (userAttribute) => userAttribute.user) userAttribute: UserAttribute; @OneToOne(() => UserConfig, (userConfig) => userConfig.user) userConfig: UserConfig; @ManyToMany(() => Role, (role) => role.users) roles: Role[]; }