<?php

/**
 * Order data base class.
 *
 * @package Krokedil/WooCommerce
 */
namespace KrokedilKlarnaPaymentsDeps\Krokedil\WooCommerce;

use KrokedilKlarnaPaymentsDeps\Krokedil\WooCommerce\Base;
/**
 * Order data base class.
 */
abstract class OrderData extends Base
{
    /**
     * Item lines
     *
     * @var array<OrderLineData>
     */
    public $line_items = array();
    /**
     * Shipping lines
     *
     * @var array<OrderLineData>
     */
    public $line_shipping = array();
    /**
     * Coupon lines
     *
     * @var array<OrderLineData>
     */
    public $line_coupons = array();
    /**
     * Fee lines
     *
     * @var array<OrderLineData>
     */
    public $line_fees = array();
    /**
     * Compatibility lines
     *
     * @var array<OrderLineData>
     */
    public $line_compatibility = array();
    /**
     * Customer data
     *
     * @var CustomerData
     */
    public $customer;
    /**
     * Cart total ex tax.
     *
     * @var int|float
     */
    public $total;
    /**
     * Cart total tax.
     *
     * @var int|float
     */
    public $total_tax;
    /**
     * Cart subtotal ex tax.
     *
     * @var int|float
     */
    public $subtotal;
    /**
     * Cart subtotal tax.
     *
     * @var int|float
     */
    public $subtotal_tax;
    /**
     * Returns the line items.
     *
     * @return array<OrderLineData>
     */
    public function get_line_items()
    {
        return $this->line_items;
    }
    /**
     * Sets the line items.
     *
     * @return void
     */
    public abstract function set_line_items();
    /**
     * Returns the shipping lines.
     *
     * @return array<OrderLineData>
     */
    public function get_line_shipping()
    {
        return $this->line_shipping;
    }
    /**
     * Sets the shipping lines.
     *
     * @return void
     */
    public abstract function set_line_shipping();
    /**
     * Returns the coupon lines.
     *
     * @return array<OrderLineData>
     */
    public function get_line_coupons()
    {
        return $this->line_coupons;
    }
    /**
     * Sets the coupon lines.
     *
     * @return void
     */
    public abstract function set_line_coupons();
    /**
     * Returns the fee lines.
     *
     * @return array<OrderLineData>
     */
    public function get_line_fees()
    {
        return $this->line_fees;
    }
    /**
     * Sets the fee lines.
     *
     * @return void
     */
    public abstract function set_line_fees();
    /**
     * Returns the compatibility lines.
     *
     * @return array<OrderLineData>
     */
    public function get_line_compatibility()
    {
        return $this->line_compatibility;
    }
    /**
     * Sets the compatibility lines.
     *
     * @return void
     */
    public abstract function set_line_compatibility();
    /**
     * Returns the customer data.
     *
     * @return CustomerData
     */
    public function get_customer()
    {
        return $this->customer;
    }
    /**
     * Sets the customer data.
     *
     * @return void
     */
    public abstract function set_customer();
    /**
     * Returns the total incl. tax.
     *
     * @return int|float
     */
    public function get_total()
    {
        return $this->total;
    }
    /**
     * Sets the total ex tax.
     *
     * @return void
     */
    public abstract function set_total();
    /**
     * Returns the total tax.
     *
     * @return int|float
     */
    public function get_total_tax()
    {
        return $this->total_tax;
    }
    /**
     * Sets the total tax.
     *
     * @return void
     */
    public abstract function set_total_tax();
    /**
     * Returns the subtotal ex tax.
     *
     * @return int|float
     */
    public function get_subtotal()
    {
        return $this->subtotal;
    }
    /**
     * Sets the subtotal ex tax.
     *
     * @return void
     */
    public abstract function set_subtotal();
    /**
     * Returns the subtotal tax.
     *
     * @return int|float
     */
    public function get_subtotal_tax()
    {
        return $this->subtotal_tax;
    }
    /**
     * Sets the subtotal tax.
     *
     * @return void
     */
    public abstract function set_subtotal_tax();
}
