<?php
session_start();

// 1. Captura os dados (Agora aceitamos entregador_id direto para não depender do db_pedidos)
$id_entregador_direto = trim($_POST['entregador_id'] ?? '');
$nota = trim($_POST['nota'] ?? '');

if (empty($id_entregador_direto) || empty($nota)) {
    // Se não vier dados, volta para a index para não travar a tela do cliente
    header("Location: index.php");
    exit;
}

// 2. Caminhos dos arquivos
$arq_entregadores = __DIR__ . '/entregadores.json';
$arq_pedidos = __DIR__ . '/db_pedidos.json'; // Opcional, caso queira pegar o valor da última corrida

if (!file_exists($arq_entregadores)) {
    die("Erro: Arquivo entregadores.json não encontrado.");
}

// 3. Carrega os entregadores
$entregadores = json_decode(file_get_contents($arq_entregadores), true) ?: [];

// Valor padrão da corrida para cálculo de bônus (caso não consiga ler do pedido)
$valor_corrida = 10.00;

// 4. Localiza o entregador e aplica sua lógica de bônus/bloqueio
$sucesso = false;
$cpf_alvo = preg_replace('/[^0-9]/', '', $id_entregador_direto);

foreach ($entregadores as &$e) {
    $identificador_banco = $e['usuario'] ?? $e['cpf'] ?? $e['id'] ?? '';
    $cpf_limpo_banco = preg_replace('/[^0-9]/', '', $identificador_banco);

    if ($cpf_limpo_banco === $cpf_alvo) {
        if ($nota === 'reclamacao') {
            $e['reclamacoes'] = (int)($e['reclamacoes'] ?? 0) + 1;
            if ($e['reclamacoes'] >= 2) {
                $e['status'] = 'bloqueado';
            }
        } else {
            // Lógica de Estrelas
            $e['total_estrelas'] = (int)($e['total_estrelas'] ?? 0) + (int)$nota;
            $e['total_corridas'] = (int)($e['total_corridas'] ?? 0) + 1;
            
            $total_c = $e['total_corridas'] > 0 ? $e['total_corridas'] : 1;
            $e['media_estrelas'] = round($e['total_estrelas'] / $total_c, 1);
            
            // Cálculo de bônus (Sua regra de bônus)
            $valor_bonus = $valor_corrida * ($e['media_estrelas'] / 100);
            $e['saldo'] = (float)($e['saldo'] ?? 0) + $valor_bonus;
            $e['bonus_acumulado'] = (float)($e['bonus_acumulado'] ?? 0) + $valor_bonus;
        }
        $sucesso = true;
        break;
    }
}

// 5. Salva e limpa a URL do cliente
if ($sucesso) {
    file_put_contents($arq_entregadores, json_encode($entregadores, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
}

// Independentemente de sucesso ou erro no CPF, mandamos para a index limpa
// Isso evita que o cliente fique preso em uma tela de erro
header("Location: index.php");
exit;