<?php

namespace Opencart\Extension\Alsendo\Models;

class AdditionalSettings
{
    private ?int $id;
    private ?array $inpostDefaultPoint;
    private ?array $dhlDefaultPoint;
    private ?array $orlenDefaultPoint;
    private ?array $pocztaPolskaDefaultPoint;
    private ?array $dpdDefaultPoint;
    private ?array $upsDefaultPoint;
    private ?array $balikovnaDefaultPoint;
    private ?array $glsDefaultPoint;
    private ?array $pplDefaultPoint;
    private ?array $zasilkovnaDefaultPoint;
    private ?array $samedayDefaultPoint;
    private ?array $fanCourierDefaultPoint;
    private ?array $cargusDefaultPoint;
    private ?string $pickupHourFrom;
    private ?string $pickupHourTo;
    private bool $autoDeclaredValue;
    private bool $samedayDispatch;

    public function __construct(
        ?int $id = null,
        ?array $inpostDefaultPoint = null,
        ?array $dhlDefaultPoint = null,
        ?array $orlenDefaultPoint = null,
        ?array $pocztaPolskaDefaultPoint = null,
        ?array $dpdDefaultPoint = null,
        ?array $upsDefaultPoint = null,
        ?array $balikovnaDefaultPoint = null,
        ?array $glsDefaultPoint = null,
        ?array $pplDefaultPoint = null,
        ?array $zasilkovnaDefaultPoint = null,
        ?array $samedayDefaultPoint = null,
        ?array $fanCourierDefaultPoint = null,
        ?array $cargusDefaultPoint = null,
        ?string $pickupHourFrom = null,
        ?string $pickupHourTo = null,
        bool $autoDeclaredValue = false,
        bool $samedayDispatch = false
    ) {
        $this->id = $id;
        $this->inpostDefaultPoint = $inpostDefaultPoint;
        $this->dhlDefaultPoint = $dhlDefaultPoint;
        $this->orlenDefaultPoint = $orlenDefaultPoint;
        $this->pocztaPolskaDefaultPoint = $pocztaPolskaDefaultPoint;
        $this->dpdDefaultPoint = $dpdDefaultPoint;
        $this->upsDefaultPoint = $upsDefaultPoint;
        $this->balikovnaDefaultPoint = $balikovnaDefaultPoint;
        $this->glsDefaultPoint = $glsDefaultPoint;
        $this->pplDefaultPoint = $pplDefaultPoint;
        $this->zasilkovnaDefaultPoint = $zasilkovnaDefaultPoint;
        $this->samedayDefaultPoint = $samedayDefaultPoint;
        $this->fanCourierDefaultPoint = $fanCourierDefaultPoint;
        $this->cargusDefaultPoint = $cargusDefaultPoint;
        $this->pickupHourFrom = $pickupHourFrom;
        $this->pickupHourTo = $pickupHourTo;
        $this->autoDeclaredValue = $autoDeclaredValue;
        $this->samedayDispatch = $samedayDispatch;
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function setId(int $id): void
    {
        $this->id = $id;
    }

    public function getInpostDefaultPoint(): ?array
    {
        return $this->inpostDefaultPoint;
    }

    public function setInpostDefaultPoint(?array $point): void
    {
        $this->inpostDefaultPoint = $point;
    }

    public function getDhlDefaultPoint(): ?array
    {
        return $this->dhlDefaultPoint;
    }

    public function setDhlDefaultPoint(?array $point): void
    {
        $this->dhlDefaultPoint = $point;
    }

    public function getOrlenDefaultPoint(): ?array
    {
        return $this->orlenDefaultPoint;
    }

    public function setOrlenDefaultPoint(?array $point): void
    {
        $this->orlenDefaultPoint = $point;
    }

    public function getPocztaPolskaDefaultPoint(): ?array
    {
        return $this->pocztaPolskaDefaultPoint;
    }

    public function setPocztaPolskaDefaultPoint(?array $point): void
    {
        $this->pocztaPolskaDefaultPoint = $point;
    }

    public function getDpdDefaultPoint(): ?array
    {
        return $this->dpdDefaultPoint;
    }

    public function setDpdDefaultPoint(?array $point): void
    {
        $this->dpdDefaultPoint = $point;
    }

    public function getUpsDefaultPoint(): ?array
    {
        return $this->upsDefaultPoint;
    }

    public function setUpsDefaultPoint(?array $point): void
    {
        $this->upsDefaultPoint = $point;
    }

    public function getPickupHourFrom(): ?string
    {
        return $this->pickupHourFrom;
    }

    public function setPickupHourFrom(?string $hour): void
    {
        $this->pickupHourFrom = $hour;
    }

    public function getBalikovnaDefaultPoint(): ?array
    {
        return $this->balikovnaDefaultPoint;
    }
    public function setBalikovnaDefaultPoint(?array $point): void
    {
        $this->balikovnaDefaultPoint = $point;
    }

    public function getGlsDefaultPoint(): ?array
    {
        return $this->glsDefaultPoint;
    }
    public function setGlsDefaultPoint(?array $point): void
    {
        $this->glsDefaultPoint = $point;
    }

    public function getPplDefaultPoint(): ?array
    {
        return $this->pplDefaultPoint;
    }

    public function setPplDefaultPoint(?array $point): void
    {
        $this->pplDefaultPoint = $point;
    }

    public function getZasilkovnaDefaultPoint(): ?array
    {
        return $this->zasilkovnaDefaultPoint;
    }

    public function setZasilkovnaDefaultPoint(?array $point): void
    {
        $this->zasilkovnaDefaultPoint = $point;
    }

    public function getSamedayDefaultPoint(): ?array
    {
        return $this->samedayDefaultPoint;
    }

    public function getFanCourierDefaultPoint(): ?array
    {
        return $this->fanCourierDefaultPoint;
    }

    public function getCargusDefaultPoint(): ?array
    {
        return $this->cargusDefaultPoint;
    }

    public function getPickupHourTo(): ?string
    {
        return $this->pickupHourTo;
    }

    public function setPickupHourTo(?string $hour): void
    {
        $this->pickupHourTo = $hour;
    }

    public function getAutoDeclaredValue(): bool
    {
        return $this->autoDeclaredValue;
    }

    public function setAutoDeclaredValue(bool $value): void
    {
        $this->autoDeclaredValue = $value;
    }

    public function getSamedayDispatch(): bool
    {
        return $this->samedayDispatch;
    }

    public function setSamedayDispatch(bool $value): void
    {
        $this->samedayDispatch = $value;
    }

    public function toArray(): array
    {
        return [
            'id' => $this->id,
            'inpost_default_point' => $this->inpostDefaultPoint,
            'dhl_default_point' => $this->dhlDefaultPoint,
            'orlen_default_point' => $this->orlenDefaultPoint,
            'poczta_polska_default_point' => $this->pocztaPolskaDefaultPoint,
            'dpd_default_point' => $this->dpdDefaultPoint,
            'ups_default_point' => $this->upsDefaultPoint,
            'balikovna_default_point' => $this->balikovnaDefaultPoint,
            'gls_default_point' => $this->glsDefaultPoint,
            'ppl_default_point' => $this->pplDefaultPoint,
            'zasilkovna_default_point' => $this->zasilkovnaDefaultPoint,
            'sameday_default_point' => $this->samedayDefaultPoint,
            'fan_courier_default_point' => $this->fanCourierDefaultPoint,
            'cargus_default_point' => $this->cargusDefaultPoint,
            'pickup_hour_from' => $this->pickupHourFrom,
            'pickup_hour_to' => $this->pickupHourTo,
            'auto_declared_value' => $this->autoDeclaredValue,
            'sameday_dispatch' => $this->samedayDispatch
        ];
    }
}