<?php

declare(strict_types=1);

namespace Gls\GlsPoland\AdePlus\Type;

use Gls\GlsPoland\AdePlus\Printout\Labels;
use Gls\GlsPoland\AdePlus\Response;
use Gls\GlsPoland\Soap\Client\Type\ResultInterface;
use JsonSerializable;

final class AdePickupGetLabelsResponse extends Response implements ResultInterface, JsonSerializable
{
    /**
     * @var \Gls\GlsPoland\AdePlus\Printout\Labels
     */
    protected $return;

    public function jsonSerialize(): array
    {
        return [
            'return' => $this->return,
        ];
    }

    public function getReturn(): Labels
    {
        return $this->return;
    }

    public function withReturn(Labels $return): AdePickupGetLabelsResponse
    {
        $new = clone $this;
        $new->return = $return;

        return $new;
    }
}
