import { AdminFulfillmentItem, AdminFulfillmentLabel, AdminOrder, AdminOrderFulfillment, AdminPayment, AdminPaymentCollection, AdminRefund, AdminRefundReason, } from "@medusajs/types" const DEFAULT_PROPERTIES = [ "id", "status", "created_at", "canceled_at", "email", "display_id", "custom_display_id", "currency_code", "metadata", // --- TOTALS --- "total", "credit_line_total", "item_subtotal", "item_total", "item_tax_total", "original_item_tax_total", "item_discount_total", "shipping_subtotal", "original_total", "original_tax_total", "subtotal", "discount_total", "discount_subtotal", "shipping_total", "shipping_tax_total", "original_shipping_tax_total", "shipping_discount_total", "tax_total", "refundable_total", "order_change", ] const DEFAULT_RELATIONS = [ "*customer", "*items", // -> we get LineItem here with added `quantity` and `detail` which is actually an OrderItem (which is a parent object to LineItem in the DB) "*items.variant", "*items.variant.product", "*items.variant.options", "+items.variant.manage_inventory", "*items.variant.inventory_items.inventory", "+items.variant.inventory_items.required_quantity", "+summary", "*shipping_address", "*billing_address", "*sales_channel", "*promotions", "*shipping_methods", "*credit_lines", "*fulfillments", "+fulfillments.shipping_option.service_zone.fulfillment_set.type", "*fulfillments.items", "*fulfillments.labels", "*fulfillments.labels", "*payment_collections", "*payment_collections.payments", "*payment_collections.payments.refunds", "*payment_collections.payments.refunds.refund_reason", "region.automatic_taxes", ] export const DEFAULT_FIELDS = `${DEFAULT_PROPERTIES.join( "," )},${DEFAULT_RELATIONS.join(",")}` export type ExtendedOrderFulfillment = AdminOrderFulfillment & { items: AdminFulfillmentItem[] labels: AdminFulfillmentLabel[] shipping_option?: { service_zone?: { fulfillment_set?: { type: string } } } } export type ExtendedRefund = AdminRefund & { payment_id: string | null refund_reason: AdminRefundReason } export type ExtendedOrder = Omit & { fulfillments?: ExtendedOrderFulfillment[] no_notification?: boolean canceled_at?: string | null display_id: string payment_collection?: AdminPaymentCollection & { payments: (AdminPayment & { refunds: ExtendedRefund[] })[] } }