<?php

namespace App\Classes\Modules\Companies\DataTransferObjects;

use App\Classes\General\Interfaces\DataTransferObject;

class CompanyServiceConfigurationsObject implements DataTransferObject
{

    /** @var boolean */
    private $isBillable;

    /** @var int */
    private $bankId;

    /** @var int */
    private $poLimit;

    /** @var float */
    private $tax;

    /** @var float */
    private $serviceCharge;

    /** @var float */
    private $minimumCharge;

    /** @var float */
    private $maxLimit;

    /** @var float */
    private $minLimit;

    /** @var float */
    private $rate;

    /**
     * CompanyServiceConfigurationsObject constructor.
     * @param bool $isBillable
     * @param int $bankId
     * @param int $poLimit
     * @param float $tax
     * @param float $serviceCharge
     * @param float $minimumCharge
     * @param float $maxLimit
     * @param float $minLimit
     * @param float $rate
     */
    public function __construct(bool $isBillable, int $bankId, int $poLimit, float $tax, float $serviceCharge, float $minimumCharge, float $maxLimit, float $minLimit, float $rate)
    {
        $this->isBillable = $isBillable;
        $this->bankId = $bankId;
        $this->poLimit = $poLimit;
        $this->tax = $tax;
        $this->serviceCharge = $serviceCharge;
        $this->minimumCharge = $minimumCharge;
        $this->maxLimit = $maxLimit;
        $this->minLimit = $minLimit;
        $this->rate = $rate;
    }


    /**
     * @param int $poLimit
     */
    public function setPoLimit(int $poLimit): void
    {
        $this->poLimit = $poLimit;
    }

    /**
     * @param int $bankId
     */
    public function setBankId(int $bankId): void
    {
        $this->bankId = $bankId;
    }



    /**
     * @param float $tax
     */
    public function setTax(float $tax): void
    {
        $this->tax = $tax;
    }

    /**
     * @param float $serviceCharge
     */
    public function setServiceCharge(float $serviceCharge): void
    {
        $this->serviceCharge = $serviceCharge;
    }

    /**
     * @param float $minimumCharge
     */
    public function setMinimumCharge(float $minimumCharge): void
    {
        $this->minimumCharge = $minimumCharge;
    }

    /**
     * @param float $maxLimit
     */
    public function setMaxLimit(float $maxLimit): void
    {
        $this->maxLimit = $maxLimit;
    }

    /**
     * @param float $minLimit
     */
    public function setMinLimit(float $minLimit): void
    {
        $this->minLimit = $minLimit;
    }

    /**
     * @param float $rate
     */
    public function setRate(float $rate): void
    {
        $this->rate = $rate;
    }

    /**
     * @return bool
     */
    public function isBillable(): bool
    {
        return $this->isBillable;
    }

    /**
     * @return int
     */
    public function getBankId(): int
    {
        return $this->bankId;
    }

    /**
     * @return int
     */
    public function getPoLimit(): int
    {
        return $this->poLimit;
    }

    /**
     * @return float
     */
    public function getTax(): float
    {
        return $this->tax;
    }

    /**
     * @return float
     */
    public function getServiceCharge(): float
    {
        return $this->serviceCharge;
    }

    /**
     * @return float
     */
    public function getMinimumCharge(): float
    {
        return $this->minimumCharge;
    }

    /**
     * @return float
     */
    public function getMaxLimit(): float
    {
        return $this->maxLimit;
    }

    /**
     * @return float
     */
    public function getMinLimit(): float
    {
        return $this->minLimit;
    }

    /**
     * @return float
     */
    public function getRate(): float
    {
        return $this->rate;
    }



}