diff --git a/integration-tests/http/__tests__/claims/claims.spec.ts b/integration-tests/http/__tests__/claims/claims.spec.ts index 0eeb158b07..b56dc7a904 100644 --- a/integration-tests/http/__tests__/claims/claims.spec.ts +++ b/integration-tests/http/__tests__/claims/claims.spec.ts @@ -594,13 +594,17 @@ medusaIntegrationTestRunner({ adminHeaders ) + // shipping Options w/ custom price const { data: { order_preview: { shipping_methods: outboundShippingMethods }, }, } = await api.post( `/admin/claims/${claimId}/outbound/shipping-method`, - { shipping_option_id: outboundShippingOption.id }, + { + shipping_option_id: outboundShippingOption.id, + custom_amount: 12.5, + }, adminHeaders ) @@ -608,9 +612,32 @@ medusaIntegrationTestRunner({ (m) => m.shipping_option_id == outboundShippingOption.id ) + expect(outboundShippingMethod.subtotal).toBe(12.5) + expect(outboundShippingMethod.is_custom_amount).toBe(true) + + // Reset shipping custom price + const { + data: { + order_preview: { shipping_methods: outboundShippingMethods2 }, + }, + } = await api.post( + `/admin/claims/${claimId}/outbound/shipping-method/${outboundShippingMethod.actions[0].id}`, + { + custom_amount: null, + }, + adminHeaders + ) + + const outboundShippingMethodReset = outboundShippingMethods2.find( + (m) => m.shipping_option_id == outboundShippingOption.id + ) + + expect(outboundShippingMethodReset.subtotal).toBe(20) + expect(outboundShippingMethodReset.is_custom_amount).toBe(false) + // Delete & recreate again to ensure it works for both delete and create await api.delete( - `/admin/claims/${claimId}/outbound/shipping-method/${outboundShippingMethod.actions[0].id}`, + `/admin/claims/${claimId}/outbound/shipping-method/${outboundShippingMethodReset.actions[0].id}`, adminHeaders ) diff --git a/integration-tests/http/__tests__/returns/returns.spec.ts b/integration-tests/http/__tests__/returns/returns.spec.ts index 3339570227..f7352b7f3c 100644 --- a/integration-tests/http/__tests__/returns/returns.spec.ts +++ b/integration-tests/http/__tests__/returns/returns.spec.ts @@ -665,7 +665,7 @@ medusaIntegrationTestRunner({ result = await api.post( `/admin/returns/${returnId}/shipping-method/${updateShippingActionId}`, { - custom_price: 1002, + custom_amount: 1002, internal_note: "cx agent note", }, adminHeaders diff --git a/integration-tests/modules/__tests__/order/order.spec.ts b/integration-tests/modules/__tests__/order/order.spec.ts index 33950f648d..0338f20270 100644 --- a/integration-tests/modules/__tests__/order/order.spec.ts +++ b/integration-tests/modules/__tests__/order/order.spec.ts @@ -203,6 +203,7 @@ medusaIntegrationTestRunner({ value: "50", precision: 20, }, + is_custom_price: false, metadata: null, created_at: expect.any(String), updated_at: expect.any(String), diff --git a/integration-tests/modules/__tests__/order/workflows/return/create-return-shipping.spec.ts b/integration-tests/modules/__tests__/order/workflows/return/create-return-shipping.spec.ts index a1ef37accf..7c7c78dd16 100644 --- a/integration-tests/modules/__tests__/order/workflows/return/create-return-shipping.spec.ts +++ b/integration-tests/modules/__tests__/order/workflows/return/create-return-shipping.spec.ts @@ -95,7 +95,7 @@ medusaIntegrationTestRunner({ input: { return_id: returnOrder.id, shipping_option_id: shippingOptionId, - custom_price: 20, + custom_amount: 20, }, }) diff --git a/packages/admin/dashboard/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx b/packages/admin/dashboard/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx index 9e39ca656d..5efb6a0700 100644 --- a/packages/admin/dashboard/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx +++ b/packages/admin/dashboard/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx @@ -845,7 +845,7 @@ export const ClaimCreateForm = ({ updateInboundShipping( { actionId, - custom_price: customPrice, + custom_amount: customPrice, }, { onError: (error) => { @@ -916,7 +916,7 @@ export const ClaimCreateForm = ({ updateOutboundShipping( { actionId, - custom_price: customPrice, + custom_amount: customPrice, }, { onError: (error) => { diff --git a/packages/admin/dashboard/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx b/packages/admin/dashboard/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx index f03d67c480..7045ff2167 100644 --- a/packages/admin/dashboard/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx +++ b/packages/admin/dashboard/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx @@ -364,7 +364,7 @@ export const ExchangeCreateForm = ({ updateInboundShipping( { actionId, - custom_price: customPrice, + custom_amount: customPrice, }, { onError: (error) => { @@ -435,7 +435,7 @@ export const ExchangeCreateForm = ({ updateOutboundShipping( { actionId, - custom_price: customPrice, + custom_amount: customPrice, }, { onError: (error) => { diff --git a/packages/admin/dashboard/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx b/packages/admin/dashboard/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx index 732eec88af..be2541c963 100644 --- a/packages/admin/dashboard/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx +++ b/packages/admin/dashboard/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx @@ -646,7 +646,7 @@ export const ReturnCreateForm = ({ if (actionId) { updateReturnShipping({ actionId, - custom_price: + custom_amount: typeof customShippingAmount === "string" ? null : customShippingAmount, diff --git a/packages/core/core-flows/src/order/utils/prepare-shipping-method.ts b/packages/core/core-flows/src/order/utils/prepare-shipping-method.ts new file mode 100644 index 0000000000..a30b8cbe0f --- /dev/null +++ b/packages/core/core-flows/src/order/utils/prepare-shipping-method.ts @@ -0,0 +1,73 @@ +import { OrderChangeActionDTO } from "@medusajs/types" +import { isDefined } from "@medusajs/utils" + +export function prepareShippingMethod(relatedEntityField?: string) { + return function (data) { + const option = data.shippingOptions[0] + const orderChange = data.orderChange + + const isCustomPrice = isDefined(data.customPrice) + const obj = { + shipping_option_id: option.id, + amount: isCustomPrice + ? data.customPrice + : option.calculated_price.calculated_amount, + is_custom_amount: isCustomPrice, + is_tax_inclusive: + !!option.calculated_price.is_calculated_price_tax_inclusive, + data: option.data ?? {}, + name: option.name, + version: orderChange.version, + order_id: data.relatedEntity.order_id, + } as any + + if (relatedEntityField) { + obj.return_id = data.input.return_id + obj[relatedEntityField] = data.relatedEntity.id + + if (relatedEntityField === "return_id") { + obj.claim_id = data.relatedEntity.claim_id + obj.exchange_id = data.relatedEntity.exchange_id + } + } + + return obj + } +} + +export function prepareShippingMethodUpdate({ + input, + orderChange, + shippingOptions, +}) { + const originalAction = (orderChange.actions ?? []).find( + (a) => a.id === input.action_id + ) as OrderChangeActionDTO + + const data = input.data + + const option = shippingOptions?.[0] + + const isCustomPrice = !isDefined(shippingOptions) + const price = isCustomPrice + ? data.custom_amount + : option.calculated_price.calculated_amount + + const action = { + id: originalAction.id, + amount: price, + internal_note: data.internal_note, + } + + const shippingMethod = { + id: originalAction.reference_id, + amount: price, + is_custom_amount: isCustomPrice, + metadata: data.metadata, + } + + return { + action, + shippingMethod, + } +} diff --git a/packages/core/core-flows/src/order/workflows/claim/create-claim-shipping-method.ts b/packages/core/core-flows/src/order/workflows/claim/create-claim-shipping-method.ts index 2988bdfd3b..8a95d85afe 100644 --- a/packages/core/core-flows/src/order/workflows/claim/create-claim-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/claim/create-claim-shipping-method.ts @@ -19,6 +19,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethod } from "../../utils/prepare-shipping-method" import { createOrderChangeActionsWorkflow } from "../create-order-change-actions" import { updateOrderTaxLinesWorkflow } from "../update-tax-lines" @@ -53,7 +54,7 @@ export const createClaimShippingMethodWorkflow = createWorkflow( return_id?: string claim_id?: string shipping_option_id: string - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null }): WorkflowResponse { const orderClaim: OrderClaimDTO = useRemoteQueryStep({ entry_point: "order_claim", @@ -65,7 +66,7 @@ export const createClaimShippingMethodWorkflow = createWorkflow( const order: OrderDTO = useRemoteQueryStep({ entry_point: "orders", - fields: ["id", "status", "currency_code", "canceled_at"], + fields: ["id", "status", "region_id", "currency_code", "canceled_at"], variables: { id: orderClaim.order_id }, list: false, throw_if_key_not_found: true, @@ -104,29 +105,13 @@ export const createClaimShippingMethodWorkflow = createWorkflow( const shippingMethodInput = transform( { - orderClaim, + relatedEntity: orderClaim, shippingOptions, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, - (data) => { - const option = data.shippingOptions[0] - const orderChange = data.orderChange - - return { - shipping_option_id: option.id, - amount: data.customPrice ?? option.calculated_price.calculated_amount, - is_tax_inclusive: - !!option.calculated_price.is_calculated_price_tax_inclusive, - data: option.data ?? {}, - name: option.name, - version: orderChange.version, - order_id: data.orderClaim.order_id, - return_id: input.return_id, - claim_id: data.orderClaim.id, - } - } + prepareShippingMethod("claim_id") ) const createdMethods = createOrderShippingMethods({ @@ -155,7 +140,7 @@ export const createClaimShippingMethodWorkflow = createWorkflow( orderClaim, shippingOptions, createdMethods, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, @@ -170,6 +155,7 @@ export const createClaimShippingMethodWorkflow = createWorkflow( }) => { const shippingOption = shippingOptions[0] const createdMethod = createdMethods[0] + const methodPrice = customPrice ?? shippingOption.calculated_price.calculated_amount diff --git a/packages/core/core-flows/src/order/workflows/claim/update-claim-shipping-method.ts b/packages/core/core-flows/src/order/workflows/claim/update-claim-shipping-method.ts index 0d8e08b78a..2a3bc294a1 100644 --- a/packages/core/core-flows/src/order/workflows/claim/update-claim-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/claim/update-claim-shipping-method.ts @@ -13,6 +13,7 @@ import { createWorkflow, parallelize, transform, + when, } from "@medusajs/workflows-sdk" import { useRemoteQueryStep } from "../../../common" import { @@ -24,6 +25,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethodUpdate } from "../../utils/prepare-shipping-method" /** * This step validates that a claim's shipping method can be updated. @@ -70,7 +72,13 @@ export const updateClaimShippingMethodWorkflow = createWorkflow( ): WorkflowResponse { const orderClaim: OrderClaimDTO = useRemoteQueryStep({ entry_point: "order_claim", - fields: ["id", "status", "order_id", "canceled_at"], + fields: [ + "id", + "status", + "order_id", + "canceled_at", + "order.currency_code", + ], variables: { id: input.claim_id }, list: false, throw_if_key_not_found: true, @@ -89,34 +97,54 @@ export const updateClaimShippingMethodWorkflow = createWorkflow( list: false, }).config({ name: "order-change-query" }) + const shippingOptions = when({ input }, ({ input }) => { + return input.data?.custom_amount === null + }).then(() => { + const action = transform( + { orderChange, input, orderClaim }, + ({ orderChange, input, orderClaim }) => { + const originalAction = (orderChange.actions ?? []).find( + (a) => a.id === input.action_id + ) as OrderChangeActionDTO + + return { + shipping_method_id: originalAction.reference_id, + currency_code: (orderClaim as any).order.currency_code, + } + } + ) + + const shippingMethod = useRemoteQueryStep({ + entry_point: "order_shipping_method", + fields: ["id", "shipping_option_id"], + variables: { + id: action.shipping_method_id, + }, + list: false, + }).config({ name: "fetch-shipping-method" }) + + return useRemoteQueryStep({ + entry_point: "shipping_option", + fields: [ + "id", + "name", + "calculated_price.calculated_amount", + "calculated_price.is_calculated_price_tax_inclusive", + ], + variables: { + id: shippingMethod.shipping_option_id, + calculated_price: { + context: { currency_code: action.currency_code }, + }, + }, + }).config({ name: "fetch-shipping-option" }) + }) + updateClaimShippingMethodValidationStep({ orderClaim, orderChange, input }) const updateData = transform( - { orderChange, input }, - ({ input, orderChange }) => { - const originalAction = (orderChange.actions ?? []).find( - (a) => a.id === input.action_id - ) as OrderChangeActionDTO - - const data = input.data - - const action = { - id: originalAction.id, - amount: data.custom_price, - internal_note: data.internal_note, - } - - const shippingMethod = { - id: originalAction.reference_id, - amount: data.custom_price, - metadata: data.metadata, - } - - return { - action, - shippingMethod, - } - } + { orderChange, input, shippingOptions }, + prepareShippingMethodUpdate ) parallelize( diff --git a/packages/core/core-flows/src/order/workflows/exchange/create-exchange-shipping-method.ts b/packages/core/core-flows/src/order/workflows/exchange/create-exchange-shipping-method.ts index 248bb1ae5a..f20f548441 100644 --- a/packages/core/core-flows/src/order/workflows/exchange/create-exchange-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/exchange/create-exchange-shipping-method.ts @@ -19,6 +19,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethod } from "../../utils/prepare-shipping-method" import { createOrderChangeActionsWorkflow } from "../create-order-change-actions" import { updateOrderTaxLinesWorkflow } from "../update-tax-lines" @@ -53,7 +54,7 @@ export const createExchangeShippingMethodWorkflow = createWorkflow( return_id?: string exchange_id?: string shipping_option_id: string - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null }): WorkflowResponse { const orderExchange: OrderExchangeDTO = useRemoteQueryStep({ entry_point: "order_exchange", @@ -108,29 +109,13 @@ export const createExchangeShippingMethodWorkflow = createWorkflow( const shippingMethodInput = transform( { - orderExchange, + relatedEntity: orderExchange, shippingOptions, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, - (data) => { - const option = data.shippingOptions[0] - const orderChange = data.orderChange - - return { - shipping_option_id: option.id, - amount: data.customPrice ?? option.calculated_price.calculated_amount, - is_tax_inclusive: - !!option.calculated_price.is_calculated_price_tax_inclusive, - data: option.data ?? {}, - name: option.name, - version: orderChange.version, - order_id: data.orderExchange.order_id, - return_id: input.return_id, - exchange_id: data.orderExchange.id, - } - } + prepareShippingMethod("exchange_id") ) const createdMethods = createOrderShippingMethods({ @@ -159,7 +144,7 @@ export const createExchangeShippingMethodWorkflow = createWorkflow( orderExchange, shippingOptions, createdMethods, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, diff --git a/packages/core/core-flows/src/order/workflows/exchange/update-exchange-shipping-method.ts b/packages/core/core-flows/src/order/workflows/exchange/update-exchange-shipping-method.ts index 551ee3fb18..5d86f5b9ff 100644 --- a/packages/core/core-flows/src/order/workflows/exchange/update-exchange-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/exchange/update-exchange-shipping-method.ts @@ -13,6 +13,7 @@ import { createWorkflow, parallelize, transform, + when, } from "@medusajs/workflows-sdk" import { useRemoteQueryStep } from "../../../common" import { @@ -24,6 +25,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethodUpdate } from "../../utils/prepare-shipping-method" /** * This step validates that an exchange's shipping method can be updated. @@ -70,7 +72,13 @@ export const updateExchangeShippingMethodWorkflow = createWorkflow( ): WorkflowResponse { const orderExchange: OrderExchangeDTO = useRemoteQueryStep({ entry_point: "order_exchange", - fields: ["id", "status", "order_id", "canceled_at"], + fields: [ + "id", + "status", + "order_id", + "canceled_at", + "order.currency_code", + ], variables: { id: input.exchange_id }, list: false, throw_if_key_not_found: true, @@ -89,6 +97,49 @@ export const updateExchangeShippingMethodWorkflow = createWorkflow( list: false, }).config({ name: "order-change-query" }) + const shippingOptions = when({ input }, ({ input }) => { + return input.data?.custom_amount === null + }).then(() => { + const action = transform( + { orderChange, input, orderExchange }, + ({ orderChange, input, orderExchange }) => { + const originalAction = (orderChange.actions ?? []).find( + (a) => a.id === input.action_id + ) as OrderChangeActionDTO + + return { + shipping_method_id: originalAction.reference_id, + currency_code: (orderExchange as any).order.currency_code, + } + } + ) + + const shippingMethod = useRemoteQueryStep({ + entry_point: "order_shipping_method", + fields: ["id", "shipping_option_id"], + variables: { + id: action.shipping_method_id, + }, + list: false, + }).config({ name: "fetch-shipping-method" }) + + return useRemoteQueryStep({ + entry_point: "shipping_option", + fields: [ + "id", + "name", + "calculated_price.calculated_amount", + "calculated_price.is_calculated_price_tax_inclusive", + ], + variables: { + id: shippingMethod.shipping_option_id, + calculated_price: { + context: { currency_code: action.currency_code }, + }, + }, + }).config({ name: "fetch-shipping-option" }) + }) + updateExchangeShippingMethodValidationStep({ orderExchange, orderChange, @@ -96,31 +147,8 @@ export const updateExchangeShippingMethodWorkflow = createWorkflow( }) const updateData = transform( - { orderChange, input }, - ({ input, orderChange }) => { - const originalAction = (orderChange.actions ?? []).find( - (a) => a.id === input.action_id - ) as OrderChangeActionDTO - - const data = input.data - - const action = { - id: originalAction.id, - amount: data.custom_price, - internal_note: data.internal_note, - } - - const shippingMethod = { - id: originalAction.reference_id, - amount: data.custom_price, - metadata: data.metadata, - } - - return { - action, - shippingMethod, - } - } + { orderChange, input, shippingOptions }, + prepareShippingMethodUpdate ) parallelize( diff --git a/packages/core/core-flows/src/order/workflows/order-edit/create-order-edit-shipping-method.ts b/packages/core/core-flows/src/order/workflows/order-edit/create-order-edit-shipping-method.ts index e397ad928f..610259d35f 100644 --- a/packages/core/core-flows/src/order/workflows/order-edit/create-order-edit-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/order-edit/create-order-edit-shipping-method.ts @@ -18,6 +18,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethod } from "../../utils/prepare-shipping-method" import { createOrderChangeActionsWorkflow } from "../create-order-change-actions" import { updateOrderTaxLinesWorkflow } from "../update-tax-lines" @@ -48,7 +49,7 @@ export const createOrderEditShippingMethodWorkflow = createWorkflow( function (input: { order_id: string shipping_option_id: string - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null }): WorkflowResponse { const order: OrderDTO = useRemoteQueryStep({ entry_point: "orders", @@ -89,25 +90,11 @@ export const createOrderEditShippingMethodWorkflow = createWorkflow( const shippingMethodInput = transform( { shippingOptions, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, - (data) => { - const option = data.shippingOptions[0] - const orderChange = data.orderChange - - return { - shipping_option_id: option.id, - amount: data.customPrice ?? option.calculated_price.calculated_amount, - is_tax_inclusive: - !!option.calculated_price.is_calculated_price_tax_inclusive, - data: option.data ?? {}, - name: option.name, - version: orderChange.version, - order_id: data.input.order_id, - } - } + prepareShippingMethod() ) const createdMethods = createOrderShippingMethods({ @@ -130,7 +117,7 @@ export const createOrderEditShippingMethodWorkflow = createWorkflow( order, shippingOptions, createdMethods, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, diff --git a/packages/core/core-flows/src/order/workflows/order-edit/update-order-edit-shipping-method.ts b/packages/core/core-flows/src/order/workflows/order-edit/update-order-edit-shipping-method.ts index aee28a81ba..344ac9d4d9 100644 --- a/packages/core/core-flows/src/order/workflows/order-edit/update-order-edit-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/order-edit/update-order-edit-shipping-method.ts @@ -1,6 +1,7 @@ import { OrderChangeActionDTO, OrderChangeDTO, + OrderDTO, OrderPreviewDTO, OrderWorkflow, } from "@medusajs/types" @@ -12,6 +13,7 @@ import { createWorkflow, parallelize, transform, + when, } from "@medusajs/workflows-sdk" import { useRemoteQueryStep } from "../../../common" import { @@ -20,6 +22,7 @@ import { } from "../../steps" import { previewOrderChangeStep } from "../../steps/preview-order-change" import { throwIfOrderChangeIsNotActive } from "../../utils/order-validation" +import { prepareShippingMethodUpdate } from "../../utils/prepare-shipping-method" /** * This step validates that an order edit's shipping method can be updated. @@ -61,6 +64,14 @@ export const updateOrderEditShippingMethodWorkflow = createWorkflow( function ( input: WorkflowData ): WorkflowResponse { + const order: OrderDTO = useRemoteQueryStep({ + entry_point: "order_claim", + fields: ["id", "currency_code"], + variables: { id: input.order_id }, + list: false, + throw_if_key_not_found: true, + }) + const orderChange: OrderChangeDTO = useRemoteQueryStep({ entry_point: "order_change", fields: ["id", "status", "version", "actions.*"], @@ -73,37 +84,57 @@ export const updateOrderEditShippingMethodWorkflow = createWorkflow( list: false, }).config({ name: "order-change-query" }) + const shippingOptions = when({ input }, ({ input }) => { + return input.data?.custom_amount === null + }).then(() => { + const action = transform( + { orderChange, input, order }, + ({ orderChange, input, order }) => { + const originalAction = (orderChange.actions ?? []).find( + (a) => a.id === input.action_id + ) as OrderChangeActionDTO + + return { + shipping_method_id: originalAction.reference_id, + currency_code: order.currency_code, + } + } + ) + + const shippingMethod = useRemoteQueryStep({ + entry_point: "order_shipping_method", + fields: ["id", "shipping_option_id"], + variables: { + id: action.shipping_method_id, + }, + list: false, + }).config({ name: "fetch-shipping-method" }) + + return useRemoteQueryStep({ + entry_point: "shipping_option", + fields: [ + "id", + "name", + "calculated_price.calculated_amount", + "calculated_price.is_calculated_price_tax_inclusive", + ], + variables: { + id: shippingMethod.shipping_option_id, + calculated_price: { + context: { currency_code: action.currency_code }, + }, + }, + }).config({ name: "fetch-shipping-option" }) + }) + updateOrderEditShippingMethodValidationStep({ orderChange, input, }) const updateData = transform( - { orderChange, input }, - ({ input, orderChange }) => { - const originalAction = (orderChange.actions ?? []).find( - (a) => a.id === input.action_id - ) as OrderChangeActionDTO - - const data = input.data - - const action = { - id: originalAction.id, - amount: data.custom_price, - internal_note: data.internal_note, - } - - const shippingMethod = { - id: originalAction.reference_id, - amount: data.custom_price, - metadata: data.metadata, - } - - return { - action, - shippingMethod, - } - } + { orderChange, input, shippingOptions }, + prepareShippingMethodUpdate ) parallelize( diff --git a/packages/core/core-flows/src/order/workflows/return/create-return-shipping-method.ts b/packages/core/core-flows/src/order/workflows/return/create-return-shipping-method.ts index e6369679d8..c2505b6ca1 100644 --- a/packages/core/core-flows/src/order/workflows/return/create-return-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/return/create-return-shipping-method.ts @@ -19,6 +19,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethod } from "../../utils/prepare-shipping-method" import { createOrderChangeActionsWorkflow } from "../create-order-change-actions" import { updateOrderTaxLinesWorkflow } from "../update-tax-lines" @@ -54,11 +55,18 @@ export const createReturnShippingMethodWorkflow = createWorkflow( claim_id?: string exchange_id?: string shipping_option_id: string - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null }): WorkflowResponse { const orderReturn: ReturnDTO = useRemoteQueryStep({ entry_point: "return", - fields: ["id", "status", "order_id", "canceled_at"], + fields: [ + "id", + "status", + "order_id", + "claim_id", + "exchange_id", + "canceled_at", + ], variables: { id: input.return_id }, list: false, throw_if_key_not_found: true, @@ -109,30 +117,13 @@ export const createReturnShippingMethodWorkflow = createWorkflow( const shippingMethodInput = transform( { - orderReturn, + relatedEntity: orderReturn, shippingOptions, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, - (data) => { - const option = data.shippingOptions[0] - const orderChange = data.orderChange - - return { - shipping_option_id: option.id, - amount: data.customPrice ?? option.calculated_price.calculated_amount, - is_tax_inclusive: - !!option.calculated_price.is_calculated_price_tax_inclusive, - data: option.data ?? {}, - name: option.name, - version: orderChange.version, - order_id: data.orderReturn.order_id, - return_id: data.orderReturn.id, - claim_id: data.input.claim_id, - exchange_id: data.input.exchange_id, - } - } + prepareShippingMethod("return_id") ) const createdMethods = createOrderShippingMethods({ @@ -157,7 +148,7 @@ export const createReturnShippingMethodWorkflow = createWorkflow( orderReturn, shippingOptions, createdMethods, - customPrice: input.custom_price, + customPrice: input.custom_amount, orderChange, input, }, diff --git a/packages/core/core-flows/src/order/workflows/return/update-return-shipping-method.ts b/packages/core/core-flows/src/order/workflows/return/update-return-shipping-method.ts index d0e6e99574..39c5874131 100644 --- a/packages/core/core-flows/src/order/workflows/return/update-return-shipping-method.ts +++ b/packages/core/core-flows/src/order/workflows/return/update-return-shipping-method.ts @@ -13,6 +13,7 @@ import { createWorkflow, parallelize, transform, + when, } from "@medusajs/workflows-sdk" import { useRemoteQueryStep } from "../../../common" import { @@ -24,6 +25,7 @@ import { throwIfIsCancelled, throwIfOrderChangeIsNotActive, } from "../../utils/order-validation" +import { prepareShippingMethodUpdate } from "../../utils/prepare-shipping-method" /** * This step validates that a return's shipping method can be updated. @@ -70,7 +72,13 @@ export const updateReturnShippingMethodWorkflow = createWorkflow( ): WorkflowResponse { const orderReturn: ReturnDTO = useRemoteQueryStep({ entry_point: "return", - fields: ["id", "status", "order_id", "canceled_at"], + fields: [ + "id", + "status", + "order_id", + "canceled_at", + "order.currency_code", + ], variables: { id: input.return_id }, list: false, throw_if_key_not_found: true, @@ -89,6 +97,49 @@ export const updateReturnShippingMethodWorkflow = createWorkflow( list: false, }).config({ name: "order-change-query" }) + const shippingOptions = when({ input }, ({ input }) => { + return input.data?.custom_amount === null + }).then(() => { + const action = transform( + { orderChange, input, orderReturn }, + ({ orderChange, input, orderReturn }) => { + const originalAction = (orderChange.actions ?? []).find( + (a) => a.id === input.action_id + ) as OrderChangeActionDTO + + return { + shipping_method_id: originalAction.reference_id, + currency_code: (orderReturn as any).order.currency_code, + } + } + ) + + const shippingMethod = useRemoteQueryStep({ + entry_point: "order_shipping_method", + fields: ["id", "shipping_option_id"], + variables: { + id: action.shipping_method_id, + }, + list: false, + }).config({ name: "fetch-shipping-method" }) + + return useRemoteQueryStep({ + entry_point: "shipping_option", + fields: [ + "id", + "name", + "calculated_price.calculated_amount", + "calculated_price.is_calculated_price_tax_inclusive", + ], + variables: { + id: shippingMethod.shipping_option_id, + calculated_price: { + context: { currency_code: action.currency_code }, + }, + }, + }).config({ name: "fetch-shipping-option" }) + }) + updateReturnShippingMethodValidationStep({ orderReturn, orderChange, @@ -96,31 +147,8 @@ export const updateReturnShippingMethodWorkflow = createWorkflow( }) const updateData = transform( - { orderChange, input }, - ({ input, orderChange }) => { - const originalAction = (orderChange.actions ?? []).find( - (a) => a.id === input.action_id - ) as OrderChangeActionDTO - - const data = input.data - - const action = { - id: originalAction.id, - amount: data.custom_price, - internal_note: data.internal_note, - } - - const shippingMethod = { - id: originalAction.reference_id, - amount: data.custom_price, - metadata: data.metadata, - } - - return { - action, - shippingMethod, - } - } + { orderChange, input, shippingOptions }, + prepareShippingMethodUpdate ) parallelize( diff --git a/packages/core/types/src/http/claim/admin/payloads.ts b/packages/core/types/src/http/claim/admin/payloads.ts index e2cf253551..b5e8f8cdad 100644 --- a/packages/core/types/src/http/claim/admin/payloads.ts +++ b/packages/core/types/src/http/claim/admin/payloads.ts @@ -24,14 +24,14 @@ interface AdminClaimUpdateItem { interface AdminClaimAddShippingMethod { shipping_option_id: string - custom_price?: number + custom_amount?: number description?: string internal_note?: string metadata?: Record | null } interface AdminClaimUpdateShippingMethod { - custom_price?: number | null + custom_amount?: number | null internal_note?: string metadata?: Record | null } diff --git a/packages/core/types/src/http/exchange/admin/payloads.ts b/packages/core/types/src/http/exchange/admin/payloads.ts index 8db33cc1eb..d1fb326be6 100644 --- a/packages/core/types/src/http/exchange/admin/payloads.ts +++ b/packages/core/types/src/http/exchange/admin/payloads.ts @@ -24,14 +24,14 @@ interface AdminExchangeUpdateItem { interface AdminExchangeAddShippingMethod { shipping_option_id: string - custom_price?: number + custom_amount?: number description?: string internal_note?: string metadata?: Record | null } interface AdminExchangeUpdateShippingMethod { - custom_price?: number | null + custom_amount?: number | null internal_note?: string metadata?: Record | null } diff --git a/packages/core/types/src/http/return/admin/payloads.ts b/packages/core/types/src/http/return/admin/payloads.ts index 6a5ca97d83..3c50bd72b5 100644 --- a/packages/core/types/src/http/return/admin/payloads.ts +++ b/packages/core/types/src/http/return/admin/payloads.ts @@ -27,14 +27,14 @@ export interface AdminUpdateReturnItems { export interface AdminAddReturnShipping { shipping_option_id: string - custom_price?: number + custom_amount?: number description?: string internal_note?: string metadata?: Record } export interface AdminUpdateReturnShipping { - custom_price?: number + custom_amount?: number internal_note?: string metadata?: Record } @@ -79,4 +79,4 @@ export interface AdminUpdateDismissItems { internal_note?: string reason_id?: string metadata?: Record -} \ No newline at end of file +} diff --git a/packages/core/types/src/workflow/order/shipping-method.ts b/packages/core/types/src/workflow/order/shipping-method.ts index bfef3b58ea..dc0c75d0f0 100644 --- a/packages/core/types/src/workflow/order/shipping-method.ts +++ b/packages/core/types/src/workflow/order/shipping-method.ts @@ -4,7 +4,7 @@ export interface UpdateReturnShippingMethodWorkflowInput { return_id: string action_id: string data: { - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null internal_note?: string | null metadata?: Record | null } @@ -19,7 +19,7 @@ export interface UpdateClaimShippingMethodWorkflowInput { claim_id: string action_id: string data: { - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null internal_note?: string | null metadata?: Record | null } @@ -34,7 +34,7 @@ export interface UpdateExchangeShippingMethodWorkflowInput { exchange_id: string action_id: string data: { - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null internal_note?: string | null metadata?: Record | null } @@ -44,7 +44,7 @@ export interface UpdateOrderEditShippingMethodWorkflowInput { order_id: string action_id: string data: { - custom_price?: BigNumberInput + custom_amount?: BigNumberInput | null internal_note?: string | null metadata?: Record | null } diff --git a/packages/medusa/src/api/admin/claims/validators.ts b/packages/medusa/src/api/admin/claims/validators.ts index 391f093c1d..e3c836f325 100644 --- a/packages/medusa/src/api/admin/claims/validators.ts +++ b/packages/medusa/src/api/admin/claims/validators.ts @@ -91,7 +91,7 @@ export type AdminPostCancelClaimReqSchemaType = z.infer< export const AdminPostClaimsShippingReqSchema = z.object({ shipping_option_id: z.string(), - custom_price: z.number().optional(), + custom_amount: z.number().optional(), description: z.string().optional(), internal_note: z.string().optional(), metadata: z.record(z.unknown()).optional(), @@ -102,7 +102,7 @@ export type AdminPostClaimsShippingReqSchemaType = z.infer< > export const AdminPostClaimsShippingActionReqSchema = z.object({ - custom_price: z.number().optional(), + custom_amount: z.number().nullish().optional(), internal_note: z.string().nullish().optional(), metadata: z.record(z.unknown()).nullish().optional(), }) diff --git a/packages/medusa/src/api/admin/exchanges/validators.ts b/packages/medusa/src/api/admin/exchanges/validators.ts index 62965876fe..c7e41ecd41 100644 --- a/packages/medusa/src/api/admin/exchanges/validators.ts +++ b/packages/medusa/src/api/admin/exchanges/validators.ts @@ -89,7 +89,7 @@ export type AdminPostExchangesRequestItemsReturnActionReqSchemaType = z.infer< export const AdminPostExchangesShippingReqSchema = z.object({ shipping_option_id: z.string(), - custom_price: z.number().optional(), + custom_amount: z.number().optional(), description: z.string().optional(), internal_note: z.string().optional(), metadata: z.record(z.unknown()).optional(), @@ -100,7 +100,7 @@ export type AdminPostExchangesShippingReqSchemaType = z.infer< > export const AdminPostExchangesShippingActionReqSchema = z.object({ - custom_price: z.number().optional(), + custom_amount: z.number().nullish().optional(), internal_note: z.string().nullish().optional(), metadata: z.record(z.unknown()).nullish().optional(), }) diff --git a/packages/medusa/src/api/admin/order-edits/validators.ts b/packages/medusa/src/api/admin/order-edits/validators.ts index be2c623efa..bcd7f80a06 100644 --- a/packages/medusa/src/api/admin/order-edits/validators.ts +++ b/packages/medusa/src/api/admin/order-edits/validators.ts @@ -12,7 +12,7 @@ export type AdminPostOrderEditsReqSchemaType = z.infer< export const AdminPostOrderEditsShippingReqSchema = z.object({ shipping_option_id: z.string(), - custom_price: z.number().optional(), + custom_amount: z.number().optional(), description: z.string().optional(), internal_note: z.string().optional(), metadata: z.record(z.unknown()).optional(), @@ -23,7 +23,7 @@ export type AdminPostOrderEditsShippingReqSchemaType = z.infer< > export const AdminPostOrderEditsShippingActionReqSchema = z.object({ - custom_price: z.number().optional(), + custom_amount: z.number().nullish().optional(), internal_note: z.string().nullish().optional(), metadata: z.record(z.unknown()).nullish().optional(), }) diff --git a/packages/medusa/src/api/admin/returns/validators.ts b/packages/medusa/src/api/admin/returns/validators.ts index b3304878d5..5539ddb200 100644 --- a/packages/medusa/src/api/admin/returns/validators.ts +++ b/packages/medusa/src/api/admin/returns/validators.ts @@ -100,7 +100,7 @@ export type AdminPostCancelReturnReqSchemaType = z.infer< export const AdminPostReturnsShippingReqSchema = z.object({ shipping_option_id: z.string(), - custom_price: z.number().optional(), + custom_amount: z.number().optional(), description: z.string().optional(), internal_note: z.string().optional(), metadata: z.record(z.unknown()).optional(), @@ -111,7 +111,7 @@ export type AdminPostReturnsShippingReqSchemaType = z.infer< > export const AdminPostReturnsShippingActionReqSchema = z.object({ - custom_price: z.number().optional(), + custom_amount: z.number().nullish().optional(), internal_note: z.string().nullish().optional(), metadata: z.record(z.unknown()).nullish().optional(), }) diff --git a/packages/modules/order/src/migrations/.snapshot-medusa-order.json b/packages/modules/order/src/migrations/.snapshot-medusa-order.json index a04808ca90..c9eec4b51c 100644 --- a/packages/modules/order/src/migrations/.snapshot-medusa-order.json +++ b/packages/modules/order/src/migrations/.snapshot-medusa-order.json @@ -172,597 +172,6 @@ "checks": [], "foreignKeys": {} }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "title": { - "name": "title", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "subtitle": { - "name": "subtitle", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "thumbnail": { - "name": "thumbnail", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "variant_id": { - "name": "variant_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_id": { - "name": "product_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_title": { - "name": "product_title", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_description": { - "name": "product_description", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_subtitle": { - "name": "product_subtitle", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_type": { - "name": "product_type", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_collection": { - "name": "product_collection", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "product_handle": { - "name": "product_handle", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "variant_sku": { - "name": "variant_sku", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "variant_barcode": { - "name": "variant_barcode", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "variant_title": { - "name": "variant_title", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "variant_option_values": { - "name": "variant_option_values", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "json" - }, - "requires_shipping": { - "name": "requires_shipping", - "type": "boolean", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "boolean" - }, - "is_discountable": { - "name": "is_discountable", - "type": "boolean", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "boolean" - }, - "is_tax_inclusive": { - "name": "is_tax_inclusive", - "type": "boolean", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "boolean" - }, - "compare_at_unit_price": { - "name": "compare_at_unit_price", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "decimal" - }, - "raw_compare_at_unit_price": { - "name": "raw_compare_at_unit_price", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "json" - }, - "unit_price": { - "name": "unit_price", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "decimal" - }, - "raw_unit_price": { - "name": "raw_unit_price", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "metadata": { - "name": "metadata", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "json" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - } - }, - "name": "order_line_item", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_line_item_variant_id", - "columnNames": [ - "variant_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_variant_id\" ON \"order_line_item\" (variant_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_line_item_product_id", - "columnNames": [ - "product_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_product_id\" ON \"order_line_item\" (product_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_line_item_deleted_at", - "columnNames": [ - "deleted_at" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_deleted_at\" ON \"order_line_item\" (deleted_at) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "order_line_item_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": {} - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "description": { - "name": "description", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "promotion_id": { - "name": "promotion_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "code": { - "name": "code", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "amount": { - "name": "amount", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "decimal" - }, - "raw_amount": { - "name": "raw_amount", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - }, - "item_id": { - "name": "item_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - } - }, - "name": "order_line_item_adjustment", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_line_item_adjustment_item_id", - "columnNames": [ - "item_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_adjustment_item_id\" ON \"order_line_item_adjustment\" (item_id)" - }, - { - "keyName": "order_line_item_adjustment_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": { - "order_line_item_adjustment_item_id_foreign": { - "constraintName": "order_line_item_adjustment_item_id_foreign", - "columnNames": [ - "item_id" - ], - "localTableName": "public.order_line_item_adjustment", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_line_item", - "deleteRule": "cascade", - "updateRule": "cascade" - } - } - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "description": { - "name": "description", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "tax_rate_id": { - "name": "tax_rate_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "code": { - "name": "code", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "rate": { - "name": "rate", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "decimal" - }, - "raw_rate": { - "name": "raw_rate", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - }, - "item_id": { - "name": "item_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - } - }, - "name": "order_line_item_tax_line", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_line_item_tax_line_item_id", - "columnNames": [ - "item_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_tax_line_item_id\" ON \"order_line_item_tax_line\" (item_id)" - }, - { - "keyName": "order_line_item_tax_line_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": { - "order_line_item_tax_line_item_id_foreign": { - "constraintName": "order_line_item_tax_line_item_id_foreign", - "columnNames": [ - "item_id" - ], - "localTableName": "public.order_line_item_tax_line", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_line_item", - "deleteRule": "cascade", - "updateRule": "cascade" - } - } - }, { "columns": { "id": { @@ -1078,6 +487,313 @@ } } }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "title": { + "name": "title", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "subtitle": { + "name": "subtitle", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "thumbnail": { + "name": "thumbnail", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "variant_id": { + "name": "variant_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_id": { + "name": "product_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_title": { + "name": "product_title", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_description": { + "name": "product_description", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_subtitle": { + "name": "product_subtitle", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_type": { + "name": "product_type", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_collection": { + "name": "product_collection", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "product_handle": { + "name": "product_handle", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "variant_sku": { + "name": "variant_sku", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "variant_barcode": { + "name": "variant_barcode", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "variant_title": { + "name": "variant_title", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "variant_option_values": { + "name": "variant_option_values", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "json" + }, + "requires_shipping": { + "name": "requires_shipping", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "boolean" + }, + "is_discountable": { + "name": "is_discountable", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "boolean" + }, + "is_tax_inclusive": { + "name": "is_tax_inclusive", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "boolean" + }, + "compare_at_unit_price": { + "name": "compare_at_unit_price", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "decimal" + }, + "raw_compare_at_unit_price": { + "name": "raw_compare_at_unit_price", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "json" + }, + "unit_price": { + "name": "unit_price", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "decimal" + }, + "raw_unit_price": { + "name": "raw_unit_price", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "is_custom_price": { + "name": "is_custom_price", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "default": "false", + "mappedType": "boolean" + }, + "metadata": { + "name": "metadata", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "json" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "order_line_item", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_line_item_variant_id", + "columnNames": [ + "variant_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_variant_id\" ON \"order_line_item\" (variant_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_line_item_product_id", + "columnNames": [ + "product_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_product_id\" ON \"order_line_item\" (product_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_line_item_deleted_at", + "columnNames": [ + "deleted_at" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_deleted_at\" ON \"order_line_item\" (deleted_at) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "order_line_item_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {} + }, { "columns": { "id": { @@ -1371,6 +1087,757 @@ } } }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "description": { + "name": "description", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "promotion_id": { + "name": "promotion_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "code": { + "name": "code", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "amount": { + "name": "amount", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "decimal" + }, + "raw_amount": { + "name": "raw_amount", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "item_id": { + "name": "item_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + } + }, + "name": "order_line_item_adjustment", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_line_item_adjustment_item_id", + "columnNames": [ + "item_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_adjustment_item_id\" ON \"order_line_item_adjustment\" (item_id)" + }, + { + "keyName": "order_line_item_adjustment_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_line_item_adjustment_item_id_foreign": { + "constraintName": "order_line_item_adjustment_item_id_foreign", + "columnNames": [ + "item_id" + ], + "localTableName": "public.order_line_item_adjustment", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_line_item", + "deleteRule": "cascade", + "updateRule": "cascade" + } + } + }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "description": { + "name": "description", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "tax_rate_id": { + "name": "tax_rate_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "code": { + "name": "code", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "rate": { + "name": "rate", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "decimal" + }, + "raw_rate": { + "name": "raw_rate", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "item_id": { + "name": "item_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + } + }, + "name": "order_line_item_tax_line", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_line_item_tax_line_item_id", + "columnNames": [ + "item_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_line_item_tax_line_item_id\" ON \"order_line_item_tax_line\" (item_id)" + }, + { + "keyName": "order_line_item_tax_line_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_line_item_tax_line_item_id_foreign": { + "constraintName": "order_line_item_tax_line_item_id_foreign", + "columnNames": [ + "item_id" + ], + "localTableName": "public.order_line_item_tax_line", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_line_item", + "deleteRule": "cascade", + "updateRule": "cascade" + } + } + }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "name": { + "name": "name", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "description": { + "name": "description", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "json" + }, + "amount": { + "name": "amount", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "decimal" + }, + "raw_amount": { + "name": "raw_amount", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "is_tax_inclusive": { + "name": "is_tax_inclusive", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "default": "false", + "mappedType": "boolean" + }, + "is_custom_amount": { + "name": "is_custom_amount", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "default": "false", + "mappedType": "boolean" + }, + "shipping_option_id": { + "name": "shipping_option_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "data": { + "name": "data", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "json" + }, + "metadata": { + "name": "metadata", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "json" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "order_shipping_method", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_shipping_method_shipping_option_id", + "columnNames": [ + "shipping_option_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_shipping_option_id\" ON \"order_shipping_method\" (shipping_option_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_method_deleted_at", + "columnNames": [ + "deleted_at" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_deleted_at\" ON \"order_shipping_method\" (deleted_at) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "order_shipping_method_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "description": { + "name": "description", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "promotion_id": { + "name": "promotion_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "code": { + "name": "code", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "amount": { + "name": "amount", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "decimal" + }, + "raw_amount": { + "name": "raw_amount", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "shipping_method_id": { + "name": "shipping_method_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + } + }, + "name": "order_shipping_method_adjustment", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_shipping_method_adjustment_shipping_method_id", + "columnNames": [ + "shipping_method_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_adjustment_shipping_method_id\" ON \"order_shipping_method_adjustment\" (shipping_method_id)" + }, + { + "keyName": "order_shipping_method_adjustment_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_shipping_method_adjustment_shipping_method_id_foreign": { + "constraintName": "order_shipping_method_adjustment_shipping_method_id_foreign", + "columnNames": [ + "shipping_method_id" + ], + "localTableName": "public.order_shipping_method_adjustment", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_shipping_method", + "deleteRule": "cascade", + "updateRule": "cascade" + } + } + }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "description": { + "name": "description", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "tax_rate_id": { + "name": "tax_rate_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "code": { + "name": "code", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "rate": { + "name": "rate", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "decimal" + }, + "raw_rate": { + "name": "raw_rate", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "shipping_method_id": { + "name": "shipping_method_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + } + }, + "name": "order_shipping_method_tax_line", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_shipping_method_tax_line_shipping_method_id", + "columnNames": [ + "shipping_method_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_tax_line_shipping_method_id\" ON \"order_shipping_method_tax_line\" (shipping_method_id)" + }, + { + "keyName": "order_shipping_method_tax_line_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_shipping_method_tax_line_shipping_method_id_foreign": { + "constraintName": "order_shipping_method_tax_line_shipping_method_id_foreign", + "columnNames": [ + "shipping_method_id" + ], + "localTableName": "public.order_shipping_method_tax_line", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_shipping_method", + "deleteRule": "cascade", + "updateRule": "cascade" + } + } + }, { "columns": { "id": { @@ -2449,6 +2916,536 @@ } } }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "order_id": { + "name": "order_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "return_id": { + "name": "return_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "exchange_id": { + "name": "exchange_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "claim_id": { + "name": "claim_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "version": { + "name": "version", + "type": "integer", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "default": "1", + "mappedType": "integer" + }, + "amount": { + "name": "amount", + "type": "numeric", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "decimal" + }, + "raw_amount": { + "name": "raw_amount", + "type": "jsonb", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "json" + }, + "currency_code": { + "name": "currency_code", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "reference": { + "name": "reference", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "reference_id": { + "name": "reference_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "order_transaction", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_transaction_order_id", + "columnNames": [ + "order_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_order_id\" ON \"order_transaction\" (order_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_return_id", + "columnNames": [ + "return_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_return_id\" ON \"order_transaction\" (return_id) WHERE return_id IS NOT NULL AND deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_exchange_id", + "columnNames": [ + "exchange_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_exchange_id\" ON \"order_transaction\" (exchange_id) WHERE exchange_id IS NOT NULL AND deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_claim_id", + "columnNames": [ + "claim_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_claim_id\" ON \"order_transaction\" (claim_id) WHERE claim_id IS NOT NULL AND deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_currency_code", + "columnNames": [ + "currency_code" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_currency_code\" ON \"order_transaction\" (currency_code) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_reference_id", + "columnNames": [ + "reference_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_reference_id\" ON \"order_transaction\" (reference_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_deleted_at", + "columnNames": [ + "deleted_at" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_deleted_at\" ON \"order_transaction\" (deleted_at) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_transaction_order_id_version", + "columnNames": [], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_order_id_version\" ON \"order_transaction\" (order_id, version) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "order_transaction_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_transaction_order_id_foreign": { + "constraintName": "order_transaction_order_id_foreign", + "columnNames": [ + "order_id" + ], + "localTableName": "public.order_transaction", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order", + "deleteRule": "cascade", + "updateRule": "cascade" + }, + "order_transaction_return_id_foreign": { + "constraintName": "order_transaction_return_id_foreign", + "columnNames": [ + "return_id" + ], + "localTableName": "public.order_transaction", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.return", + "deleteRule": "set null", + "updateRule": "cascade" + }, + "order_transaction_exchange_id_foreign": { + "constraintName": "order_transaction_exchange_id_foreign", + "columnNames": [ + "exchange_id" + ], + "localTableName": "public.order_transaction", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_exchange", + "deleteRule": "set null", + "updateRule": "cascade" + }, + "order_transaction_claim_id_foreign": { + "constraintName": "order_transaction_claim_id_foreign", + "columnNames": [ + "claim_id" + ], + "localTableName": "public.order_transaction", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_claim", + "deleteRule": "set null", + "updateRule": "cascade" + } + } + }, + { + "columns": { + "id": { + "name": "id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "order_id": { + "name": "order_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "return_id": { + "name": "return_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "exchange_id": { + "name": "exchange_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "claim_id": { + "name": "claim_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "mappedType": "text" + }, + "version": { + "name": "version", + "type": "integer", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "shipping_method_id": { + "name": "shipping_method_id", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "default": "now()", + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "order_shipping", + "schema": "public", + "indexes": [ + { + "keyName": "IDX_order_shipping_order_id", + "columnNames": [ + "order_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_order_id\" ON \"order_shipping\" (order_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_return_id", + "columnNames": [ + "return_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_return_id\" ON \"order_shipping\" (return_id) WHERE return_id IS NOT NULL AND deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_exchange_id", + "columnNames": [ + "exchange_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_exchange_id\" ON \"order_shipping\" (exchange_id) WHERE exchange_id IS NOT NULL AND deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_claim_id", + "columnNames": [ + "claim_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_claim_id\" ON \"order_shipping\" (claim_id) WHERE claim_id IS NOT NULL AND deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_version", + "columnNames": [ + "version" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_version\" ON \"order_shipping\" (version) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_shipping_method_id", + "columnNames": [ + "shipping_method_id" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_shipping_method_id\" ON \"order_shipping\" (shipping_method_id) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "IDX_order_shipping_deleted_at", + "columnNames": [ + "deleted_at" + ], + "composite": false, + "primary": false, + "unique": false, + "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_deleted_at\" ON \"order_shipping\" (deleted_at) WHERE deleted_at IS NOT NULL" + }, + { + "keyName": "order_shipping_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_shipping_order_id_foreign": { + "constraintName": "order_shipping_order_id_foreign", + "columnNames": [ + "order_id" + ], + "localTableName": "public.order_shipping", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order", + "updateRule": "cascade" + }, + "order_shipping_return_id_foreign": { + "constraintName": "order_shipping_return_id_foreign", + "columnNames": [ + "return_id" + ], + "localTableName": "public.order_shipping", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.return", + "deleteRule": "set null", + "updateRule": "cascade" + }, + "order_shipping_exchange_id_foreign": { + "constraintName": "order_shipping_exchange_id_foreign", + "columnNames": [ + "exchange_id" + ], + "localTableName": "public.order_shipping", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_exchange", + "deleteRule": "set null", + "updateRule": "cascade" + }, + "order_shipping_claim_id_foreign": { + "constraintName": "order_shipping_claim_id_foreign", + "columnNames": [ + "claim_id" + ], + "localTableName": "public.order_shipping", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_claim", + "deleteRule": "set null", + "updateRule": "cascade" + }, + "order_shipping_shipping_method_id_foreign": { + "constraintName": "order_shipping_shipping_method_id_foreign", + "columnNames": [ + "shipping_method_id" + ], + "localTableName": "public.order_shipping", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order_shipping_method", + "updateRule": "cascade" + } + } + }, { "columns": { "id": { @@ -3867,983 +4864,6 @@ "updateRule": "cascade" } } - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "name": { - "name": "name", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "description": { - "name": "description", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "json" - }, - "amount": { - "name": "amount", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "decimal" - }, - "raw_amount": { - "name": "raw_amount", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "is_tax_inclusive": { - "name": "is_tax_inclusive", - "type": "boolean", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "default": "false", - "mappedType": "boolean" - }, - "shipping_option_id": { - "name": "shipping_option_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "data": { - "name": "data", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "json" - }, - "metadata": { - "name": "metadata", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "json" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - } - }, - "name": "order_shipping_method", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_shipping_method_shipping_option_id", - "columnNames": [ - "shipping_option_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_shipping_option_id\" ON \"order_shipping_method\" (shipping_option_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_method_deleted_at", - "columnNames": [ - "deleted_at" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_deleted_at\" ON \"order_shipping_method\" (deleted_at) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "order_shipping_method_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": {} - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "order_id": { - "name": "order_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "return_id": { - "name": "return_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "exchange_id": { - "name": "exchange_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "claim_id": { - "name": "claim_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "version": { - "name": "version", - "type": "integer", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "integer" - }, - "shipping_method_id": { - "name": "shipping_method_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - } - }, - "name": "order_shipping", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_shipping_order_id", - "columnNames": [ - "order_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_order_id\" ON \"order_shipping\" (order_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_return_id", - "columnNames": [ - "return_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_return_id\" ON \"order_shipping\" (return_id) WHERE return_id IS NOT NULL AND deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_exchange_id", - "columnNames": [ - "exchange_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_exchange_id\" ON \"order_shipping\" (exchange_id) WHERE exchange_id IS NOT NULL AND deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_claim_id", - "columnNames": [ - "claim_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_claim_id\" ON \"order_shipping\" (claim_id) WHERE claim_id IS NOT NULL AND deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_version", - "columnNames": [ - "version" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_version\" ON \"order_shipping\" (version) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_shipping_method_id", - "columnNames": [ - "shipping_method_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_shipping_method_id\" ON \"order_shipping\" (shipping_method_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_shipping_deleted_at", - "columnNames": [ - "deleted_at" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_deleted_at\" ON \"order_shipping\" (deleted_at) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "order_shipping_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": { - "order_shipping_order_id_foreign": { - "constraintName": "order_shipping_order_id_foreign", - "columnNames": [ - "order_id" - ], - "localTableName": "public.order_shipping", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order", - "updateRule": "cascade" - }, - "order_shipping_return_id_foreign": { - "constraintName": "order_shipping_return_id_foreign", - "columnNames": [ - "return_id" - ], - "localTableName": "public.order_shipping", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.return", - "deleteRule": "set null", - "updateRule": "cascade" - }, - "order_shipping_exchange_id_foreign": { - "constraintName": "order_shipping_exchange_id_foreign", - "columnNames": [ - "exchange_id" - ], - "localTableName": "public.order_shipping", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_exchange", - "deleteRule": "set null", - "updateRule": "cascade" - }, - "order_shipping_claim_id_foreign": { - "constraintName": "order_shipping_claim_id_foreign", - "columnNames": [ - "claim_id" - ], - "localTableName": "public.order_shipping", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_claim", - "deleteRule": "set null", - "updateRule": "cascade" - }, - "order_shipping_shipping_method_id_foreign": { - "constraintName": "order_shipping_shipping_method_id_foreign", - "columnNames": [ - "shipping_method_id" - ], - "localTableName": "public.order_shipping", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_shipping_method", - "updateRule": "cascade" - } - } - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "description": { - "name": "description", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "promotion_id": { - "name": "promotion_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "code": { - "name": "code", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "amount": { - "name": "amount", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "decimal" - }, - "raw_amount": { - "name": "raw_amount", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - }, - "shipping_method_id": { - "name": "shipping_method_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - } - }, - "name": "order_shipping_method_adjustment", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_shipping_method_adjustment_shipping_method_id", - "columnNames": [ - "shipping_method_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_adjustment_shipping_method_id\" ON \"order_shipping_method_adjustment\" (shipping_method_id)" - }, - { - "keyName": "order_shipping_method_adjustment_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": { - "order_shipping_method_adjustment_shipping_method_id_foreign": { - "constraintName": "order_shipping_method_adjustment_shipping_method_id_foreign", - "columnNames": [ - "shipping_method_id" - ], - "localTableName": "public.order_shipping_method_adjustment", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_shipping_method", - "deleteRule": "cascade", - "updateRule": "cascade" - } - } - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "description": { - "name": "description", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "tax_rate_id": { - "name": "tax_rate_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "code": { - "name": "code", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "rate": { - "name": "rate", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "decimal" - }, - "raw_rate": { - "name": "raw_rate", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - }, - "shipping_method_id": { - "name": "shipping_method_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - } - }, - "name": "order_shipping_method_tax_line", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_shipping_method_tax_line_shipping_method_id", - "columnNames": [ - "shipping_method_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_shipping_method_tax_line_shipping_method_id\" ON \"order_shipping_method_tax_line\" (shipping_method_id)" - }, - { - "keyName": "order_shipping_method_tax_line_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": { - "order_shipping_method_tax_line_shipping_method_id_foreign": { - "constraintName": "order_shipping_method_tax_line_shipping_method_id_foreign", - "columnNames": [ - "shipping_method_id" - ], - "localTableName": "public.order_shipping_method_tax_line", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_shipping_method", - "deleteRule": "cascade", - "updateRule": "cascade" - } - } - }, - { - "columns": { - "id": { - "name": "id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "order_id": { - "name": "order_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "return_id": { - "name": "return_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "exchange_id": { - "name": "exchange_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "claim_id": { - "name": "claim_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "version": { - "name": "version", - "type": "integer", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "default": "1", - "mappedType": "integer" - }, - "amount": { - "name": "amount", - "type": "numeric", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "decimal" - }, - "raw_amount": { - "name": "raw_amount", - "type": "jsonb", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "json" - }, - "currency_code": { - "name": "currency_code", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "mappedType": "text" - }, - "reference": { - "name": "reference", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "reference_id": { - "name": "reference_id", - "type": "text", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "mappedType": "text" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "length": 6, - "default": "now()", - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "length": 6, - "mappedType": "datetime" - } - }, - "name": "order_transaction", - "schema": "public", - "indexes": [ - { - "keyName": "IDX_order_transaction_order_id", - "columnNames": [ - "order_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_order_id\" ON \"order_transaction\" (order_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_return_id", - "columnNames": [ - "return_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_return_id\" ON \"order_transaction\" (return_id) WHERE return_id IS NOT NULL AND deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_exchange_id", - "columnNames": [ - "exchange_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_exchange_id\" ON \"order_transaction\" (exchange_id) WHERE exchange_id IS NOT NULL AND deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_claim_id", - "columnNames": [ - "claim_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_claim_id\" ON \"order_transaction\" (claim_id) WHERE claim_id IS NOT NULL AND deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_currency_code", - "columnNames": [ - "currency_code" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_currency_code\" ON \"order_transaction\" (currency_code) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_reference_id", - "columnNames": [ - "reference_id" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_reference_id\" ON \"order_transaction\" (reference_id) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_deleted_at", - "columnNames": [ - "deleted_at" - ], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_deleted_at\" ON \"order_transaction\" (deleted_at) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "IDX_order_transaction_order_id_version", - "columnNames": [], - "composite": false, - "primary": false, - "unique": false, - "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_transaction_order_id_version\" ON \"order_transaction\" (order_id, version) WHERE deleted_at IS NOT NULL" - }, - { - "keyName": "order_transaction_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": { - "order_transaction_order_id_foreign": { - "constraintName": "order_transaction_order_id_foreign", - "columnNames": [ - "order_id" - ], - "localTableName": "public.order_transaction", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order", - "deleteRule": "cascade", - "updateRule": "cascade" - }, - "order_transaction_return_id_foreign": { - "constraintName": "order_transaction_return_id_foreign", - "columnNames": [ - "return_id" - ], - "localTableName": "public.order_transaction", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.return", - "deleteRule": "set null", - "updateRule": "cascade" - }, - "order_transaction_exchange_id_foreign": { - "constraintName": "order_transaction_exchange_id_foreign", - "columnNames": [ - "exchange_id" - ], - "localTableName": "public.order_transaction", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_exchange", - "deleteRule": "set null", - "updateRule": "cascade" - }, - "order_transaction_claim_id_foreign": { - "constraintName": "order_transaction_claim_id_foreign", - "columnNames": [ - "claim_id" - ], - "localTableName": "public.order_transaction", - "referencedColumnNames": [ - "id" - ], - "referencedTableName": "public.order_claim", - "deleteRule": "set null", - "updateRule": "cascade" - } - } } ] } diff --git a/packages/modules/order/src/migrations/Migration20240902195921.ts b/packages/modules/order/src/migrations/Migration20240902195921.ts new file mode 100644 index 0000000000..4bb6982256 --- /dev/null +++ b/packages/modules/order/src/migrations/Migration20240902195921.ts @@ -0,0 +1,17 @@ +import { Migration } from '@mikro-orm/migrations'; + +export class Migration20240902195921 extends Migration { + + async up(): Promise { + this.addSql('alter table if exists "order_line_item" add column if not exists "is_custom_price" boolean not null default false;'); + + this.addSql('alter table if exists "order_shipping_method" add column if not exists "is_custom_amount" boolean not null default false;'); + } + + async down(): Promise { + this.addSql('alter table if exists "order_line_item" drop column if exists "is_custom_price";'); + + this.addSql('alter table if exists "order_shipping_method" drop column if exists "is_custom_amount";'); + } + +} diff --git a/packages/modules/order/src/models/line-item.ts b/packages/modules/order/src/models/line-item.ts index 2e30fcd4db..c9f1edb80b 100644 --- a/packages/modules/order/src/models/line-item.ts +++ b/packages/modules/order/src/models/line-item.ts @@ -128,6 +128,9 @@ export default class OrderLineItem { @Property({ columnType: "jsonb" }) raw_unit_price: BigNumberRawValue + @Property({ columnType: "boolean", default: false }) + is_custom_price: boolean = false + @OneToMany(() => OrderLineItemTaxLine, (taxLine) => taxLine.item, { cascade: [Cascade.PERSIST, "soft-remove" as Cascade], }) diff --git a/packages/modules/order/src/models/shipping-method.ts b/packages/modules/order/src/models/shipping-method.ts index ffa05ab8aa..88cd338773 100644 --- a/packages/modules/order/src/models/shipping-method.ts +++ b/packages/modules/order/src/models/shipping-method.ts @@ -54,6 +54,9 @@ export default class OrderShippingMethod { @Property({ columnType: "boolean" }) is_tax_inclusive: boolean = false + @Property({ columnType: "boolean", default: false }) + is_custom_amount: boolean = false + @Property({ columnType: "text", nullable: true,