<?php
// API para buscar entregas do entregador
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

// Responde a requisições OPTIONS (CORS preflight)
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit();
}

// Configurações de sessão
ini_set('session.save_path', '/var/cpanel/php/sessions/ea-php74');
ini_set('session.cookie_domain', '.entregas.pede.la'); // ADAPTE PARA SEU DOMÍNIO

// Inicia sessão
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Inclui conexão com banco
require_once('../../db_connect.php');

try {
    // Verifica se está logado
    if (!isset($_SESSION['entregador']['id']) || empty($_SESSION['entregador']['id'])) {
        echo json_encode(['success' => false, 'error' => 'Não autorizado']);
        exit();
    }
    
    $entregador_id = $_SESSION['entregador']['id'];
    
    if (!is_numeric($entregador_id)) {
        echo json_encode(['success' => false, 'error' => 'ID do entregador inválido']);
        exit();
    }
    
    // Parâmetros de paginação
    $page = isset($_GET['page']) && is_numeric($_GET['page']) ? (int)$_GET['page'] : 1;
    $limit = isset($_GET['limit']) && is_numeric($_GET['limit']) ? (int)$_GET['limit'] : 12;
    $offset = ($page - 1) * $limit;
    
    // Consulta as entregas (ADAPTE PARA SUA ESTRUTURA DE TABELAS)
    $sql = "SELECT * FROM pedidos 
            WHERE id_entregador = ? 
            ORDER BY data_hora DESC 
            LIMIT ?, ?";
    
    $stmt = $db_con->prepare($sql);
    if (!$stmt) {
        echo json_encode(['success' => false, 'error' => 'Erro na preparação da consulta']);
        exit();
    }
    
    $stmt->bind_param("iii", $entregador_id, $offset, $limit);
    $stmt->execute();
    $result = $stmt->get_result();
    
    $deliveries = [];
    while ($row = $result->fetch_assoc()) {
        // Formata os dados para o PWA
        $deliveries[] = [
            'id' => (int)$row['id'],
            'pedido_numero' => $row['pedido_numero'],
            'nome' => $row['nome'],
            'data_hora' => $row['data_hora'],
            'endereco_rua' => $row['endereco_rua'],
            'endereco_numero' => $row['endereco_numero'],
            'endereco_bairro' => $row['endereco_bairro'],
            'v_pedido' => (float)$row['v_pedido'],
            'status_entrega' => $row['status_entrega'],
            'datahora_entrega' => $row['datahora_entrega'],
            'observacoes' => $row['observacoes'] ?? '',
            'link_localizacao' => $row['link_localizacao'] ?? ''
        ];
    }
    
    // Conta total de registros
    $count_sql = "SELECT COUNT(*) as total FROM pedidos WHERE id_entregador = ?";
    $count_stmt = $db_con->prepare($count_sql);
    $count_stmt->bind_param("i", $entregador_id);
    $count_stmt->execute();
    $count_result = $count_stmt->get_result();
    $total = $count_result->fetch_assoc()['total'];
    
    $total_pages = ceil($total / $limit);
    
    // Resposta de sucesso
    echo json_encode([
        'success' => true,
        'data' => $deliveries,
        'total' => (int)$total,
        'totalPages' => (int)$total_pages,
        'currentPage' => $page
    ]);
    
    $stmt->close();
    $count_stmt->close();
    
} catch (Exception $e) {
    error_log("Erro ao buscar entregas: " . $e->getMessage());
    echo json_encode(['success' => false, 'error' => 'Erro interno do servidor']);
}

$db_con->close();
?>

