<?php
// ─── GET /api/invoices/pump-data.php?jobcard_no=PI_1&type=install ────────
define('ROOT', dirname(__DIR__, 2));
require_once ROOT . '/core/DB.php';
require_once ROOT . '/core/Response.php';
require_once ROOT . '/core/Auth.php';

Auth::require();
$db = DB::get();

$jobcard_no = trim($_GET['jobcard_no'] ?? '');
$type       = trim($_GET['type']       ?? 'install'); // install | repair

if (!$jobcard_no) Response::error('jobcard_no is required.');

// Fetch pump record for client details
if ($type === 'repair') {
    $pump = $db->row(
        "SELECT record_id, jobcard_no, address AS client_name, contact_number, address
         FROM   pump_repair WHERE jobcard_no = ? LIMIT 1",
        [$jobcard_no]
    );
} else {
    $pump = $db->row(
        "SELECT record_id, jobcard_no, client_name, contact_number, area AS address
         FROM   pump_installation WHERE jobcard_no = ? LIMIT 1",
        [$jobcard_no]
    );
}
if (!$pump) Response::error('Pump record not found.', 404);

// Payments by jobcard_no string
$payments = $db->rows(
    "SELECT jp.*, u.username
     FROM   jobcard_payments jp
     LEFT JOIN users u ON u.record_id = jp.user_id
     WHERE  jp.jobcard_id = ?
     ORDER BY jp.date_time ASC",
    [$jobcard_no]
);

$pump['payments']   = $payments;
$pump['total_paid'] = array_sum(array_column($payments, 'amount'));

Response::ok($pump);