/**
 * WooCommerce Node - Version 1
 * Discriminator: resource=order, operation=get
 */


interface Credentials {
  wooCommerceApi: CredentialReference;
}

/** Retrieve a customer */
export type WooCommerceV1OrderGetParams = {
  resource: 'order';
  operation: 'get';
/**
 * Order ID
 */
    orderId?: string | Expression<string> | PlaceholderValue;
};

export type WooCommerceV1OrderGetOutput = {
  _links?: {
    collection?: Array<{
      href?: string;
    }>;
    self?: Array<{
      href?: string;
      targetHints?: {
        allow?: Array<string>;
      };
    }>;
  };
  billing?: {
    address_1?: string;
    address_2?: string;
    city?: string;
    company?: string;
    country?: string;
    email?: string;
    first_name?: string;
    last_name?: string;
    phone?: string;
    postcode?: string;
    state?: string;
  };
  cart_hash?: string;
  cart_tax?: string;
  coupon_lines?: Array<{
    code?: string;
    discount?: string;
    discount_tax?: string;
    discount_type?: string;
    free_shipping?: boolean;
    id?: number;
    meta_data?: Array<{
      display_key?: string;
      display_value?: string;
      id?: number;
      key?: string;
      value?: string;
    }>;
  }>;
  created_via?: string;
  currency?: string;
  currency_symbol?: string;
  customer_id?: number;
  customer_ip_address?: string;
  customer_note?: string;
  customer_user_agent?: string;
  date_created?: string;
  date_created_gmt?: string;
  date_modified?: string;
  date_modified_gmt?: string;
  discount_tax?: string;
  discount_total?: string;
  fee_lines?: Array<{
    amount?: string;
    id?: number;
    meta_data?: Array<{
      display_key?: string;
      display_value?: string;
      id?: number;
      key?: string;
      value?: string;
    }>;
    name?: string;
    tax_class?: string;
    tax_status?: string;
    total?: string;
    total_tax?: string;
  }>;
  id?: number;
  is_editable?: boolean;
  line_items?: Array<{
    id?: number;
    image?: {
      src?: string;
    };
    meta_data?: Array<{
      display_key?: string;
      id?: number;
      key?: string;
    }>;
    name?: string;
    product_id?: number;
    quantity?: number;
    subtotal?: string;
    subtotal_tax?: string;
    tax_class?: string;
    taxes?: Array<{
      id?: number;
      subtotal?: string;
      total?: string;
    }>;
    total?: string;
    total_tax?: string;
    variation_id?: number;
  }>;
  meta_data?: Array<{
    id?: number;
    key?: string;
  }>;
  needs_payment?: boolean;
  needs_processing?: boolean;
  number?: string;
  order_key?: string;
  parent_id?: number;
  payment_method?: string;
  payment_method_title?: string;
  payment_url?: string;
  prices_include_tax?: boolean;
  refunds?: Array<{
    id?: number;
    reason?: string;
    total?: string;
  }>;
  shipping?: {
    address_1?: string;
    address_2?: string;
    city?: string;
    company?: string;
    country?: string;
    first_name?: string;
    last_name?: string;
    phone?: string;
    postcode?: string;
    state?: string;
  };
  shipping_lines?: Array<{
    id?: number;
    instance_id?: string;
    meta_data?: Array<{
      display_key?: string;
      display_value?: string;
      id?: number;
      key?: string;
      value?: string;
    }>;
    method_id?: string;
    method_title?: string;
    tax_status?: string;
    taxes?: Array<{
      id?: number;
      subtotal?: string;
      total?: string;
    }>;
    total?: string;
    total_tax?: string;
  }>;
  shipping_tax?: string;
  shipping_total?: string;
  status?: string;
  tax_lines?: Array<{
    compound?: boolean;
    id?: number;
    label?: string;
    meta_data?: Array<{
      display_key?: string;
      display_value?: string;
      id?: number;
      key?: string;
      value?: string;
    }>;
    rate_code?: string;
    rate_id?: number;
    shipping_tax_total?: string;
    tax_total?: string;
  }>;
  total?: string;
  total_tax?: string;
  transaction_id?: string;
  version?: string;
};

export type WooCommerceV1OrderGetNode = {
  type: 'n8n-nodes-base.wooCommerce';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<WooCommerceV1OrderGetParams>;
  output?: Items<WooCommerceV1OrderGetOutput>;
};