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

namespace Kufer\Web\KuferTools\Teilnehmer\BayerischerApothekertagEhrengaeste\Detailsreiter\Downloads;

use Kufer\Web\KuferTools\Basis\UseCaseBuilder\SpecificToolSection;
use Kufer\Web\KuferTools\Basis\UseCaseBuilder\ToolSection;

class DownloadsUseCase extends \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\Downloads\DownloadsUseCase
{
  private $apotag;

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

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

  public static function getToolSectionId()
  {
    return 329;
  }

  public function hasAccess($pToolSectionId = null)
  {
    return $this->apotag->isBATKurs($this->request->knr);
  }

  public static function getColumns(\ToolSettings $toolSettings, ?int $toolSectionId = null): array
  {
    
    $wssInFiles = new \Kufer\Web\KuferTools\Utils\WssInFiles();

    return $wssInFiles->getWss(
      new SpecificToolSection(static::getToolId(), $toolSectionId ?? static::getToolSectionId()),
      $toolSettings,
      static::getToolSectionId()
    );
  }

  protected function getDownloads($kurs)
  {
    $dokumente = parent::getDownloads($kurs);
    $freigegebeneDokus = array();
    $docStatusKlasse = new \DokumentStatusTools();

    foreach ($dokumente as $doc) {
      $userStatus = $docStatusKlasse->berechneStatus($doc->knr);
      if ($doc->isFreigegeben($userStatus)) {
        $freigegebeneDokus[] = $doc;
      }
    }

    return $freigegebeneDokus;
  }
}