chore: add invoice and subscription entities

This commit is contained in:
mahyargdz
2025-02-08 15:27:32 +03:30
parent ffa2a2a806
commit e4f201bea2
16 changed files with 181 additions and 10 deletions
@@ -0,0 +1,24 @@
import { Column, Entity, ManyToOne } from "typeorm";
import { BaseEntity } from "../../../common/entities/base.entity";
import { SubscriptionPlan } from "../../subscriptions/entities/subscription.entity";
import { User } from "../../users/entities/user.entity";
import { InvoiceStatus } from "../enums/invoice-status.enum";
@Entity()
export class Invoice extends BaseEntity {
@ManyToOne(() => User, (user) => user.invoices, { nullable: true, onDelete: "RESTRICT" })
user: User;
@ManyToOne(() => SubscriptionPlan, { nullable: true, onDelete: "SET NULL" })
subscriptionPlan?: SubscriptionPlan;
@Column({ type: "decimal", precision: 10, scale: 2, nullable: false })
amount: number;
@Column({ type: "enum", enum: InvoiceStatus, default: InvoiceStatus.PENDING })
status: InvoiceStatus;
@Column({ type: "timestamp", nullable: true })
paidAt?: Date;
}