Files
dsc-api/src/modules/discounts/entities/discount.entity.ts
T
2025-04-19 09:46:10 +03:30

40 lines
1.1 KiB
TypeScript
Executable File

import { Column, DeleteDateColumn, Entity, OneToMany } from "typeorm";
import { UsageDiscount } from "./usage-discount.entity";
import { BaseEntity } from "../../../common/entities/base.entity";
import { DecimalTransformer } from "../../../common/transformers/decimal.transformer";
import { DiscountType } from "../enums/discount-type.enum";
@Entity()
export class Discount extends BaseEntity {
@Column({ type: "varchar", length: 150 })
title: string;
@Column({ type: "varchar", length: 100, unique: true })
code: string;
@Column({ type: "enum", enum: DiscountType, default: DiscountType.PERCENTAGE })
type: DiscountType;
@Column({ type: "decimal", precision: 16, scale: 2, transformer: new DecimalTransformer() })
value: number;
@Column({ type: "timestamptz" })
startDate: Date;
@Column({ type: "timestamptz" })
endDate: Date;
@Column({ type: "int", default: 0 })
usedCount: number;
@Column({ type: "boolean", default: true })
isActive: boolean;
@OneToMany(() => UsageDiscount, (usageDiscount) => usageDiscount.discount)
usages: UsageDiscount[];
@DeleteDateColumn({ nullable: true })
deletedAt?: Date;
}