<?php
// ─── POST /api/jobcards/timeline-add.php ─────────────────────────────────
define('ROOT', dirname(__DIR__, 2));
require_once ROOT . '/core/DB.php';
require_once ROOT . '/core/Response.php';
require_once ROOT . '/core/Auth.php';

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

$jobcard_id   = (int) ($_POST['jobcard_id']   ?? 0);
$type         = strtoupper(trim($_POST['type'] ?? ''));
$meters       = (float) ($_POST['meters']     ?? 0);
$serial       = trim($_POST['serial_number']  ?? '');
$date_time    = str_replace('T', ' ', trim($_POST['date_time'] ?? ''));

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

// Validate against known types
$validTypes = [
    'DRILLING_START','DRILLING_STOP','DRILLING_PAUSE','DRILLING_RESUME',
    'RIEMING_START','RIEMING_STOP','RIEMING_PAUSED','RIEMING_RESUMED',
    'RIEM_START','RIEM_STOP',
    'CASING_START','CASING_STOP','CASING_PAUSE','CASING_RESUME',
    'BLASTING_START','BLASTING_STOP','BLASTING_PAUSE','BLASTING_RESUME',
    'RODS_START','RODS_STOP',
    'OTHER',
];
if (!in_array($type, $validTypes)) Response::error("Unknown timeline type: $type");

if (!$date_time) $date_time = date('Y-m-d H:i');

$db->run(
    "INSERT INTO jobcard_timeline
        (jobcard_id, user_id, type, meters, serial_number, date_time)
     VALUES (?, ?, ?, ?, ?, ?)",
    [$jobcard_id, (int) $user['user_id'], $type, $meters, $serial, $date_time]
);

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

Response::ok([
    'record_id'   => $record_id,
    'jobcard_id'  => $jobcard_id,
    'type'        => $type,
    'meters'      => $meters,
    'serial_number'=> $serial,
    'date_time'   => $date_time,
    'username'    => $user['username'],
], 'Timeline entry added.');