<?php
    header
('Content-Type: application/json');
    require_once 
'../DB/db_credentials.php';
    require_once 
'../DB/db_connection.php';

    
$data json_decode(file_get_contents("php://input"), true);

    
$id           $data['id']                     ?? '';
    
$title        trim($data['title']             ?? '');
    
$duration     $data['duration']               ?? '';
    
$ageLimit     $data['ageLimit']               ?? '';
    
$uploaded     $data['uploaded']               ?? 0;
    
$serialNumber trim($data['serialNumber']      ?? '');
    
$imagePath    trim($data['imagePath']         ?? '');
    
$releaseYear  $data['releaseYear']            ?? null;  // new
    
$overview     trim($data['overview']          ?? '');   // new
    
$issuedDate   $data['issuedDate']             ?? '';
    
$languages    $data['languages']              ?? [];

    if (!
$id || !$title || !$duration || $ageLimit === '' || !$serialNumber || !$issuedDate) {
        
http_response_code(400);
        echo 
json_encode(['status' => 'error''message' => 'Missing required fields.']);
        exit;
    }

    
// check if film exists
    
$sql "SELECT COUNT(*) FROM citeLeParis_film WHERE pk_filmID = ?";
    
$stmt mysqli_prepare($dbc$sql);
    
mysqli_stmt_bind_param($stmt'i'$id);
    
mysqli_stmt_execute($stmt);
    
mysqli_stmt_bind_result($stmt$exists);
    
mysqli_stmt_fetch($stmt);
    
mysqli_stmt_close($stmt);

    if (!
$exists) {
        
http_response_code(404);
        echo 
json_encode(['status' => 'error''message' => 'Film not found.']);
        
mysqli_close($dbc);
        exit;
    }

    
$sql "UPDATE citeLeParis_film
            SET title = ?, duration = ?, ageLimit = ?, uploaded = ?, serialNumber = ?, imagePath = ?, releaseYear = ?, overview = ?, issuedDate = ?
            WHERE pk_filmID = ?"
;
    
$stmt mysqli_prepare($dbc$sql);

    if (!
$stmt) {
        
http_response_code(500);
        echo 
json_encode(['status' => 'error''message' => 'Failed to prepare update statement.']);
        
mysqli_close($dbc);
        exit;
    }

    
mysqli_stmt_bind_param($stmt'siisssissi'$title$duration$ageLimit$uploaded$serialNumber$imagePath$releaseYear$overview$issuedDate$id);
    
$ok mysqli_stmt_execute($stmt);
    
mysqli_stmt_close($stmt);

    if (!
$ok) {
        
http_response_code(500);
        echo 
json_encode(['status' => 'error''message' => 'Update failed.']);
        
mysqli_close($dbc);
        exit;
    }

    
// update film-language relations
    
$sql "DELETE FROM citeLeParis_hasLanguage WHERE pkfk_film = ?";
    
$stmt mysqli_prepare($dbc$sql);
    
mysqli_stmt_bind_param($stmt'i'$id);
    
mysqli_stmt_execute($stmt);
    
mysqli_stmt_close($stmt);

    if (!empty(
$languages)) {
        
$sql "INSERT INTO citeLeParis_hasLanguage (pkfk_film, pkfk_availableLanguage) VALUES (?, ?)";
        
$stmt mysqli_prepare($dbc$sql);

        foreach (
$languages as $langID) {
            
mysqli_stmt_bind_param($stmt'ii'$id$langID);
            
mysqli_stmt_execute($stmt);
        }

        
mysqli_stmt_close($stmt);
    }

    
mysqli_close($dbc);

    
http_response_code(200);
    echo 
json_encode(['status' => 'success''message' => 'Film updated successfully.']);
?>