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

namespace Kufer\Web\KuferTools\Hausmeister\Raumbelegung\KursDetails;

class HmKursDetailsUseCase extends \Kufer\Web\KuferTools\Basis\Kursdetails\KursDetailsUseCase
{
  public function __construct($request, $response = null)
  {
    parent::__construct($request, $response ?? new HmKursDetailsResponse());
  }

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

  public static function getToolSectionId()
  {
    return 341;
  }

  public function hasAccess($pToolsectionId = null)
  {
    if (\is_null($this->request->raumNr) || !\is_numeric($this->request->raumNr)) {
      return false;
    }

    if (!parent::hasAccess($pToolsectionId)) {
      return false;
    }

    return true;
  }

  protected function getKursHelper()
  {
    return new \Kufer\Web\KuferTools\Utils\DatamodulHelper\Kurse\HausmeisterKurseInRaum($this->toolSettings, $this->getUser(), $this->request->raumNr);
  }

  
  protected function getResponse($kurs, $user, $datumLetzterKurstag)
  {
    $this->response = parent::getResponse($kurs, $user, $datumLetzterKurstag);
    
    $this->response->raumNr = $this->request->raumNr;

    return $this->response;
  }

  protected function getButtons()
  {
    $buttonsObj = new \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\HmReiterButtons($this, $this->request, $this->response);

    return $buttonsObj->getButtons();
  }

  
  protected function setBenachbarteKnrsToResponse($kurs)
  {
    
  }

  protected function setTotalDatastr()
  {
    $allKursNrAry = array($this->request->knr);
    \SessionOperations::setVarValueWTIntern('totalkursdatastr_' . $this->getToolId(), implode(':', $allKursNrAry));
  }

  protected function getBackLink()
  {
    return 'index.php?tool_id=5&action=raumdetails&rnr=' . $this->request->raumNr;
  }

  protected function getBackButtonLabel()
  {
    return 'Zurück zu den Raumdetails';
  }

  protected function getReiterBeschriftung()
  {
    return isset($this->toolSettings->reiterBeschriftung_kurs) ? $this->toolSettings->reiterBeschriftung_kurs : '';
  }

  
  public function getAllowedKursnummern()
  {
    $kurshelper = $this->getKursHelper();

    return $kurshelper->getIdsOhneFilter();
  }
}

class HmKursDetailsResponse extends \Kufer\Web\KuferTools\Basis\Kursdetails\KursDetailsResponse
{
  public $raumNr;
}