Files
medusa-store/packages/admin/dashboard/src/lib/promotions.ts
2024-09-05 22:18:38 +02:00

32 lines
745 B
TypeScript

import { HttpTypes } from "@medusajs/types"
export enum PromotionStatus {
SCHEDULED = "SCHEDULED",
EXPIRED = "EXPIRED",
ACTIVE = "ACTIVE",
DISABLED = "DISABLED",
}
export const getPromotionStatus = (promotion: HttpTypes.AdminPromotion) => {
const date = new Date()
const campaign = promotion.campaign
if (!campaign) {
return PromotionStatus.ACTIVE
}
if (new Date(campaign.starts_at!) > date) {
return PromotionStatus.SCHEDULED
}
const campaignBudget = campaign.budget
const overBudget =
campaignBudget && campaignBudget.used! > campaignBudget.limit!
if ((campaign.ends_at && new Date(campaign.ends_at) < date) || overBudget) {
return PromotionStatus.EXPIRED
}
return PromotionStatus.ACTIVE
}