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

namespace Kufer\Web\KuferTools\Teilnehmer\BayerischerApothekertagStudenten\KursUebersicht;


class KursUebersichtUseCase extends \Kufer\Web\KuferTools\Basis\Uebersicht\UebersichtMitWssUseCase
{
  public $dbwKurse;
  private $apotag;

  public function __construct($request)
  {
    parent::__construct($request, new KursUebersichtResponse());
    $this->dbwKurse = new \DBWorkKurseWT(1, true);
    $this->apotag = new \Kufer\Web\KuferTools\Teilnehmer\BayerischerApothekertag\Utils\Apothekertag();
  }

  protected function vorAction()
  {
    \Kufer\Web\KuferTools\Utils\Referrer::resetReferrerInSession($this->getToolId());
  }

  public static function getToolSectionId()
  {
    return 563;
  }

  public static function getToolId()
  {
    return 48;
  }

  protected function getButtons()
  {
    $buttons = array();
    $buttons[] = array(new \Kufer\Web\KuferTools\Basis\Button\HtmlButton('Anmelden', 'bat_anmelden_studenten', 'index.php?tool_id=48&action=anmeldeformular', 'check', 'Anmelden', '', 'success'));

    return $buttons;
  }

  protected function checkboxNeeded()
  {
    return true;
  }

  protected function verlinkePanelHeaderAllowed()
  {
    return true;
  }

  protected function getUeberschrift()
  {
    return 'Herzlich willkommen zur Anmeldung für den Bayerischen Apothekertag 2024!';
  }

  protected function getFreitext()
  {
    return $this->apotag->getFreitext();
  }

  protected function getDisplayButtonsTop()
  {
    return false;
  }

  protected function getDisplayButtonsBottom()
  {
    return true;
  }

  
  protected function getDatamoduleProSeite()
  {
    return 200;
  }

  
  protected function getAlleIds()
  {
    return $this->apotag->getAlleIds(true);
  }

  
  protected function getResponse()
  {
    parent::getResponse();
    
    $this->response->datamodule = $this->response->kurse;
    $this->response->teilnehmer = $this->getTeilnehmer();

    return $this->response;
  }

  protected function getDatamodulOnCurrentPage()
  {
    return new \Kufer\Web\KuferTools\Utils\ResponseStrategies\ResponseKurseOnCurrentPage($this);
  }

  private function getDbwTeilnehmer()
  {
    static $cache = null;
    if (is_null($cache)) {
      $cache = new \DBWorkTeilnehmer(1, true);
    }

    return $cache;
  }

  private function getTeilnehmer()
  {
    $tnr = $this->getUser()->tnr;
    $dbwTn = $this->getDbwTeilnehmer();

    return $dbwTn->getTeilnehm($tnr);
  }
}

class KursUebersichtRequest extends \Kufer\Web\KuferTools\Basis\Uebersicht\UebersichtMitWssRequest
{
}

class KursUebersichtResponse extends \Kufer\Web\KuferTools\Basis\Uebersicht\UebersichtMitWssResponse
{
  public $kurse = array();
  public $teilnehmer;
}