<?php
namespace App\Model\Entities\Interfaces;

use App\Model\Interfaces\IResource;
use App\Model\Interfaces\ISite;


interface INavItem
{
    /**
     * @return int
     */
    public function getId() : int;

    /**
     * @return string
     */
    public function getLabel() : string;

    /**
     * @param string $label
     */
    public function setLabel(string $label);

    /**
     * @return string
     */
    public function getIcon() : string;

    /**
     * @param string $icon
     */
    public function setIcon(string $icon);

    /**
     * @return int
     */
    public function getItemOrder() : int;

    /**
     * @param int $itemOrder
     */
    public function setItemOrder(int $itemOrder);

    /**
     * @return ISite
     */
    public function getSite() : ISite;

    /**
     * @param ISite $site
     */
    public function setSite(ISite $site);

    public function getLinkDestination() : string;

    public function getLinkParams() : array;

    public function getResource() : IResource;
}