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

use Kufer\Admin\Classes\Settings\Helper\Tools\LinkHelper;

$sortId = 7;
$toolId = \ToolsAPI::TOOL_KURSPLANUNG_DOZ;
$objsettings = ToolSettingsAPI::getToolSettings($toolId);
$settingsArray = array();

$settingsArray[] = LinkHelper::createHardlinkSettingItemToWssField(11, $toolId);

$setting = new Setting();
$setting->name = 'kurse_hl_aussenstelle';
$setting->description = 'Für das Feld Außenstelle den Hinterlegungsbutton anzeigen';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurse_hl_dauer';
$setting->description = 'Für das Feld Dauer den Hinterlegungsbutton anzeigen';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurse_hl_raum';
$setting->description = 'Für das Feld Kursort';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->help = 'den Hinterlegungsbutton zu den Räumen anzeigen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurse_kursort_feld_readonly';
$setting->description = 'Für das Feld Kursort';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->help = 'Nicht frei bearbeitbar anzeigen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurse_kursort_einschraenkung_aussenstelle';
$setting->description = 'Für das Feld Kursort';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->help = 'Die auswählbaren Kursorte auf die ausgewählte Außenstelle begrenzen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurse_hl_beginn';
$setting->description = 'Für das Feld Beginn-Uhrzeit den Hinterlegungsbutton für die Uhrzeit anzeigen';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurse_hl_ende';
$setting->description = 'Für das Feld Ende-Uhrzeit bis den Hinterlegungsbutton für die Uhrzeit anzeigen';
$setting->subGroup = 'Einstellungen für das Bearbeiten von Kursen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

array_push(
  $settingsArray,
  ...\Kufer\Web\Admin\Classes\Settings\Helper\Tools\DozKursplanungHelper::createSettingsBearbeitenEmailBenachrichtigung($toolId)
);

$subGroup = 'Kurs in Planung oder Kurs bearbeiten';

$kursstatusItems = (new \Kufer\Web\Classes\Stream\ArrayStream(\DBWorkHLKursstatus::getDefaultInstance()->getAll()))
  ->map(static function(\HLKursstatus $kursstatus): \Kufer\Web\Classes\Addfunctions\Pair {
    switch ($kursstatus->wert) {
      case ' ':
        $wert = '-';
        break;
      default:
        $wert = $kursstatus->wert;
        break;
    }

    return new \Kufer\Web\Classes\Addfunctions\Pair($wert, \CleanOperations::cleanStringForHtml($kursstatus->langtext));
  })
  ->toKeyValueArrayFromPairs();

$kursstatusItemsOhneAusfall = $kursstatusItems;
$kursstatusItems['AUSFALL'] = 'ausgefallen';

$setting = new Setting();
$setting->name = 'kursstatusKursIstBearbeitbar';
$setting->description = 'Kursstatus für Kurse, die bearbeitbar sind';
$setting->help = 'Wenn keine Option ausgewählt, wird diese Einstellung nicht beachtet.';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->separator = ',';
$setting->config->items = $kursstatusItems;

$settingsArray[] = $setting;

$setting = new Setting();
$setting->name = 'kursstatusKursIstNichtBearbeitbar';
$setting->description = 'Kursstatus für Kurse, die nicht bearbeitbar sind';
$setting->help = 'Wenn keine Option ausgewählt, wird diese Einstellung nicht beachtet.';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->separator = ',';
$setting->config->items = $kursstatusItems;

$settingsArray[] = $setting;

$setting = new Setting();
$setting->name = 'kursstatusKursInPlanung';
$setting->description = 'Kursstatus für Kurse die sich in Planung befinden';
$setting->help = 'Wenn keine Option ausgewählt, wird diese Einstellung nicht beachtet.';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->separator = ',';
$setting->config->items = $kursstatusItemsOhneAusfall;
$settingsArray[] = $setting;

$setting = new Setting();
$setting->name = 'kursstatusNachKursInPlanung';
$setting->description = 'Kursstatus den ein Kurs bekommen soll, wenn dieser fertig geplant wurde';
$setting->help = 'Wenn keine Option ausgewählt, kann ein Kurs in Planung nicht abgeben werden';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = $kursstatusItemsOhneAusfall;
$settingsArray[] = $setting;

unset($kursstatusItems, $kursstatusItemsOhneAusfall);

$subGroup = 'E-Mail-Benachrichtigungen bei Abgeben eines Kurses in Planung';

$setting = new \Setting();
$setting->description = '';
$setting->help = 'Wenn eine E-Mail an den planenden/verwaltenden/verantwortenden Mitarbeiter versendet werden soll '
  . 'und dies ist nicht möglich, dann wird die E-Mail an die Schulungseinrichtung versendet.';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INFOTEXT);
$settingsArray[] = $setting;

$setting = new \Setting();
$setting->name = 'kursplanungKursAbgebenMailAnPlanMa';
$setting->description = 'Benachrichtigung an den planenden Mitarbeiter des Kurses versenden';
$setting->help = '';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
$settingsArray[] = $setting;

$setting = new \Setting();
$setting->name = 'kursplanungKursAbgebenMailAnVerwMa';
$setting->description = 'Benachrichtigung an den verwaltenden Mitarbeiter des Kurses versenden';
$setting->help = '';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
$settingsArray[] = $setting;

$setting = new \Setting();
$setting->name = 'kursplanungKursAbgebenMailAnVerantwMa';
$setting->description = 'Benachrichtigung an den verantwortenden Mitarbeiter des Kurses versenden';
$setting->help = '';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
$settingsArray[] = $setting;

$setting = new \Setting();
$setting->name = 'kursplanungKursAbgebenMailAnEinrichtung';
$setting->description = 'Benachrichtigung an die Schulungseinrichtung versenden';
$setting->subGroup = $subGroup;
$setting->help = '';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
$settingsArray[] = $setting;