import { Column, Entity, Index, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { Passport } from "./Passport"; import { UserSubscription } from "./UserSubscription"; @Index("PK_user_tariff_plan", ["id"], { unique: true }) @Index("IX_user_tariff_plan_share_subscription_id", ["shareSubscriptionId"], {}) @Index( "uq_user_tariff_plan_user_subscription_id_state", ["state", "userSubscriptionId"], { unique: true } ) @Index("IX_user_tariff_plan_tariff_plan_id", ["tariffPlanId"], {}) @Index("IX_user_tariff_plan_user_id", ["userId"], {}) @Index("IX_user_tariff_plan_user_subscription_id", ["userSubscriptionId"], {}) @Entity("user_tariff_plan", { schema: "core" }) export class UserTariffPlan { @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: "product_type_id" }) productTypeId: number; @Column("integer", { name: "tariff_plan_id" }) tariffPlanId: number; @Column("integer", { name: "user_id" }) userId: number; @Column("integer", { name: "user_subscription_id", nullable: true }) userSubscriptionId: number | null; @Column("smallint", { name: "max_devices", nullable: true }) maxDevices: number | null; @Column("integer", { name: "share_subscription_id", nullable: true }) shareSubscriptionId: number | null; @OneToMany(() => Passport, (passport) => passport.userTariffPlan) passports: Passport[]; @ManyToOne( () => UserSubscription, (userSubscription) => userSubscription.userTariffPlans, { onDelete: "CASCADE" } ) @JoinColumn([{ name: "share_subscription_id", referencedColumnName: "id" }]) shareSubscription: UserSubscription; @ManyToOne( () => UserSubscription, (userSubscription) => userSubscription.userTariffPlans2, { onDelete: "CASCADE" } ) @JoinColumn([{ name: "user_subscription_id", referencedColumnName: "id" }]) userSubscription: UserSubscription; }