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

namespace Kufer\KuferTools\Mitarbeiter\KursUebersicht\Detailsreiter\Teilnehmer\Mitveranstalter;

class TeilnehmerUseCase extends \Kufer\KuferTools\Basis\UseCase\EinzelKursUseCase
{
  private $mitveranstalterApi;

  public function __construct($requestObj)
  {
    parent::__construct($requestObj, new TeilnehmerUseCaseResponse());
    $this->mitveranstalterApi = new \MitveranstalterAPI();
  }

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

  public static function getToolSectionId()
  {
    return 242;
  }

  protected function getMainReiterId()
  {
    return 377;
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess()) {
      return false;
    }
    if (!$this->isRechtAllowed($this->getMainReiterId() . '.1.4')) {
      return false;
    }

    return true;
  }

  public static function istKursEineGrossveranstaltung($knr)
  {
    $dbwKurse = new \DBWorkKurse(1, true);
    $kurs = $dbwKurse->getKurs($knr);

    return $kurs->kursauswahl16 == 'W';
  }

  public function action()
  {
    $groupByDummy = $this->mitveranstalterApi->getBelegungenCount4MitveranstalterGrouped($this->request->knr);

    return $this->getResponse($groupByDummy);
  }

  private function getResponse($groupByDummy)
  {
    $this->response->anzahlMaennlichInnsbruck = $groupByDummy[\MitveranstalterAPI::MAENNLICH_INNSBRUCK];
    $this->response->anzahlMaennlichAuswaerts = $groupByDummy[\MitveranstalterAPI::MAENNLICH_AUSWAERTS];
    $this->response->anzahlWeiblichInnsbruck = $groupByDummy[\MitveranstalterAPI::WEIBLICH_INNSBRUCK];
    $this->response->anzahlWeiblichAuswaerts = $groupByDummy[\MitveranstalterAPI::WEIBLICH_AUSWAERTS];
    $this->response->knr = $this->request->knr;

    return $this->response;
  }
}

class TeilnehmerUseCaseRequest
{
  public $knr;
}

class TeilnehmerUseCaseResponse
{
  public $knr;
  public $anzahlMaennlichInnsbruck;
  public $anzahlMaennlichAuswaerts;
  public $anzahlWeiblichInnsbruck;
  public $anzahlWeiblichAuswaerts;
}