<?php
    session_start
();
    
header('Content-Type: application/json');

    require_once 
'../DB/db_credentials.php';
    require_once 
'../DB/db_connection.php';

    
// not logged in
    
if (!isset($_SESSION['userID'])) {
        
http_response_code(401); // Unauthorized
        
echo json_encode(['status' => 'error''message' => 'Not logged in.']);
        exit;
    }

    
$userID $_SESSION['userID'];
    
$fk_shift $_POST['fk_shift'] ?? null;

    
// missing shift ID
    
if (!$fk_shift) {
        
http_response_code(400); // Bad Request
        
echo json_encode(['status' => 'error''message' => 'Missing shift ID.']);
        exit;
    }

    
// already registered
    
$checkQuery "SELECT * FROM citeLeParis_register WHERE fk_person = ? AND fk_shift = ?";
    
$checkStmt mysqli_prepare($dbc$checkQuery);
    
mysqli_stmt_bind_param($checkStmt'ii'$userID$fk_shift);
    
mysqli_stmt_execute($checkStmt);
    
$checkResult mysqli_stmt_get_result($checkStmt);

    if (
mysqli_num_rows($checkResult) > 0) {
        
http_response_code(409); // Conflict
        
echo json_encode(['status' => 'error''message' => 'Already registered for this shift.']);
        exit;
    }

    
$insertQuery "INSERT INTO citeLeParis_register (fk_person, fk_shift, fk_answer) VALUES (?, ?, NULL)";
    
$insertStmt mysqli_prepare($dbc$insertQuery);
    
mysqli_stmt_bind_param($insertStmt'ii'$userID$fk_shift);

    if (
mysqli_stmt_execute($insertStmt)) {
        
http_response_code(201); // Created
        
echo json_encode(['status' => 'success']);
    } else {
        
http_response_code(500); // Internal Server Error
        
echo json_encode(['status' => 'error''message' => mysqli_error($dbc)]);
    }
?>