<?php
// Linha 2 corrigida: usando __DIR__ para garantir o caminho absoluto e exato do banco SQLite
$db = new SQLite3(__DIR__ . "/api/.ansdb.db");

// Verifica se o ID foi passado para evitar erro de índice indefinido
$id = isset($_GET['update']) ? $_GET['update'] : 0;

// Busca os dados atuais do tema
$stmt_fetch = $db->prepare("SELECT * FROM theme WHERE id = :id");
$stmt_fetch->bindValue(':id', $id);
$res = $stmt_fetch->execute();
$row = $res->fetchArray();

// Função para detectar a URL base do servidor
function getBaseUrl() {
    // Detecta o protocolo (http ou https)
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
    
    // Pega o domínio (testes.painelmaster.lol)
    $host = $_SERVER['HTTP_HOST'];
    
    // Pega o caminho da pasta onde o script está rodando
    // Isso resolve o problema de estar em subpasta ou subdomínio
    $currentPath = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
    
    // Retorna a URL completa
    return $protocol . $host . $currentPath;
}

function uploadImage($file) {
    // Verifica se o arquivo existe e se não houve erro no upload (erro 4 = nenhum arquivo)
    if (!isset($file['error']) || $file['error'] !== 0) return null;

    $allowed = ['image/png', 'image/jpeg'];
    if (!isset($file['type']) || !in_array($file['type'], $allowed)) return null;

    $ext = pathinfo($file['name'], PATHINFO_EXTENSION);
    $name = uniqid() . "." . $ext;

    $dir = "uploads/themes/";
    if (!is_dir($dir)) mkdir($dir, 0755, true);

    $path = $dir . $name;

    if (move_uploaded_file($file['tmp_name'], $path)) {
        // Retorna a URL completa
        return getBaseUrl() . $path;
    }
    
    return null;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $name = isset($_POST['name']) ? $_POST['name'] : '';
    $bg   = isset($_FILES['background']) ? uploadImage($_FILES['background']) : null;
    $logo = isset($_FILES['logo']) ? uploadImage($_FILES['logo']) : null;

    // Monta a query dinamicamente
    $sql = "UPDATE theme SET name = :name";

    if ($bg)   $sql .= ", url = :bg";
    if ($logo) $sql .= ", logo_url = :logo";

    $sql .= " WHERE id = :id";

    $stmt = $db->prepare($sql);
    $stmt->bindValue(':name', $name);
    $stmt->bindValue(':id', $id);

    if ($bg)   $stmt->bindValue(':bg', $bg);
    if ($logo) $stmt->bindValue(':logo', $logo);

    $stmt->execute();

    header("Location: theme.php");
    exit();
}
?>
<?php include "includes/header.php"; ?>
<style>
     html { scrollbar-width: thin; scrollbar-color: #00a8e1 #1a2a33; }
        /* Chrome, Edge e Safari */
        ::-webkit-scrollbar { width: 8px; height: 8px; }
        ::-webkit-scrollbar-track { background: #1a2a33; border-radius: 10px; }
        ::-webkit-scrollbar-thumb { background: #00a8e1; border-radius: 10px; }
        ::-webkit-scrollbar-thumb:hover { background: #0080b3; }
</style>
<div class="container mt-4">
    <h3>Editar Tema</h3>

    <form method="POST" enctype="multipart/form-data">
        <div class="mb-3">
            <label class="form-label">Nome do Tema</label>
            <input class="form-control" name="name" value="<?= htmlspecialchars($row['name'] ?? '') ?>" required>
        </div>

        <div class="mb-3">
            <label class="form-label">Novo Background (Deixe vazio para manter o atual)</label>
            <input class="form-control" type="file" name="background" accept="image/png,image/jpeg">
            <?php if (!empty($row['url'])): ?>
                <small class="text-muted">Atual: <?= htmlspecialchars($row['url']) ?></small>
            <?php endif; ?>
        </div>

        <div class="mb-3">
            <label class="form-label">Nova Logo (Deixe vazio para manter o atual)</label>
            <input class="form-control" type="file" name="logo" accept="image/png,image/jpeg">
            <?php if (!empty($row['logo_url'])): ?>
                <small class="text-muted">Atual: <?= htmlspecialchars($row['logo_url']) ?></small>
            <?php endif; ?>
        </div>

        <button type="submit" class="btn btn-primary">Atualizar Tema</button>
        <a href="theme.php" class="btn btn-secondary">Cancelar</a>
    </form>
</div>

<?php include "includes/footer.php"; ?>