<?php
// Debug script to trace getLead() behavior for each lead_id
require_once __DIR__ . '/bootstrap/app.php';

$database = 'mysql_74';
$list_id = 1;
$campaign_id = 2;

echo "=== getLead() Debug Trace ===\n";
echo "Database: $database\n";
echo "List ID: $list_id\n";
echo "Campaign ID: $campaign_id\n";
echo "Time: " . date('Y-m-d H:i:s') . "\n\n";

// Step 1: Get dialing column
$dialingColumn = \Illuminate\Support\Facades\DB::connection($database)->selectOne("SELECT column_name FROM list_header WHERE list_id = :list_id AND is_dialing = :is_dialing", ['list_id' => $list_id, 'is_dialing' => '1']);
$dialingColumn = (array)$dialingColumn;
echo "Dialing Column: " . $dialingColumn['column_name'] . "\n\n";

// Step 2: Get all list_data (same query as getLead)
$listData = \Illuminate\Support\Facades\DB::connection($database)->select("SELECT id,list_id, option_1, option_2, option_3, option_4, option_5, option_6, option_7, option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24, option_25, option_26, option_27, option_28, option_29, option_30 FROM list_data WHERE list_id = :list_id", ['list_id' => $list_id]);
$data = (array)$listData;

echo "Total list_data records: " . count($data) . "\n";
echo "Records returned in order: ";
foreach ($data as $d) {
    echo $d->id . " ";
}
echo "\n\n";

// Step 3: Check current lead_temp
$leadTemp = \Illuminate\Support\Facades\DB::connection($database)->select("SELECT lead_id FROM lead_temp WHERE campaign_id = :cid", ['cid' => $campaign_id]);
echo "Current lead_temp: ";
foreach ($leadTemp as $lt) echo $lt->lead_id . " ";
echo "(count: " . count($leadTemp) . ")\n";

// Step 4: Check current lead_report
$leadReport = \Illuminate\Support\Facades\DB::connection($database)->select("SELECT lead_id, status FROM lead_report WHERE campaign_id = :cid", ['cid' => $campaign_id]);
echo "Current lead_report: ";
foreach ($leadReport as $lr) echo $lr->lead_id . "(" . $lr->status . ") ";
echo "(count: " . count($leadReport) . ")\n\n";

// Step 5: Trace each lead through the filters
$response = [];
$dialCol = $dialingColumn['column_name'];

foreach ($data as $key => $value) {
    $number = $value->$dialCol;
    echo "--- Lead ID: {$value->id} | Number: {$number} ---\n";

    // Check lead_temp
    $checkTemp = \Illuminate\Support\Facades\DB::connection($database)->selectOne("SELECT lead_id FROM lead_temp WHERE list_id = :list_id AND campaign_id = :campaign_id AND lead_id = :lead_id", ['list_id' => $list_id, 'campaign_id' => $campaign_id, 'lead_id' => $value->id]);
    $checkTemp = (array)$checkTemp;
    if (!empty($checkTemp)) {
        echo "  SKIP: Already in lead_temp\n\n";
        continue;
    }
    echo "  lead_temp: PASS (not in hopper)\n";

    // Check lead_report
    $checkRecord = \Illuminate\Support\Facades\DB::connection($database)->selectOne("SELECT lead_id FROM lead_report WHERE campaign_id = :campaign_id AND lead_id = :lead_id", ['campaign_id' => $campaign_id, 'lead_id' => $value->id]);
    $checkRecord = (array)$checkRecord;
    if (!empty($checkRecord)) {
        echo "  SKIP: Already in lead_report\n\n";
        continue;
    }
    echo "  lead_report: PASS (not reported)\n";

    // Check DNC
    $checkNumber = \Illuminate\Support\Facades\DB::connection($database)->selectOne("SELECT `number`,`extension`,`comment`,`updated_at` FROM dnc WHERE number = :number", ['number' => $number]);
    $checkNumber = (array)$checkNumber;
    if (!empty($checkNumber)) {
        echo "  SKIP: In DNC list\n\n";
        continue;
    }
    echo "  DNC: PASS (not in DNC)\n";

    // Check exclude_number
    $checkExcludeNumber = \Illuminate\Support\Facades\DB::connection($database)->selectOne("SELECT `number`,`campaign_id`,`first_name`,`last_name`,`company_name`,`updated_at` FROM exclude_number WHERE number = :number AND campaign_id = :campaign_id", ['number' => $number, 'campaign_id' => $campaign_id]);
    $checkExcludeNumber = (array)$checkExcludeNumber;
    if (empty($checkExcludeNumber)) {
        echo "  exclude_number: PASS (not excluded)\n";
        echo "  >>> ADDED to response\n\n";
        array_push($response, $value->id);
    } else {
        echo "  SKIP: In exclude_number\n\n";
    }
}

echo "=== RESULT ===\n";
echo "Leads that would be added to hopper: " . implode(', ', $response) . "\n";
echo "Count: " . count($response) . "\n";
