<?php

namespace App\Service\DataGrid;

class DataGridNavigation implements DataGridNavigationInterface
{
    public static $default_rpp = 20;
    public static $default_page = 0;

    private $page;
    private $rpp;
    private $total;

    public function __construct(array $params)
    {
        $this->rpp = isset($params['rpp']) && is_numeric($params['rpp']) ? $params['rpp'] : static::$default_rpp;
        $this->page = isset($params['page']) && is_numeric($params['page']) ? $params['page'] : static::$default_page;
    }

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

    /**
     * @param int $page
     *
     * @return DataGridNavigation
     */
    public function setPage(int $page): self
    {
        $this->page = $page;

        return $this;
    }

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

    /**
     * @param int $rpp
     *
     * @return DataGridNavigation
     */
    public function setRpp(int $rpp): self
    {
        $this->rpp = $rpp;

        return $this;
    }

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

    /**
     * @param int $total
     *
     * @return DataGridNavigation
     */
    public function setTotal(int $total): self
    {
        $this->total = $total;

        return $this;
    }
}
