<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

namespace Kufer\Web\KuferTools\Veranstalter\DozentenInfo\Detailsreiter\Kurse;

class KurseUseCase extends \Kufer\Web\KuferTools\Basis\DozentenInfo\Detailsreiter\Kurse\KurseUseCase
{
  public static function getToolId()
  {
    return 55;
  }

  public static function getToolSectionId()
  {
    return 656;
  }

  protected function getMainReiterId()
  {
    return 654;
  }

  public function getToolIdKursUrl()
  {
    return \ToolsAPI::TOOL_KURSUEBERSICHT_ANDERER_VERANSTALTER_VA;
  }

  protected function getDozentenHelper()
  {
    return \Kufer\Web\KuferTools\Utils\DatamodulHelper\Dozenten\DozentenHelper::createVeranstalterDozentenUebersicht($this->toolSettings, $this->getUser());
  }

  protected function getKursHelper($dnr)
  {
    $tool54Settings = \ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_KURSUEBERSICHT_ANDERER_VERANSTALTER_VA);

    return new \Kufer\Web\KuferTools\Utils\DatamodulHelper\Kurse\DozentenKurse($tool54Settings, $this->getUser(), $dnr);
  }

  protected function getMitarbeiterKursHelper(): \Kufer\Web\KuferTools\Utils\DatamodulHelper\Kurse\KursHelper
  {
    $tool54Settings = \ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_KURSUEBERSICHT_ANDERER_VERANSTALTER_VA);

    return new \Kufer\Web\KuferTools\Utils\DatamodulHelper\Kurse\AlleKurse($tool54Settings, $this->getUser());
  }

  public function isMarkenAllowed()
  {
    $toolId = $this->getToolId();
    $showDrucklistenButton = $this->isRechtAllowed('654.0.3') && \ToolsAPI::rechteOR(array('660.0.2', '660.0.4', '660.0.6', '660.0.8'), $toolId);
    $showHonorarlistenButton = $this->isRechtAllowed('654.0.4') && \ToolsAPI::rechteOR(array('661.0.2', '661.0.4', '661.0.6', '661.0.8', '661.0.10', '661.0.12', '661.0.14'), $toolId);
    $showGrafikenButton = $this->isRechtAllowed('654.0.5') && \ToolsAPI::rechteOR(array('663.0.2', '663.0.4', '663.0.6', '663.0.8', '663.0.10', '663.0.12'), $toolId);
    $showVertraege = $this->isRechtAllowed('654.0.6') && \ToolsAPI::rechteOR(array('662.0.2', '662.0.4'), $toolId);
    $showTeilnehmerlistenButton = $this->isRechtAllowed('654.0.7') && \ToolsAPI::rechteOR(array('659.0.2', '659.0.4', '659.0.6', '659.0.8', '659.0.10'), $toolId);

    return $showDrucklistenButton || $showHonorarlistenButton || $showGrafikenButton || $showVertraege || $showTeilnehmerlistenButton;
  }

  protected function getReiterKurseButtons(): \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\ReiterButtons
  {
    return new \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\ToolDozinfoVaReiterKurseButtons($this, $this->request, $this->response);
  }
}