<?php
/**
 * API para gerenciar preferência de tema do usuário
 * Salva no banco de dados para persistência entre dispositivos
 */

// Detectar ambiente
$isStaging = (strpos($_SERVER['HTTP_HOST'] ?? '', 'dev.') !== false);
$currentDomain = $isStaging ? 'https://dev.duolead.com.br' : 'https://duolead.com.br';
$sessionName = $isStaging ? 'montaloja_staging_session' : 'montaloja_session';

// Headers
header('Content-Type: application/json; charset=UTF-8');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Access-Control-Allow-Origin: ' . $currentDomain);
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
header('Access-Control-Allow-Credentials: true');

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

// Sessão
session_name($sessionName);
session_start();

// Verificar autenticação
if (!isset($_SESSION['user_id'])) {
    echo json_encode(['success' => false, 'error' => 'Não autenticado', 'theme' => 'dark']);
    exit;
}

require_once __DIR__ . '/../includes/config.php';

$userId = $_SESSION['user_id'];
$action = $_GET['action'] ?? $_POST['action'] ?? 'get';

try {
    $pdo = getDB();
    
    if ($action === 'set') {
        // Salvar tema
        $theme = $_POST['theme'] ?? $_GET['theme'] ?? 'dark';
        
        // Validar tema
        $validThemes = ['light', 'dark', 'auto'];
        if (!in_array($theme, $validThemes)) {
            $theme = 'dark';
        }
        
        $stmt = $pdo->prepare("UPDATE users SET theme_preference = ? WHERE id = ?");
        $stmt->execute([$theme, $userId]);
        
        // Atualizar sessão também
        $_SESSION['theme_preference'] = $theme;
        
        echo json_encode([
            'success' => true,
            'theme' => $theme,
            'message' => 'Tema atualizado com sucesso'
        ]);
        
    } else {
        // Obter tema
        $stmt = $pdo->prepare("SELECT theme_preference FROM users WHERE id = ?");
        $stmt->execute([$userId]);
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        
        $theme = $result['theme_preference'] ?? 'dark';
        
        echo json_encode([
            'success' => true,
            'theme' => $theme
        ]);
    }
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'error' => 'Erro ao processar tema',
        'theme' => 'dark'
    ]);
}
