import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryGeneratedColumn, } from "typeorm"; import { UserSubscription } from "./UserSubscription"; @Index("PK_transaction", ["id"], { unique: true }) @Index("IX_transaction_user_id", ["userId"], {}) @Index("IX_transaction_user_subscription_id", ["userSubscriptionId"], {}) @Index("uq_transaction_utid", ["utid"], { unique: true }) @Entity("transaction", { schema: "core" }) export class Transaction { @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: "utid", length: 255 }) utid: string; @Column("integer", { name: "user_id" }) userId: number; @Column("integer", { name: "user_subscription_id" }) userSubscriptionId: number; @Column("timestamp without time zone", { name: "start_date" }) startDate: Date; @Column("timestamp without time zone", { name: "end_date" }) endDate: Date; @Column("jsonb", { name: "receipt", nullable: true }) receipt: object | null; @Column("smallint", { name: "state", default: () => "1" }) state: number; @Column("character varying", { name: "environment", nullable: true, length: 16, }) environment: string | null; @ManyToOne( () => UserSubscription, (userSubscription) => userSubscription.transactions, { onDelete: "CASCADE" } ) @JoinColumn([{ name: "user_subscription_id", referencedColumnName: "id" }]) userSubscription: UserSubscription; }