feat(pricing): pricing models are made soft deletable (#6732)

what:

- pricing models are made soft deletable
- adds missing timestamp attributes
- removes unwanted relationships + cascade cleanup
This commit is contained in:
Riqwan Thamir
2024-03-20 16:03:17 +00:00
committed by GitHub
parent 70859397c0
commit 20243e22ee
36 changed files with 1006 additions and 1729 deletions
@@ -15,7 +15,10 @@ export const remapKeysForProduct = (selectFields: string[]) => {
const pricingFields = selectFields
.filter((fieldName: string) => isPricing(fieldName))
.map((fieldName: string) =>
fieldName.replace("variants.prices", "variants.price_set.money_amounts")
fieldName.replace(
"variants.prices.",
"variants.price_set.price_set_money_amounts.money_amount."
)
)
return [...productFields, ...pricingFields]
@@ -28,7 +31,10 @@ export const remapKeysForVariant = (selectFields: string[]) => {
const pricingFields = selectFields
.filter((fieldName: string) => isPricing(fieldName))
.map((fieldName: string) =>
fieldName.replace("prices", "price_set.money_amounts")
fieldName.replace(
"prices.",
"price_set.price_set_money_amounts.money_amount."
)
)
return [...variantFields, ...pricingFields]
@@ -44,8 +50,8 @@ export const remapProduct = (p: ProductDTO) => {
export const remapVariant = (v: ProductVariantDTO) => {
return {
...v,
prices: (v as any).price_set?.money_amounts?.map((ma) => ({
...ma,
prices: (v as any).price_set?.price_set_money_amounts?.map((psma) => ({
...psma.money_amount,
variant_id: v.id,
})),
price_set: undefined,
@@ -5,14 +5,14 @@ import {
isString,
remoteQueryObjectFromString,
} from "@medusajs/utils"
import { MedusaContainer } from "medusa-core-utils"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "../../../types/routing"
import { listPriceLists } from "../price-lists/queries"
import { AdminGetProductsParams } from "./validators"
import { refetchProduct, remapKeysForProduct, remapProduct } from "./helpers"
import { MedusaContainer } from "medusa-core-utils"
import { AdminGetProductsParams } from "./validators"
const applyVariantFiltersForPriceList = async (
scope: MedusaContainer,
@@ -59,6 +59,7 @@ export const GET = async (
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
let filterableFields: AdminGetProductsParams = { ...req.filterableFields }
filterableFields = await applyVariantFiltersForPriceList(
req.scope,
filterableFields