<?php

/**
 * Model for Shipping settings.
 *
 * @package northmill-online-shared
 */
declare (strict_types=1);
namespace Northmill_Online_Shared_Checkout\Northmill_Online_Shared\Abstracts\Hub_API\Hub_Accounts\Models;

use JsonSerializable;
use Northmill_Online_Shared_Checkout\Northmill_Online_Shared\Abstracts\Data_Model;
defined('ABSPATH') || exit;
/**
 * Class Shipping_Model
 */
class Shipping_Model extends Data_Model implements JsonSerializable
{
    /**
     * Flo article sku (article number) of shipping article.
     *
     * @var string
     */
    protected string $article_sku;
    /**
     * Article Account code for shipping article.
     *
     * @var ?int
     */
    protected ?int $article_account_code;
    /**
     * Get shipping article SKU.
     *
     * @return string
     */
    public function get_article_sku(): string
    {
        return $this->article_sku ?? '';
    }
    /**
     * Set shipping article SKU.
     *
     * @param string $article_sku Article SKU.
     *
     * @return void
     */
    public function set_article_sku(string $article_sku): void
    {
        $this->article_sku = $article_sku;
    }
    /**
     * Get shipping article account code.
     *
     * @return ?int
     */
    public function get_article_account_code(): ?int
    {
        return $this->article_account_code ?? null;
    }
    /**
     * Set shipping article account code.
     *
     * @param ?int $article_account_code Article account code.
     *
     * @return void
     */
    public function set_article_account_code(?int $article_account_code): void
    {
        $this->article_account_code = $article_account_code;
    }
    /**
     * {@inheritDoc}
     */
    public function jsonSerialize(): array
    {
        return array('article_sku' => $this->get_article_sku(), 'article_account_code' => $this->get_article_account_code());
    }
}
