chore: scope campaign identifier index with deleted at (#7821)

This commit is contained in:
Riqwan Thamir
2024-06-24 18:06:14 +02:00
committed by GitHub
parent e8d6025374
commit 7414034ac4
4 changed files with 70 additions and 10 deletions
@@ -1,5 +1,10 @@
import { DAL } from "@medusajs/types"
import { DALUtils, Searchable, generateEntityId } from "@medusajs/utils"
import {
DALUtils,
Searchable,
createPsqlIndexStatementHelper,
generateEntityId,
} from "@medusajs/utils"
import {
BeforeCreate,
Collection,
@@ -12,7 +17,6 @@ import {
PrimaryKey,
Property,
Rel,
Unique,
} from "@mikro-orm/core"
import CampaignBudget from "./campaign-budget"
import Promotion from "./promotion"
@@ -24,7 +28,15 @@ type OptionalFields =
| "ends_at"
| DAL.SoftDeletableEntityDateColumns
@Entity({ tableName: "promotion_campaign" })
const tableName = "promotion_campaign"
const CampaignUniqueCampaignIdentifier = createPsqlIndexStatementHelper({
tableName,
columns: ["campaign_identifier"],
unique: true,
where: "deleted_at IS NULL",
})
@Entity({ tableName })
@Filter(DALUtils.mikroOrmSoftDeletableFilterOptions)
export default class Campaign {
[OptionalProps]?: OptionalFields | OptionalRelations
@@ -41,10 +53,7 @@ export default class Campaign {
description: string | null = null
@Property({ columnType: "text" })
@Unique({
name: "IDX_campaign_identifier_unique",
properties: ["campaign_identifier"],
})
@CampaignUniqueCampaignIdentifier.MikroORMIndex()
campaign_identifier: string
@Property({