<?php
session_start();
if (!isset($_SESSION['admin_id'])) {
    header('Location: login.php');
    exit;
}
require_once __DIR__ . '/../../config/db.php';
require_once __DIR__ . '/../../includes/helpers.php';

$database = new Database();
$db = $database->getConnection();

$message = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['action']) && $_POST['action'] === 'update_settings') {
        foreach ($_POST['settings'] as $key => $value) {
            $stmt = $db->prepare("UPDATE settings SET setting_value = :value WHERE setting_key = :key");
            $stmt->execute([':value' => $value, ':key' => $key]);
        }
        $message = 'Настройки успешно обновлены.';
    } elseif (isset($_POST['action']) && $_POST['action'] === 'change_password') {
        $oldPass = $_POST['old_password'] ?? '';
        $newPass = $_POST['new_password'] ?? '';
        $confirmPass = $_POST['confirm_password'] ?? '';

        $stmt = $db->prepare("SELECT password_hash FROM users WHERE id = :id LIMIT 1");
        $stmt->execute([':id' => $_SESSION['admin_id']]);
        $user = $stmt->fetch(PDO::FETCH_ASSOC);

        if (!$user || !password_verify($oldPass, $user['password_hash'])) {
            $message = 'Ошибка: Старый пароль неверен.';
        } elseif ($newPass !== $confirmPass) {
            $message = 'Ошибка: Новые пароли не совпадают.';
        } elseif (strlen($newPass) < 6) {
            $message = 'Ошибка: Пароль должен быть не менее 6 символов.';
        } else {
            $newHash = password_hash($newPass, PASSWORD_BCRYPT);
            $stmt = $db->prepare("UPDATE users SET password_hash = :hash WHERE id = :id");
            $stmt->execute([':hash' => $newHash, ':id' => $_SESSION['admin_id']]);
            $message = 'Пароль успешно изменен.';
        }
    }
}

$settings = $db->query("SELECT * FROM settings")->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Site Settings - Admin</title>
    <link rel="stylesheet" href="css/admin.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <div class="sidebar">
        <div class="sidebar-header">MYRIADONICA</div>
        <a href="index.php" class="nav-item"><i class="fas fa-home"></i> Панель</a>
        <a href="schedule.php" class="nav-item"><i class="fas fa-calendar-alt"></i> Расписание</a>
        <a href="cdn.php" class="nav-item"><i class="fas fa-server"></i> CDN Серверы</a>
        <a href="info_blocks.php" class="nav-item"><i class="fas fa-info-circle"></i> Инфо-блоки</a>
        <a href="settings.php" class="nav-item active"><i class="fas fa-cog"></i> Настройки</a>
        <a href="telegram.php" class="nav-item"><i class="fab fa-telegram"></i> Телеграм</a>
        <a href="database.php" class="nav-item"><i class="fas fa-database"></i> База данных</a>
        <a href="logout.php" class="nav-item" style="margin-top: auto;"><i class="fas fa-sign-out-alt"></i> Выход</a>
    </div>

    <div class="main-content">
        <div class="header">
            <h1>Настройки сайта</h1>
        </div>

        <?php if ($message): ?>
            <div class="card" style="color: <?php echo strpos($message, 'Ошибка') !== false ? 'var(--error-color)' : 'var(--secondary-color)'; ?>; font-weight: bold;">
                <?php echo $message; ?>
            </div>
        <?php endif; ?>

        <div class="card">
            <form method="POST">
                <input type="hidden" name="action" value="update_settings">
                <?php 
                $settingNames = [
                    'site_bg_color' => 'Цвет фона сайта',
                    'site_text_color' => 'Цвет текста сайта',
                    'snow_effect' => 'Эффект снега',
                    'telegram_bot_token' => 'Токен Telegram бота',
                    'active_cdn_id' => 'Активный CDN сервер (для всех трансляций)'
                ];
                foreach ($settings as $s): 
                    $label = $settingNames[$s['setting_key']] ?? $s['setting_key'];
                ?>
                    <div class="form-group">
                        <label><?php echo $label; ?></label>
                        <?php if (strpos($s['setting_key'], 'color') !== false): ?>
                            <input type="color" name="settings[<?php echo $s['setting_key']; ?>]" value="<?php echo htmlspecialchars($s['setting_value']); ?>" style="height: 50px;">
                        <?php elseif ($s['setting_key'] === 'snow_effect'): ?>
                            <select name="settings[<?php echo $s['setting_key']; ?>]">
                                <option value="1" <?php echo $s['setting_value'] == '1' ? 'selected' : ''; ?>>Включен</option>
                                <option value="0" <?php echo $s['setting_value'] == '0' ? 'selected' : ''; ?>>Выключен</option>
                            </select>
                        <?php elseif ($s['setting_key'] === 'active_cdn_id'): ?>
                            <?php $cdnLinks = $db->query("SELECT * FROM cdn_links ORDER BY name ASC")->fetchAll(PDO::FETCH_ASSOC); ?>
                            <select name="settings[<?php echo $s['setting_key']; ?>]">
                                <option value="">Выберите активный CDN</option>
                                <?php foreach ($cdnLinks as $cdn): ?>
                                    <option value="<?php echo $cdn['id']; ?>" <?php echo $s['setting_value'] == $cdn['id'] ? 'selected' : ''; ?>>
                                        <?php echo htmlspecialchars($cdn['name']); ?> (<?php echo htmlspecialchars($cdn['url']); ?>)
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        <?php else: ?>
                            <input type="text" name="settings[<?php echo $s['setting_key']; ?>]" value="<?php echo htmlspecialchars($s['setting_value']); ?>">
                        <?php endif; ?>
                    </div>
                <?php endforeach; ?>
                <button type="submit" class="btn btn-primary">Сохранить настройки</button>
            </form>
        </div>

        <div class="header" style="margin-top: 40px;">
            <h1>Безопасность</h1>
        </div>
        <div class="card">
            <h3>Смена пароля администратора</h3>
            <form method="POST">
                <input type="hidden" name="action" value="change_password">
                <div class="form-group">
                    <label>Старый пароль</label>
                    <input type="password" name="old_password" required>
                </div>
                <div class="form-group">
                    <label>Новый пароль</label>
                    <input type="password" name="new_password" required minlength="6">
                </div>
                <div class="form-group">
                    <label>Подтвердите новый пароль</label>
                    <input type="password" name="confirm_password" required minlength="6">
                </div>
                <button type="submit" class="btn btn-primary" style="background-color: var(--accent-color);">Изменить пароль</button>
            </form>
        </div>
    </div>
</body>
</html>
