chore: discount module

This commit is contained in:
Matin
2025-02-16 16:30:17 +03:30
parent 6785b3e9d0
commit 20d6c5b294
31 changed files with 1752 additions and 141 deletions
@@ -1,10 +1,11 @@
// eslint-disable-next-line import/no-named-as-default
import Decimal from "decimal.js";
import { Column, Entity, ManyToOne } from "typeorm";
import { Column, Entity, JoinTable, ManyToMany } from "typeorm";
import { BaseEntity } from "../../../common/entities/base.entity";
import { DecimalTransformer } from "../../../common/transformers/decimal.transformer";
import { SubscriptionPlan } from "../../subscriptions/entities/subscription.entity";
import { User } from "../../users/entities/user.entity";
import { DiscountCalculationType, DiscountType } from "../enums/discount-type.enum";
@Entity()
@@ -33,6 +34,11 @@ export class Discount extends BaseEntity {
@Column({ type: "timestamptz" })
endDate: Date;
@ManyToOne(() => SubscriptionPlan, { nullable: true, onDelete: "SET NULL" })
subscriptionPlan: SubscriptionPlan;
@ManyToMany(() => SubscriptionPlan, (subscriptionPlan) => subscriptionPlan.discounts, { nullable: true })
@JoinTable()
subscriptionPlans: SubscriptionPlan[];
@ManyToMany(() => User, (user) => user.discounts, { nullable: true })
@JoinTable()
users: User[];
}