<?php
// ─── GET /api/invoices/jc-data.php?jc_record_id=X ────────────────────────
// Returns jobcard details + meter totals for pre-filling invoice form
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();

$jc_id = (int) ($_GET['jc_record_id'] ?? 0);
if (!$jc_id) Response::error('jc_record_id is required.');

$jc = $db->row(
    "SELECT j.record_id, j.jc_no, j.client_name, j.address,
            j.contact_number, j.jc_current_status, j.water_strike, j.water_flow,
            COALESCE((SELECT SUM(t.meters) FROM jobcard_timeline t
                      WHERE t.jobcard_id = j.record_id
                      AND t.type IN ('DRILLING_STOP','DRILLING_PAUSE')), 0) AS drilling_meters,
            COALESCE((SELECT SUM(t.meters) FROM jobcard_timeline t
                      WHERE t.jobcard_id = j.record_id
                      AND t.type IN ('CASING_STOP','RIEMING_STOP')), 0) AS casing_meters
     FROM   jobcards j WHERE j.record_id = ?",
    [$jc_id]
);

if (!$jc) Response::error('Jobcard not found.', 404);

// Payments
$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",
    [$jc_id]
);

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

Response::ok($jc);