<?php
require_once '../../config/config.php';

header('Content-Type: application/json');

function respond($ok, $msg, $extra = []) {
    echo json_encode(($ok ? ['status' => 'success'] : ['status' => 'error']) + ['message' => $msg] + $extra);
    exit;
}

try {
    $input = json_decode(file_get_contents('php://input'), true);
    $dutyId = $input['duty_id'] ?? '';
    
    if (!$dutyId) {
        respond(false, 'Duty ID is required');
    }
    
    $fields = [];
    $params = [];
    
    $allowedFields = ['hall_id', 'exam_date', 'session', 'staff_id', 'role', 'allocation_id', 'status'];
    
    foreach ($allowedFields as $field) {
        if (isset($input[$field])) {
            $fields[] = "$field = ?";
            $params[] = $input[$field];
        }
    }
    
    if (empty($fields)) {
        respond(false, 'No fields to update');
    }
    
    $params[] = $dutyId;
    
    $sql = "UPDATE invigilation_duties SET " . implode(', ', $fields) . " WHERE duty_id = ?";
    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute($params);
    
    if ($result) {
        respond(true, 'Invigilation duty updated successfully');
    } else {
        respond(false, 'Failed to update invigilation duty');
    }
} catch (Exception $e) {
    respond(false, $e->getMessage());
}
?>
