<?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.']);
?>