<?php
// ─── POST /api/pumps/repair-create.php ──────────────────────────────────
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();

$client_type      = strtoupper(trim($_POST['client_type']       ?? 'NEW'));
$installation_id  = (int) ($_POST['installation_id']            ?? 0);
$drilling_team_id = (int) ($_POST['drilling_team_id']           ?? 0);
$contact_number   = trim($_POST['contact_number']               ?? '');
$address          = trim($_POST['address']                      ?? '');
$problem_desc     = trim($_POST['problem_description']          ?? '');
$problem_sol      = trim($_POST['problem_solution']             ?? '');
$map_coords       = trim($_POST['map_co_ordinates']             ?? '');

if (!$drilling_team_id) Response::error('Team is required.');
if (!in_array($client_type, ['NEW','EXISTING'])) Response::error('client_type must be NEW or EXISTING.');
if ($client_type === 'EXISTING' && !$installation_id) Response::error('Installation is required for existing clients.');

// Generate jobcard_no: PR_X
$last = (int) $db->scalar("SELECT COALESCE(MAX(record_id), 0) FROM pump_repair");
$jobcard_no = 'PR_' . ($last + 1);

$db->run(
    "INSERT INTO pump_repair
        (jobcard_no, installation_id, drilling_team_id, client_type,
         contact_number, address, problem_description, problem_solution,
         map_co_ordinates, status, jc_current_status)
     VALUES (?,?,?,?,?,?,?,?,?,0,'ACTIVE')",
    [$jobcard_no, $installation_id ?: null, $drilling_team_id,
     $client_type, $contact_number, $address,
     $problem_desc, $problem_sol, $map_coords]
);

$record_id = (int) $db->lastId();

Response::ok([
    'record_id'  => $record_id,
    'jobcard_no' => $jobcard_no,
], 'Pump repair created.');