Limits.php 1.08 KB
<?php
namespace App\Service;

use App\Models\Tokens;
use App\Service\Contract\HeaderLimits;

class Limits implements \App\Service\Contract\Limits {

    private $_instance;
    private $token;

    private function __constructor(Tokens $token){
        $this->token = $token;
    }

    public function getInstance($token){
        $this->_instance = new self($token);
    }

    function current(): int
    {
        return $this->token->limit;
    }

    function DayLimit(): int
    {
        $this->token->limits->first()->day;
    }

    function countObjectsLimit(string $service, string $method): int
    {
        $cost = $this->getCost($service, $method);
        return floor($this->current() / $cost);
    }

    function doRezerv(string $service, string $method, int $limit): int
    {
        // TODO: Implement doRezerv() method.

    }

    function removeRezerv(int $id): int
    {
        // TODO: Implement removeRezerv() method.
    }

    function updateLimits(HeaderLimits $limits)
    {
        // TODO: Implement updateLimits() method.
    }

    private function getCost(){

    }
}