<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\KuferTools\Teilnehmer\BayerischerApothekertag\Detailsreiter\Termine;

class TermineUseCase extends \Kufer\KuferTools\Basis\Kursdetails\DetailsReiter\Termine\TermineUseCase
{
  private $apotag;

  public function __construct($request)
  {
    parent::__construct($request);
    $this->apotag = new \Kufer\KuferTools\Teilnehmer\BayerischerApothekertag\Utils\Apothekertag();
  }

  public function getAllowedKursnummern()
  {
    return $this->apotag->getAlleIds();
  }

  public static function getToolId()
  {
    return \ToolsAPI::TOOL_ANMELDUNGBUCHEN_TN;
  }

  public static function getToolSectionId()
  {
    return 96;
  }

  protected function getMainReiterId()
  {
    return 337;
  }

  protected function getDatamodulHelper($kurs): \Kufer\KuferTools\Utils\DatamodulHelper\KursTageHelper\KurstageZuKurs
  {
    return new \Kufer\KuferTools\Utils\DatamodulHelper\KursTageHelper\TnKurstageZuKurs($this->toolSettings, $this->getUser(), $this->request, $kurs, null);
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!\Kufer\KuferTools\Basis\UseCase\EinzelKursUseCase::hasAccess(337)) {
      return false;
    }
    if (!$this->isRechtAllowed($this->getMainReiterId() . '.1.3')) {
      return false;
    }

    return true;
  }

  protected function getButtons()
  {
    $buttonsObj = new \Kufer\KuferTools\Basis\Kursdetails\DetailsReiter\TnTermineReiterButtons($this, $this->request, $this->response);
    $buttonsArray = $buttonsObj->getButtons();
    $selectionDependentButtons = array('Terminplan');
    $this->response->markierenButtons = $this->markierenButtonNotwendig($buttonsArray, $selectionDependentButtons);

    return $buttonsArray;
  }
}