<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $db_host = $_POST['db_host'];
    $db_user = $_POST['db_user'];
    $db_pass = $_POST['db_pass'];
    $db_name = $_POST['db_name'];
    $admin_user = $_POST['admin_user'];
    $admin_pass = password_hash($_POST['admin_pass'], PASSWORD_BCRYPT);

    $conn = new mysqli($db_host, $db_user, $db_pass);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    $sql = "CREATE DATABASE IF NOT EXISTS $db_name";
    if ($conn->query($sql) === TRUE) {
        $conn->select_db($db_name);

        $sql = "CREATE TABLE IF NOT EXISTS users (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            username VARCHAR(30) NOT NULL,
            password VARCHAR(255) NOT NULL
        )";

        if ($conn->query($sql) === TRUE) {
            $sql = "INSERT INTO users (username, password) VALUES ('$admin_user', '$admin_pass')";
            if ($conn->query($sql) === TRUE) {
                $sql = "CREATE TABLE IF NOT EXISTS posts (
                    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                    title VARCHAR(255) NOT NULL,
                    slug VARCHAR(255) NOT NULL UNIQUE,
                    content TEXT NOT NULL,
                    featured_image VARCHAR(255),
                    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
                )";

                if ($conn->query($sql) === TRUE) {
                    $sql = "CREATE TABLE IF NOT EXISTS settings (
                        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                        name VARCHAR(50) NOT NULL,
                        value TEXT NOT NULL
                    )";

                    if ($conn->query($sql) === TRUE) {
                        // Tambahkan data awal ke tabel settings
                        $conn->query("INSERT INTO settings (name, value) VALUES ('site_name', 'My CMS')");
                        $conn->query("INSERT INTO settings (name, value) VALUES ('footer_text', 'Footer text')");
                        $conn->query("INSERT INTO settings (name, value) VALUES ('logo', '')");
						$conn->query("INSERT INTO settings (name, value) VALUES ('copyright_text', '© 2024')");
						$conn->query("INSERT INTO settings (name, value) VALUES ('favicon', '')");

                        $config_content = "<?php\n\$db_host = '$db_host';\n\$db_user = '$db_user';\n\$db_pass = '$db_pass';\n\$db_name = '$db_name';\n";
                        file_put_contents('includes/config.php', $config_content);

                        rename('install.php', '.sudah_instal');
                        header('Location: admin/login.php');
                        exit;
                    } else {
                        echo "Error creating settings table: " . $conn->error;
                    }
                } else {
                    echo "Error creating posts table: " . $conn->error;
                }
            } else {
                echo "Error creating admin user: " . $conn->error;
            }
        } else {
            echo "Error creating table: " . $conn->error;
        }
    } else {
        echo "Error creating database: " . $conn->error;
    }

    $conn->close();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
    <title>Install CMS</title>
</head>
<body class="bg-gray-900 text-white">
    <div class="container mx-auto p-8">
        <h1 class="text-2xl mb-4">Install CMS</h1>
        <form method="POST">
            <div class="mb-4">
                <label class="block text-sm">Database Host</label>
                <input type="text" name="db_host" class="w-full p-2 bg-gray-800 text-white" required>
            </div>
            <div class="mb-4">
                <label class="block text-sm">Database User</label>
                <input type="text" name="db_user" class="w-full p-2 bg-gray-800 text-white" required>
            </div>
            <div class="mb-4">
                <label class="block text-sm">Database Password</label>
                <input type="password" name="db_pass" class="w-full p-2 bg-gray-800 text-white" required>
            </div>
            <div class="mb-4">
                <label class="block text-sm">Database Name</label>
                <input type="text" name="db_name" class="w-full p-2 bg-gray-800 text-white" required>
            </div>
            <div class="mb-4">
                <label class="block text-sm">Admin Username</label>
                <input type="text" name="admin_user" class="w-full p-2 bg-gray-800 text-white" required>
            </div>
            <div class="mb-4">
                <label class="block text-sm">Admin Password</label>
                <input type="password" name="admin_pass" class="w-full p-2 bg-gray-800 text-white" required>
            </div>
            <button type="submit" class="bg-blue-500 p-2 rounded">Install</button>
        </form>
    </div>
</body>
</html>
