<?php
require_once __DIR__ . '/bootstrap.php';
Auth::requireLogin();
require_once __DIR__ . '/../modules/registry.php';

$flash = null;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    Auth::requireCsrf();
    $connectorKey = $_POST['connector'] ?? '';

    if ($connectorKey === 'haushaltsbuch') {
        saveConnectorConfig('haushaltsbuch', [
            'base_url' => rtrim(trim($_POST['hb_base_url'] ?? ''), '/'),
            'api_token' => trim($_POST['hb_api_token'] ?? ''),
        ]);
        $flash = 'Haushaltsbuch-Verbindung gespeichert.';
    } elseif ($connectorKey === 'server_status') {
        saveConnectorConfig('server_status', [
            'base_url' => rtrim(trim($_POST['ss_base_url'] ?? ''), '/'),
            'panel_token' => trim($_POST['ss_panel_token'] ?? ''),
        ]);
        $flash = 'Server-Status-Verbindung gespeichert.';
    } elseif ($connectorKey === 'ts3') {
        saveConnectorConfig('ts3', [
            'host' => trim($_POST['ts3_host'] ?? '127.0.0.1'),
            'query_port' => (int)($_POST['ts3_query_port'] ?? 10011),
            'query_user' => trim($_POST['ts3_query_user'] ?? 'serveradmin'),
            'query_pass' => trim($_POST['ts3_query_pass'] ?? ''),
            'sid' => (int)($_POST['ts3_sid'] ?? 1),
            'status_url' => rtrim(trim($_POST['ts3_status_url'] ?? ''), '/'),
        ]);
        $flash = 'TeamSpeak-Verbindung gespeichert.';
    }
}

$hbConfig = getConnectorConfig('haushaltsbuch');
$ssConfig = getConnectorConfig('server_status');
$ts3Config = getConnectorConfig('ts3');
$csrfToken = Auth::csrfToken();
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Verbindungen · Panel</title>
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<div class="shell" style="max-width:800px;">
  <div class="topbar" style="margin-bottom:1.25rem;">
    <div class="brand">
      <div class="brand-mark"><?= icon('grid') ?></div>
      <div><div class="brand-name">dehari.de Panel</div><div class="brand-sub">Verbindungen</div></div>
    </div>
    <a href="/dashboard.php" class="btn btn-sm"><?= icon('arrow-right') ?> Zum Dashboard</a>
  </div>

  <?php if ($flash): ?><div class="flash success"><?= e($flash) ?></div><?php endif; ?>

  <div class="card" style="margin-bottom:1rem;">
    <h3><?= icon('wallet') ?> Haushaltsbuch</h3>
    <p class="text-sm text-muted">Token erzeugst du in der Haushaltsbuch-Weboberfläche unter <em>API & Bot</em>.</p>
    <form method="post">
      <input type="hidden" name="csrf_token" value="<?= e($csrfToken) ?>">
      <input type="hidden" name="connector" value="haushaltsbuch">
      <div class="field"><label>Basis-URL</label><input type="text" name="hb_base_url" value="<?= e($hbConfig['base_url'] ?? 'https://dehari.de') ?>"></div>
      <div class="field"><label>API-Token</label><input type="text" name="hb_api_token" value="<?= e($hbConfig['api_token'] ?? '') ?>" placeholder="Bearer-Token"></div>
      <button type="submit" class="btn btn-primary btn-sm"><?= icon('check') ?> Speichern</button>
    </form>
  </div>

  <div class="card" style="margin-bottom:1rem;">
    <h3><?= icon('server') ?> Server-Status</h3>
    <p class="text-sm text-muted">Braucht den neuen <code>api/panel_stats.php</code>-Endpunkt (siehe README) plus einen selbst gewählten Token.</p>
    <form method="post">
      <input type="hidden" name="csrf_token" value="<?= e($csrfToken) ?>">
      <input type="hidden" name="connector" value="server_status">
      <div class="field"><label>Basis-URL</label><input type="text" name="ss_base_url" value="<?= e($ssConfig['base_url'] ?? 'https://dehari.de/status') ?>"></div>
      <div class="field"><label>Panel-Token</label><input type="text" name="ss_panel_token" value="<?= e($ssConfig['panel_token'] ?? '') ?>"></div>
      <button type="submit" class="btn btn-primary btn-sm"><?= icon('check') ?> Speichern</button>
    </form>
  </div>

  <div class="card">
    <h3><?= icon('headphones') ?> TeamSpeak</h3>
    <p class="text-sm text-muted">Dieselben ServerQuery-Zugangsdaten wie im TS3-Panel.</p>
    <form method="post">
      <input type="hidden" name="csrf_token" value="<?= e($csrfToken) ?>">
      <input type="hidden" name="connector" value="ts3">
      <div class="field-row">
        <div class="field"><label>Host</label><input type="text" name="ts3_host" value="<?= e($ts3Config['host'] ?? '127.0.0.1') ?>"></div>
        <div class="field"><label>Query-Port</label><input type="number" name="ts3_query_port" value="<?= e((string)($ts3Config['query_port'] ?? 10011)) ?>"></div>
      </div>
      <div class="field-row">
        <div class="field"><label>ServerQuery-Nutzer</label><input type="text" name="ts3_query_user" value="<?= e($ts3Config['query_user'] ?? 'serveradmin') ?>"></div>
        <div class="field"><label>ServerQuery-Passwort</label><input type="password" name="ts3_query_pass" value="<?= e($ts3Config['query_pass'] ?? '') ?>"></div>
      </div>
      <div class="field-row">
        <div class="field"><label>Virtual-Server-ID</label><input type="number" name="ts3_sid" value="<?= e((string)($ts3Config['sid'] ?? 1)) ?>"></div>
        <div class="field"><label>Status-Page-URL (Link auf Kachel)</label><input type="text" name="ts3_status_url" value="<?= e($ts3Config['status_url'] ?? 'https://dehari.de/ts3/status.php') ?>"></div>
      </div>
      <button type="submit" class="btn btn-primary btn-sm"><?= icon('check') ?> Speichern</button>
    </form>
  </div>
</div>
</body>
</html>
