<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $host = $_POST['db_host'] ?? 'localhost';
    $name = $_POST['db_name'] ?? 'chat';
    $user = $_POST['db_user'] ?? 'root';
    $pass = $_POST['db_pass'] ?? '';

    $adminUser = trim($_POST['admin_user']);
    $adminPass = trim($_POST['admin_pass']);
    $installLang = $_POST['install_lang'] ?? 'en';
    $_SESSION['lang'] = $installLang; // Использовать для немедленной обратной связи установщика, если нужно

    if (empty($adminUser) || empty($adminPass)) {
        $error = "Admin credentials required.";
    } else {
        try {
            // 1. Проверка соединения
            $pdo = new PDO("mysql:host=$host;charset=utf8mb4", $user, $pass);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            // 2. Создание БД, если не существует
            $pdo->exec("CREATE DATABASE IF NOT EXISTS `$name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
            $pdo->exec("USE `$name`");

            // 3. Создание таблиц
            // Пользователи
            $pdo->exec("CREATE TABLE IF NOT EXISTS users (
                id INT AUTO_INCREMENT PRIMARY KEY,
                username VARCHAR(50) NOT NULL UNIQUE,
                password VARCHAR(255) NOT NULL,
                role ENUM('user', 'admin', 'bot') DEFAULT 'user',
                email VARCHAR(100) NULL,
                avatar VARCHAR(255) NULL,
                status ENUM('active', 'blocked') DEFAULT 'active',
                last_seen TIMESTAMP NULL,
            last_typing TIMESTAMP NULL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;");


            // Комнаты
            $pdo->exec("CREATE TABLE IF NOT EXISTS rooms (
                id INT AUTO_INCREMENT PRIMARY KEY,
                name VARCHAR(50) NOT NULL,
                created_by INT NULL,
                bot_active BOOLEAN DEFAULT false,
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
            )");
            // Обеспечить наличие Общей комнаты
            $pdo->exec("INSERT IGNORE INTO rooms (id, name, bot_active) VALUES (1, 'General', 0)");

            // Сообщения
            $pdo->exec("CREATE TABLE IF NOT EXISTS messages (
                id INT AUTO_INCREMENT PRIMARY KEY,
                user_id INT NOT NULL,
                room_id INT DEFAULT 1,
                content TEXT,
                type ENUM('text', 'voice', 'image', 'system') DEFAULT 'text',
                reply_to INT NULL,
                is_deleted TINYINT DEFAULT 0,
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
            )");

            // Настройки
            $pdo->exec("CREATE TABLE IF NOT EXISTS settings (
                name VARCHAR(50) PRIMARY KEY,
                value TEXT
            )");
            $pdo->exec("INSERT IGNORE INTO settings (name, value) VALUES 
                ('site_title', 'ChatApp'), 
                ('favicon', 'assets/logo.png'),
                ('footer_text', 'by ANUS_TANGA'),
                ('default_lang', '$installLang'),
                ('enable_voice', '1'),
                ('enable_video', '1')");


            // 4. Создание пользователя администратора
            $stmt = $pdo->prepare("SELECT id FROM users WHERE username = ?");
            $stmt->execute([$adminUser]);
            if (!$stmt->fetch()) {
                $hash = password_hash($adminPass, PASSWORD_DEFAULT);
                $stmt = $pdo->prepare("INSERT INTO users (username, password, role) VALUES (?, ?, 'admin')");
                $stmt->execute([$adminUser, $hash]);
            } else {
                // Определить, нужно ли обновлять роль? Просто оставить проверки.
                $pdo->prepare("UPDATE users SET role='admin' WHERE username=?")->execute([$adminUser]);
            }

            // 5. Пользователь Бот
            $pdo->exec("INSERT IGNORE INTO users (username, password, role, avatar) VALUES ('ChatBot', '', 'bot', 'assets/default_avatar.png')");

            // 6. Запись config.php
            $confContent = "<?php
\$db_host = '$host';
\$db_name = '$name';
\$db_user = '$user';
\$db_pass = '$pass';
?>";
            file_put_contents('config.php', $confContent);

            // Показать страницу успеха вместо немедленного перенаправления
            $success = true;
        } catch (PDOException $e) {
            $error = "Database Error: " . $e->getMessage();
        }
    }
}
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ANUS_TANGA Chat • Installation</title>
    <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
    <style>
        :root {
            --primary: #0a84ff;
            --primary-glow: rgba(10, 132, 255, 0.4);
            --bg: #030405;
            --card-bg: rgba(18, 20, 23, 0.7);
            --border: rgba(255, 255, 255, 0.08);
            --text: #ffffff;
            --text-dim: #949a9f;
            --input-bg: rgba(255, 255, 255, 0.03);
            --success: #32d74b;
            --error: #ff453a;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            background-color: var(--bg);
            background-image:
                radial-gradient(circle at 20% 20%, rgba(10, 132, 255, 0.15) 0%, transparent 40%),
                radial-gradient(circle at 80% 80%, rgba(50, 215, 75, 0.1) 0%, transparent 40%);
            color: var(--text);
            font-family: 'Outfit', sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            overflow-x: hidden;
        }

        body::before {
            content: '';
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: url('https://www.transparenttextures.com/patterns/carbon-fibre.png');
            opacity: 0.05;
            pointer-events: none;
        }

        .main-container {
            width: 100%;
            max-width: 420px;
            padding: 15px;
            animation: fadeIn 0.8s ease-out;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .install-box {
            background: var(--card-bg);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            padding: 30px;
            border-radius: 28px;
            border: 1px solid var(--border);
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
            position: relative;
            overflow: hidden;
        }

        .install-box::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 4px;
            background: linear-gradient(90deg, var(--primary), var(--success));
            opacity: 0.8;
        }

        h1,
        h2 {
            text-align: center;
            font-weight: 800;
            font-size: 1.6rem;
            margin-bottom: 25px;
            letter-spacing: -0.5px;
            background: linear-gradient(135deg, #fff 0%, #b0b0b0 100%);
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .lang-selector {
            display: flex;
            justify-content: center;
            gap: 10px;
            margin-bottom: 25px;
            background: rgba(255, 255, 255, 0.03);
            padding: 6px;
            border-radius: 100px;
            border: 1px solid var(--border);
            width: fit-content;
            margin-left: auto;
            margin-right: auto;
        }

        .lang-selector a {
            color: var(--text-dim);
            text-decoration: none;
            font-weight: 600;
            font-size: 0.75rem;
            padding: 6px 14px;
            border-radius: 100px;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            letter-spacing: 0.5px;
        }

        .lang-selector a.active {
            background: var(--primary);
            color: #fff;
            box-shadow: 0 4px 12px var(--primary-glow);
        }

        .lang-selector a:not(.active):hover {
            color: #fff;
            background: rgba(255, 255, 255, 0.05);
        }

        .form-group {
            margin-bottom: 16px;
            position: relative;
        }

        label {
            display: block;
            font-size: 0.8rem;
            font-weight: 600;
            color: var(--text-dim);
            margin-bottom: 6px;
            margin-left: 4px;
            transition: color 0.3s;
        }

        .input-wrapper {
            position: relative;
        }

        .input-wrapper i {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-dim);
            font-size: 1.1rem;
            transition: color 0.3s;
        }

        input {
            width: 100%;
            background: var(--input-bg);
            border: 1px solid var(--border);
            color: var(--text);
            padding: 11px 15px;
            border-radius: 14px;
            font-family: inherit;
            font-size: 0.95rem;
            transition: all 0.3s;
            outline: none;
        }

        input:focus {
            border-color: var(--primary);
            background: rgba(255, 255, 255, 0.06);
            box-shadow: 0 0 0 4px var(--primary-glow);
        }

        input:focus+label {
            color: var(--primary);
        }

        hr {
            border: 0;
            border-top: 1px solid var(--border);
            margin: 25px 0;
            position: relative;
        }

        hr::after {
            content: 'ADMIN';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: #1a1c1e;
            padding: 0 15px;
            font-size: 0.65rem;
            font-weight: 800;
            letter-spacing: 2px;
            color: var(--text-dim);
        }

        button {
            width: 100%;
            padding: 14px;
            background: var(--primary);
            background: linear-gradient(135deg, #0a84ff 0%, #0056b3 100%);
            border: none;
            color: #fff;
            border-radius: 16px;
            font-weight: 700;
            font-size: 1rem;
            cursor: pointer;
            transition: all 0.3s;
            margin-top: 5px;
            box-shadow: 0 8px 16px -5px var(--primary-glow);
        }

        button:hover {
            transform: translateY(-2px);
            box-shadow: 0 15px 30px -5px var(--primary-glow);
            filter: brightness(1.1);
        }

        button:active {
            transform: translateY(0);
        }

        .error-msg {
            background: rgba(255, 69, 58, 0.1);
            color: var(--error);
            padding: 16px;
            border-radius: 16px;
            margin-bottom: 25px;
            border: 1px solid rgba(255, 69, 58, 0.2);
            font-size: 0.9rem;
            font-weight: 500;
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .success-card {
            text-align: center;
        }

        .success-icon {
            font-size: 4rem;
            margin-bottom: 20px;
            display: block;
        }

        .security-banner {
            background: rgba(255, 193, 7, 0.08);
            border: 1px dashed #ffc107;
            border-radius: 20px;
            padding: 24px;
            margin: 30px 0;
            text-align: left;
        }

        .next-steps {
            background: rgba(255, 255, 255, 0.03);
            border-radius: 20px;
            padding: 24px;
            margin-bottom: 30px;
            text-align: left;
        }

        .next-steps ol {
            padding-left: 20px;
            margin-top: 12px;
        }

        .next-steps li {
            margin-bottom: 8px;
            color: var(--text-dim);
            font-size: 0.9rem;
        }

        code {
            background: rgba(255, 69, 58, 0.1);
            color: var(--error);
            padding: 4px 8px;
            border-radius: 6px;
            font-family: monospace;
            font-weight: 600;
        }

        .btn-success {
            background: linear-gradient(135deg, #32d74b 0%, #248a3d 100%);
            box-shadow: 0 10px 20px -5px rgba(50, 215, 75, 0.3);
        }

        .footer {
            text-align: center;
            margin-top: 40px;
            font-size: 0.8rem;
            color: var(--text-dim);
            opacity: 0.6;
            letter-spacing: 0.5px;
        }

        .footer b {
            color: #fff;
            font-weight: 700;
        }

        @media (max-width: 480px) {
            .install-box {
                padding: 30px 20px;
                border-radius: 24px;
            }

            h1,
            h2 {
                font-size: 1.8rem;
            }
        }
    </style>
</head>

<body>

    <div class="main-container">
        <div class="install-box">
            <?php if (isset($success) && $success): ?>
                <?php
                $successLabels = [
                    'en' => [
                        'title' => 'Installation Complete!',
                        'congrats' => 'Your premium chat application is ready.',
                        'warning_title' => 'SECURITY WARNING',
                        'warning_text' => 'You MUST immediately delete <code>install.php</code> from your server.',
                        'warning_reason' => 'Leaving this file accessible is a critical security risk.',
                        'steps_title' => 'Final Steps:',
                        'step1' => 'Remove <code>install.php</code>',
                        'step2' => 'Access your platform below',
                        'btn' => 'ENTER APPLICATION'
                    ],
                    'uk' => [
                        'title' => 'Встановлення Завершено!',
                        'congrats' => 'Ваш преміум чат-додаток готовий до роботи.',
                        'warning_title' => 'ПОПЕРЕДЖЕННЯ БЕЗПЕКИ',
                        'warning_text' => 'Ви ПОВИННІ негайно видалити <code>install.php</code> зі свого сервера.',
                        'warning_reason' => 'Залишення цього файлу є серйозним ризиком для безпеки.',
                        'steps_title' => 'Останні кроки:',
                        'step1' => 'Видаліть <code>install.php</code>',
                        'step2' => 'Увійдіть у додаток',
                        'btn' => 'УВІЙТИ В ДОДАТОК'
                    ],
                    'ru' => [
                        'title' => 'Установка Завершена!',
                        'congrats' => 'Ваше премиум чат-приложение готово к работе.',
                        'warning_title' => 'ПРЕДУПРЕЖДЕНИЕ БЕЗОПАСНОСТИ',
                        'warning_text' => 'Вы ДОЛЖНЫ немедленно удалить <code>install.php</code> со своего сервера.',
                        'warning_reason' => 'Оставление этого файла является серьезным риском для безопасности.',
                        'steps_title' => 'Последние шаги:',
                        'step1' => 'Удалите <code>install.php</code>',
                        'step2' => 'Войдите в приложение',
                        'btn' => 'ВОЙТИ В ПРИЛОЖЕНИЕ'
                    ]
                ];
                $sLang = $_POST['install_lang'] ?? 'en';
                if (!isset($successLabels[$sLang])) $sLang = 'en';
                $s = $successLabels[$sLang];
                ?>

                <div class="success-card">
                    <span class="success-icon">💎</span>
                    <h2><?php echo $s['title']; ?></h2>
                    <p style="color: var(--text-dim); margin-bottom: 20px;"><?php echo $s['congrats']; ?></p>

                    <div class="security-banner">
                        <h3 style="color: #ffc107; font-size: 0.9rem; display: flex; align-items: center; gap: 8px; margin-bottom: 12px;">
                            <span>⚠️</span> <?php echo $s['warning_title']; ?>
                        </h3>
                        <p style="font-size: 0.95rem; margin-bottom: 10px;"><?php echo $s['warning_text']; ?></p>
                        <p style="font-size: 0.8rem; color: #aaa;"><?php echo $s['warning_reason']; ?></p>
                    </div>

                    <div class="next-steps">
                        <h4 style="font-size: 0.9rem; color: var(--primary);"><?php echo $s['steps_title']; ?></h4>
                        <ol>
                            <li><?php echo $s['step1']; ?></li>
                            <li><?php echo $s['step2']; ?></li>
                        </ol>
                    </div>

                    <a href="index.php" style="text-decoration: none;">
                        <button class="btn-success"><?php echo $s['btn']; ?> &nbsp;→</button>
                    </a>
                </div>

        </div>
    <?php else: ?>
        <!-- Форма установки -->
        <?php
                $iLang = $_GET['lang'] ?? 'en';
                $labels = [
                    'en' => ['title' => 'Installation', 'host' => 'Database Host', 'name' => 'Database Name', 'user' => 'DB Username', 'pass' => 'DB Password', 'admin' => 'Admin Login', 'admin_pass' => 'Admin Password', 'btn' => 'Install & Launch System'],
                    'uk' => ['title' => 'Встановлення', 'host' => 'Хост Бази Даних', 'name' => 'Назва Бази Даних', 'user' => 'Користувач БД', 'pass' => 'Пароль БД', 'admin' => 'Логін Адміна', 'admin_pass' => 'Пароль Адміна', 'btn' => 'Встановити та Запустити'],
                    'ru' => ['title' => 'Установка', 'host' => 'Хост Базы Данных', 'name' => 'Имя Базы Данных', 'user' => 'Пользователь БД', 'pass' => 'Пароль БД', 'admin' => 'Логин Админа', 'admin_pass' => 'Пароль Админа', 'btn' => 'Установить и Запустить']
                ];
                if (!isset($labels[$iLang])) $iLang = 'en';
                $l = $labels[$iLang];
        ?>

        <h2><?php echo $l['title']; ?></h2>

        <div class="lang-selector">
            <a href="?lang=en" class="<?php echo $iLang == 'en' ? 'active' : ''; ?>">EN</a>
            <a href="?lang=uk" class="<?php echo $iLang == 'uk' ? 'active' : ''; ?>">UA</a>
            <a href="?lang=ru" class="<?php echo $iLang == 'ru' ? 'active' : ''; ?>">RU</a>
        </div>

        <?php if (isset($error)): ?>
            <div class="error-msg">
                <span>❌</span> <?php echo $error; ?>
            </div>
        <?php endif; ?>

        <form method="POST">
            <input type="hidden" name="install_lang" value="<?php echo $iLang; ?>">

            <div class="form-group">
                <label><?php echo $l['host']; ?></label>
                <input type="text" name="db_host" value="localhost" placeholder="e.g. localhost">
            </div>

            <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px;">
                <div class="form-group">
                    <label><?php echo $l['name']; ?></label>
                    <input type="text" name="db_name" value="chat" placeholder="database_name">
                </div>

                <div class="form-group">
                    <label><?php echo $l['user']; ?></label>
                    <input type="text" name="db_user" value="root" placeholder="username">
                </div>
            </div>

            <div class="form-group">
                <label><?php echo $l['pass']; ?></label>
                <input type="password" name="db_pass" placeholder="••••••••">
            </div>

            <hr>

            <div class="form-group">
                <label><?php echo $l['admin']; ?></label>
                <input type="text" name="admin_user" placeholder="admin_login" required>
            </div>

            <div class="form-group">
                <label><?php echo $l['admin_pass']; ?></label>
                <input type="password" name="admin_pass" placeholder="••••••••" required>
            </div>

            <button type="submit"><?php echo $l['btn']; ?></button>
        </form>
    <?php endif; ?>
    </div>

    <div class="footer">
        &copy; <?php echo date('Y'); ?> <b>Chat Platform</b> &bull; Managed by ANUS_TANGA
    </div>
    </div>

</body>

</html>