<?php
    
require_once("Functions/Error/errorHandler.php");

    if (
$_SERVER["REQUEST_METHOD"] == "POST") {
        
$title = isset($_POST['title']) && trim($_POST['title']) !== '' trim($_POST['title']) : null;
        
$duration = isset($_POST['duration']) && is_numeric($_POST['duration']) && (int)$_POST['duration'] > ? (int)$_POST['duration'] : null;
        
$ageLimit = isset($_POST['ageLimit']) && $_POST['ageLimit'] !== '' ? (int)$_POST['ageLimit'] : null;
        
$uploaded = isset($_POST['uploaded']) && $_POST['uploaded'] === 'on' 0;
        
$serialNumber = isset($_POST['serialNumber']) && trim($_POST['serialNumber']) !== '' trim($_POST['serialNumber']) : null;
        
$imageURL = isset($_POST['imageURL']) && trim($_POST['imageURL']) !== '' trim($_POST['imageURL']) : null;
        
$issuedDate = isset($_POST['issuedDate']) && $_POST['issuedDate'] !== '' $_POST['issuedDate'] : null;
        
$releaseYear = isset($_POST['releaseYear']) && is_numeric($_POST['releaseYear']) ? (int)$_POST['releaseYear'] : null;
        
$overview = isset($_POST['overview']) && trim($_POST['overview']) !== '' trim($_POST['overview']) : null;
        
$languages = isset($_POST['fk_languages']) && is_array($_POST['fk_languages']) ? $_POST['fk_languages'] : [];

        if (
$title === null || $duration === null || $serialNumber === null || count($languages) === 0) {
            
setError("Please fill in all required fields: title, duration (>0), serial number and select at least one language.");
        } else {
            
$query "INSERT INTO citeLeParis_film (title, duration, ageLimit, uploaded, serialNumber, imagePath, issuedDate, releaseYear, overview) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
            
$stmt mysqli_prepare($dbc$query);
            if (
$stmt) {
                
mysqli_stmt_bind_param(
                    
$stmt,
                    
"siissssis",
                    
$title,
                    
$duration,
                    
$ageLimit,
                    
$uploaded,
                    
$serialNumber,
                    
$imageURL,
                    
$issuedDate,
                    
$releaseYear,
                    
$overview
                
);
            }

            if (
$stmt) {
                if (
mysqli_stmt_execute($stmt)) {
                    
$filmID mysqli_insert_id($dbc);
                    
$langQuery "INSERT INTO citeLeParis_hasLanguage (pkfk_film, pkfk_availableLanguage) VALUES (?, ?)";
                    
$langStmt mysqli_prepare($dbc$langQuery);

                    if (
$langStmt) {
                        foreach (
$languages as $langID) {
                            
mysqli_stmt_bind_param($langStmt"ii"$filmID$langID);
                            
mysqli_stmt_execute($langStmt);
                        }
                        
mysqli_stmt_close($langStmt);
                    }
                } else {
                    
setError("Database error: " mysqli_error($dbc));
                }
                
mysqli_stmt_close($stmt);
            } else {
                
setError("Failed to prepare the film insert statement.");
            }
        }
    }

    include(
"Functions/Error/errorDisplay.php");
?>

<section id="film-form-container">
    <h2>Add Film</h2>
    <form method="post" action="" class="film-form">
        <label for="title">Film Title:</label>
        <input type="text" name="title" id="title" required>

        <label for="fk_languages">Languages:</label>
        <select name="fk_languages[]" id="fk_languages" multiple required>
            <?php
                $langQuery 
"SELECT pk_availableLanguage, languageName FROM citeLeParis_availableLanguage";
                
$langResult mysqli_query($dbc$langQuery);
                
                while (
$lang mysqli_fetch_assoc($langResult)) {
                    echo 
"<option value='" htmlspecialchars($lang['pk_availableLanguage']) . "'>" htmlspecialchars($lang['languageName']) . "</option>";
                }
            
?>
        </select>

        <label for="duration">Duration (in minutes):</label>
        <input type="number" name="duration" id="duration" min="1" required>

        <label for="ageLimit">Age Limit (optional):</label>
        <input type="number" name="ageLimit" id="ageLimit" min="0">

        <label for="uploaded">Uploaded (optional, default 1):</label>
        <input type="checkbox" name="uploaded" id="uploaded" checked>

        <label for="serialNumber">Serial Number:</label>
        <input type="text" name="serialNumber" id="serialNumber" required>

        <label for="imageURL">Poster Image URL:</label>
        <input type="url" name="imageURL" id="imageURL">

        <label for="issuedDate">Issued Date (optional):</label>
        <input type="datetime-local" name="issuedDate" id="issuedDate">

        <label for="releaseYear">Release Year (optional):</label>
        <input type="number" name="releaseYear" id="releaseYear" min="1800" max="2100">

        <label for="overview">Overview (optional):</label>
        <textarea name="overview" id="overview" rows="4"></textarea>

        <input type="submit" value="Add Film">
    </form>
</section>