feat(pricing, types): PriceSets as entry point to pricing module (#4978)

What:
- Adds PriceSet, PriceSetMoneyAmount, updates schema
- Adds service/repo for PriceSet
- Shifts entry point to use PriceSet
- Updates link/joiner config

RESOLVES CORE-1495
This commit is contained in:
Riqwan Thamir
2023-09-11 17:24:31 +00:00
committed by GitHub
parent adf4903003
commit 834da5c41a
29 changed files with 1853 additions and 113 deletions
@@ -0,0 +1,13 @@
import { CreatePriceSetDTO } from "@medusajs/types"
export const defaultPriceSetsData = [
{
id: "price-set-1",
},
{
id: "price-set-2",
},
{
id: "price-set-3",
},
] as unknown as CreatePriceSetDTO[]
@@ -0,0 +1,38 @@
import { CreatePriceSetDTO } from "@medusajs/types"
import { SqlEntityManager } from "@mikro-orm/postgresql"
import { PriceSet, PriceSetMoneyAmount } from "@models"
import { defaultPriceSetsData } from "./data"
export async function createPriceSets(
manager: SqlEntityManager,
priceSetsData: CreatePriceSetDTO[] = defaultPriceSetsData
): Promise<PriceSet[]> {
const priceSets: PriceSet[] = []
for (let priceSetData of priceSetsData) {
const priceSetDataClone = { ...priceSetData }
const moneyAmountsData = priceSetDataClone.money_amounts || []
delete priceSetDataClone.money_amounts
let priceSet = manager.create(PriceSet, priceSetDataClone) as PriceSet
await manager.persist(priceSet).flush()
for (let moneyAmount of moneyAmountsData) {
const price_set = (await manager.findOne(
PriceSet,
priceSet.id
)) as PriceSet
const psma = manager.create(PriceSetMoneyAmount, {
price_set: price_set.id,
money_amount: moneyAmount.id,
title: "test",
})
manager.persist(psma).flush()
}
}
return priceSets
}