diff --git a/packages/medusa/src/api/routes/admin/discounts/update-discount.ts b/packages/medusa/src/api/routes/admin/discounts/update-discount.ts index e8791cb4ba..8cdf89282c 100644 --- a/packages/medusa/src/api/routes/admin/discounts/update-discount.ts +++ b/packages/medusa/src/api/routes/admin/discounts/update-discount.ts @@ -126,16 +126,16 @@ export class AdminPostDiscountsDiscountReq { @IsOptional() @IsGreaterThan("starts_at") @Type(() => Date) - ends_at?: Date + ends_at?: Date | null @IsISO8601Duration() @IsOptional() - valid_duration?: string + valid_duration?: string | null @IsNumber() @IsOptional() @IsPositive() - usage_limit?: number + usage_limit?: number | null @IsArray() @IsOptional() diff --git a/packages/medusa/src/models/discount.ts b/packages/medusa/src/models/discount.ts index f0acd2a6c3..a19db5c99a 100644 --- a/packages/medusa/src/models/discount.ts +++ b/packages/medusa/src/models/discount.ts @@ -10,7 +10,7 @@ import { ManyToMany, ManyToOne, PrimaryColumn, - UpdateDateColumn, + UpdateDateColumn } from "typeorm" import { ulid } from "ulid" import { DbAwareColumn, resolveDbType } from "../utils/db-aware-column" @@ -54,10 +54,10 @@ export class Discount { starts_at: Date @Column({ type: resolveDbType("timestamptz"), nullable: true }) - ends_at: Date + ends_at: Date | null - @Column({ nullable: true }) - valid_duration: string + @Column({ type: String, nullable: true }) + valid_duration: string | null @ManyToMany(() => Region, { cascade: true }) @JoinTable({ @@ -73,8 +73,8 @@ export class Discount { }) regions: Region[] - @Column({ nullable: true }) - usage_limit: number + @Column({ type: Number, nullable: true }) + usage_limit: number | null @Column({ default: 0 }) usage_count: number diff --git a/packages/medusa/src/services/discount.ts b/packages/medusa/src/services/discount.ts index 1dadeaaed1..04af4a5c80 100644 --- a/packages/medusa/src/services/discount.ts +++ b/packages/medusa/src/services/discount.ts @@ -721,7 +721,11 @@ class DiscountService extends BaseService { } hasExpired(discount: Discount): boolean { - return discount.ends_at && isPast(discount.ends_at) + if (!discount.ends_at) { + return false + } + + return isPast(discount.ends_at) } isDisabled(discount: Discount): boolean { diff --git a/packages/medusa/src/types/discount.ts b/packages/medusa/src/types/discount.ts index e35b045cb2..388721eb96 100644 --- a/packages/medusa/src/types/discount.ts +++ b/packages/medusa/src/types/discount.ts @@ -151,9 +151,9 @@ export type UpdateDiscountInput = { is_dynamic?: boolean is_disabled?: boolean starts_at?: Date - ends_at?: Date - valid_duration?: string - usage_limit?: number + ends_at?: Date | null + valid_duration?: string | null + usage_limit?: number | null regions?: string[] metadata?: Record }