<?php
/**
 * Copyright ©  All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Leadlion\AutogedalWarehouses\Model\Data;

use Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface;

class Warehouse extends \Magento\Framework\Api\AbstractExtensibleObject implements WarehouseInterface
{

    /**
     * Get warehouse_id
     * @return string|null
     */
    public function getWarehouseId()
    {
        return $this->_get(self::WAREHOUSE_ID);
    }

    /**
     * Set warehouse_id
     * @param string $warehouseId
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setWarehouseId($warehouseId)
    {
        return $this->setData(self::WAREHOUSE_ID, $warehouseId);
    }

    /**
     * Get name
     * @return string|null
     */
    public function getName()
    {
        return $this->_get(self::NAME);
    }

    /**
     * Set name
     * @param string $name
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setName($name)
    {
        return $this->setData(self::NAME, $name);
    }

    /**
     * Retrieve existing extension attributes object or create a new one.
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseExtensionInterface|null
     */
    public function getExtensionAttributes()
    {
        return $this->_getExtensionAttributes();
    }

    /**
     * Set an extension attributes object.
     * @param \Leadlion\AutogedalWarehouses\Api\Data\WarehouseExtensionInterface $extensionAttributes
     * @return $this
     */
    public function setExtensionAttributes(
        \Leadlion\AutogedalWarehouses\Api\Data\WarehouseExtensionInterface $extensionAttributes
    ) {
        return $this->_setExtensionAttributes($extensionAttributes);
    }

    /**
     * Get is_external
     * @return string|null
     */
    public function getIsExternal()
    {
        return $this->_get(self::IS_EXTERNAL);
    }

    /**
     * Set is_external
     * @param string $isExternal
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setIsExternal($isExternal)
    {
        return $this->setData(self::IS_EXTERNAL, $isExternal);
    }

    /**
     * Get address
     * @return string|null
     */
    public function getAddress()
    {
        return $this->_get(self::ADDRESS);
    }

    /**
     * Set address
     * @param string $address
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setAddress($address)
    {
        return $this->setData(self::ADDRESS, $address);
    }

    /**
     * Get default_courier
     * @return string|null
     */
    public function getDefaultCourier()
    {
        return $this->_get(self::DEFAULT_COURIER);
    }

    /**
     * Set default_courier
     * @param string $defaultCourier
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setDefaultCourier($defaultCourier)
    {
        return $this->setData(self::DEFAULT_COURIER, $defaultCourier);
    }

    /**
     * Get conditions
     * @return string|null
     */
    public function getConditions()
    {
        return $this->_get(self::CONDITIONS);
    }

    /**
     * Set conditions
     * @param string $conditions
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setConditions($conditions)
    {
        return $this->setData(self::CONDITIONS, $conditions);
    }

    /**
     * Get smartbill_invoice_series
     * @return string|null
     */
    public function getSmartbillInvoiceSeries()
    {
        return $this->_get(self::SMARTBILL_INVOICE_SERIES);
    }

    /**
     * Set pickup_id
     * @param string $pickupId
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setPickupId($pickupId)
    {
        return $this->setData(self::PICKUP_ID, $pickupId);
    }

    /**
     * Get pickup_id
     * @return string|null
     */
    public function getPickupId()
    {
        return $this->_get(self::PICKUP_ID);
    }

    /**
     * Set smartbill_invoice_series
     * @param string $smartbillInvoiceSeries
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setSmartbillInvoiceSeries($smartbillInvoiceSeries)
    {
        return $this->setData(self::SMARTBILL_INVOICE_SERIES, $smartbillInvoiceSeries);
    }

    /**
     * Get supplier_email
     * @return string|null
     */
    public function getSupplierEmail()
    {
        return $this->_get(self::SUPPLIER_EMAIL);
    }

    /**
     * Set supplier_email
     * @param string $supplierEmail
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setSupplierEmail($supplierEmail)
    {
        return $this->setData(self::SUPPLIER_EMAIL, $supplierEmail);
    }

    /**
     * Get max_sending_hour
     * @return string|null
     */
    public function getMaxSendingHour()
    {
        return $this->_get(self::MAX_SENDING_HOUR);
    }

    /**
     * Set max_sending_hour
     * @param string $maxSendingHour
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setMaxSendingHour($maxSendingHour)
    {
        return $this->setData(self::MAX_SENDING_HOUR, $maxSendingHour);
    }

    /**
     * Get code
     * @return string|null
     */
    public function getCode()
    {
        return $this->_get(self::CODE);
    }

    /**
     * Set code
     * @param string $code
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setCode($code)
    {
        return $this->setData(self::CODE, $code);
    }

    /**
     * Get automatic_stock_management
     * @return mixed|null
     */
    public function getAutomaticStockManagement()
    {
        return $this->_get(self::AUTOMATIC_STOCK_MANAGEMENT);
    }

    /**
     * @param $automaticStockManagement
     * @return WarehouseInterface|Warehouse
     */
    public function setAutomaticStockManagement($automaticStockManagement)
    {
        return $this->setData(self::AUTOMATIC_STOCK_MANAGEMENT, $automaticStockManagement);
    }

    /**
     * Get phone
     * @return string|null
     */
    public function getPhone()
    {
        return $this->_get(self::PHONE);
    }

    /**
     * Set phone
     * @param string $phone
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setPhone($phone)
    {
        return $this->setData(self::PHONE, $phone);
    }

    /**
     * Get city
     * @return string|null
     */
    public function getCity()
    {
        return $this->_get(self::CITY);
    }

    /**
     * Set city
     * @param string $city
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setCity($city)
    {
        return $this->setData(self::CITY, $city);
    }

    /**
     * Get zip_code
     * @return string|null
     */
    public function getZipCode()
    {
        return $this->_get(self::ZIP_CODE);
    }

    /**
     * Set zip_code
     * @param string $zipCode
     * @return \Leadlion\AutogedalWarehouses\Api\Data\WarehouseInterface
     */
    public function setZipCode($zipCode)
    {
        return $this->setData(self::ZIP_CODE, $zipCode);
    }
}

