<?php
// api/user.php
require_once __DIR__ . '/../../app/config.php';
require_once __DIR__ . '/../../app/db.php';

header('Content-Type: application/json; charset=utf-8');

function jexit(array $payload, int $status = 200) {
  http_response_code($status);
  echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  exit;
}

// Verifica autenticação
if (empty($_SESSION['user']['id']) || empty($_SESSION['user']['email'])) {
  jexit(['ok' => false, 'error' => 'Não autenticado'], 401);
}

$pdo = db();
$action = $_GET['action'] ?? '';
$userEmail = $_SESSION['user']['email'];

try {
  switch ($action) {
    
    // ========= ATUALIZAR WHATSAPP =========
    case 'update_whatsapp': {
      $input = json_decode(file_get_contents('php://input'), true) ?? [];
      $whatsapp = trim($input['whatsapp_notifications'] ?? '');
      
      // Remove formatação e valida
      $digitsOnly = preg_replace('/\D/', '', $whatsapp);
      
      if (strlen($digitsOnly) < 10 || strlen($digitsOnly) > 11) {
        jexit(['ok' => false, 'error' => 'Número de WhatsApp inválido (10-11 dígitos)'], 422);
      }
      
      // Atualiza no banco
      $stmt = $pdo->prepare("
        UPDATE users 
        SET whatsapp_notifications = :whatsapp 
        WHERE email = :email
      ");
      
      $stmt->execute([
        ':whatsapp' => $whatsapp,
        ':email' => $userEmail
      ]);
      
      jexit(['ok' => true, 'message' => 'WhatsApp atualizado com sucesso!']);
    }
    
    // ========= BUSCAR WHATSAPP ATUAL =========
    case 'get_whatsapp': {
      $stmt = $pdo->prepare("
        SELECT whatsapp_notifications 
        FROM users 
        WHERE email = :email 
        LIMIT 1
      ");
      
      $stmt->execute([':email' => $userEmail]);
      $row = $stmt->fetch(PDO::FETCH_ASSOC);
      
      jexit([
        'ok' => true, 
        'whatsapp' => $row['whatsapp_notifications'] ?? null
      ]);
    }
    
    default:
      jexit(['ok' => false, 'error' => 'Ação inválida'], 400);
  }
  
} catch (Throwable $e) {
  jexit(['ok' => false, 'error' => $e->getMessage()], 500);
}