import { ExecArgs } from "@medusajs/framework/types";
import { ContainerRegistrationKeys } from "@medusajs/framework/utils";

export default async function run({ container }: ExecArgs) {
  const query = container.resolve(ContainerRegistrationKeys.QUERY);
  const logger = container.resolve(ContainerRegistrationKeys.LOGGER);
  const id = "order_01KHHSJA53R9QPP1FBZ95C87AJ";

  const { data } = await query.graph({
    entity: "order",
    fields: [
      "id",
      "display_id",
      "email",
      "shipping_methods.id",
      "shipping_methods.shipping_option_id",
      "shipping_methods.amount",
      "shipping_methods.data",
      "shipping_methods.shipping_option.id",
      "shipping_methods.shipping_option.name",
      "shipping_methods.shipping_option.provider_id",
      "shipping_methods.shipping_option.data",
      "shipping_methods.shipping_option.type.code",
      "shipping_methods.shipping_option.type.label",
      "metadata",
      "fulfillments.id",
      "fulfillments.shipped_at",
      "fulfillments.canceled_at",
      "fulfillments.labels.tracking_number",
      "fulfillments.labels.label_url"
    ],
    filters: { id },
  });

  logger.info(JSON.stringify(data?.[0] || null, null, 2));
}
