<?php
namespace Magento\Sales\Api\Data;

/**
 * ExtensionInterface class for @see \Magento\Sales\Api\Data\OrderInterface
 */
interface OrderExtensionInterface extends \Magento\Framework\Api\ExtensionAttributesInterface
{
    /**
     * @return \Magento\Sales\Api\Data\ShippingAssignmentInterface[]|null
     */
    public function getShippingAssignments();

    /**
     * @param \Magento\Sales\Api\Data\ShippingAssignmentInterface[] $shippingAssignments
     * @return $this
     */
    public function setShippingAssignments($shippingAssignments);

    /**
     * @return \Magento\Payment\Api\Data\PaymentAdditionalInfoInterface[]|null
     */
    public function getPaymentAdditionalInfo();

    /**
     * @param \Magento\Payment\Api\Data\PaymentAdditionalInfoInterface[] $paymentAdditionalInfo
     * @return $this
     */
    public function setPaymentAdditionalInfo($paymentAdditionalInfo);

    /**
     * @return \Magento\GiftMessage\Api\Data\MessageInterface|null
     */
    public function getGiftMessage();

    /**
     * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage
     * @return $this
     */
    public function setGiftMessage(\Magento\GiftMessage\Api\Data\MessageInterface $giftMessage);

    /**
     * @return string|null
     */
    public function getPickupLocationCode();

    /**
     * @param string $pickupLocationCode
     * @return $this
     */
    public function setPickupLocationCode($pickupLocationCode);

    /**
     * @return int|null
     */
    public function getNotificationSent();

    /**
     * @param int $notificationSent
     * @return $this
     */
    public function setNotificationSent($notificationSent);

    /**
     * @return int|null
     */
    public function getSendNotification();

    /**
     * @param int $sendNotification
     * @return $this
     */
    public function setSendNotification($sendNotification);

    /**
     * @return \Magento\Tax\Api\Data\OrderTaxDetailsAppliedTaxInterface[]|null
     */
    public function getAppliedTaxes();

    /**
     * @param \Magento\Tax\Api\Data\OrderTaxDetailsAppliedTaxInterface[] $appliedTaxes
     * @return $this
     */
    public function setAppliedTaxes($appliedTaxes);

    /**
     * @return \Magento\Tax\Api\Data\OrderTaxDetailsItemInterface[]|null
     */
    public function getItemAppliedTaxes();

    /**
     * @param \Magento\Tax\Api\Data\OrderTaxDetailsItemInterface[] $itemAppliedTaxes
     * @return $this
     */
    public function setItemAppliedTaxes($itemAppliedTaxes);

    /**
     * @return boolean|null
     */
    public function getConvertingFromQuote();

    /**
     * @param boolean $convertingFromQuote
     * @return $this
     */
    public function setConvertingFromQuote($convertingFromQuote);

    /**
     * @return \Magento\Tax\Api\Data\OrderTaxInterface[]|null
     */
    public function getTaxes();

    /**
     * @param \Magento\Tax\Api\Data\OrderTaxInterface[] $taxes
     * @return $this
     */
    public function setTaxes($taxes);

    /**
     * @return \Magento\Tax\Api\Data\OrderTaxItemInterface[]|null
     */
    public function getAdditionalItemizedTaxes();

    /**
     * @param \Magento\Tax\Api\Data\OrderTaxItemInterface[] $additionalItemizedTaxes
     * @return $this
     */
    public function setAdditionalItemizedTaxes($additionalItemizedTaxes);

    /**
     * @return string|null
     */
    public function getOscOrderComment();

    /**
     * @param string $oscOrderComment
     * @return $this
     */
    public function setOscOrderComment($oscOrderComment);

    /**
     * @return string|null
     */
    public function getFacebookOrderId();

    /**
     * @param string $facebookOrderId
     * @return $this
     */
    public function setFacebookOrderId($facebookOrderId);

    /**
     * @return string|null
     */
    public function getChannel();

    /**
     * @param string $channel
     * @return $this
     */
    public function setChannel($channel);

    /**
     * @return string|null
     */
    public function getEmailRemarketingOption();

    /**
     * @param string $emailRemarketingOption
     * @return $this
     */
    public function setEmailRemarketingOption($emailRemarketingOption);

    /**
     * @return mixed[]|null
     */
    public function getSyncedShipments();

    /**
     * @param mixed[] $syncedShipments
     * @return $this
     */
    public function setSyncedShipments($syncedShipments);
}
