<?php
// === KORAK 0: NASTAVITVE ZA PRODUKCIJO ===

// V produkciji izklopimo prikazovanje napak uporabniku.
// Napake se bodo še vedno beležile v strežniškem dnevniku (error log), če je pravilno nastavljen.
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);

// Uvozimo potrebne PHPMailer razrede v globalni imenski prostor.
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

// Vključimo datoteke knjižnice PHPMailer.
require __DIR__ . '/phpmailer/src/Exception.php';
require __DIR__ . '/phpmailer/src/PHPMailer.php';
require __DIR__ . '/phpmailer/src/SMTP.php';

// Vključimo našo varno konfiguracijsko datoteko.
require __DIR__ . '/config.php';

// Nastavimo glavo (header) odgovora, da bo brskalnik vedel, da pričakuje JSON.
header('Content-Type: application/json');

// Pripravimo privzet odgovor.
$response = ['success' => false, 'message' => 'Neznana napaka. Prosimo, kontaktirajte administratorja.'];

// === KORAK 1: PREVERJANJE METODE ZAHTEVE ===

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405); // Method Not Allowed
    $response['message'] = 'Nedovoljen dostop. Uporabite metodo POST.';
    echo json_encode($response);
    exit;
}

// === KORAK 2: BRANJE IN VALIDACIJA VSEBINE ===

$json_data = file_get_contents('php://input');
$data = json_decode($json_data, true);

if (!$data || !isset($data['name']) || !isset($data['email']) || !isset($data['message'])) {
    http_response_code(400); // Bad Request
    $response['message'] = 'Manjkajoči podatki. Prosimo, izpolnite vsa polja.';
    echo json_encode($response);
    exit;
}

// === KORAK 3: ČIŠČENJE IN VALIDACIJA PODATKOV ===

$name = trim($data['name']);
$email = trim($data['email']);
$message = trim($data['message']);

if (empty($name)) {
    $response['message'] = 'Prosimo, vnesite vaše ime in priimek.';
    echo json_encode($response);
    exit;
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $response['message'] = 'Prosimo, vnesite veljaven e-poštni naslov.';
    echo json_encode($response);
    exit;
}

if (empty($message)) {
    $response['message'] = 'Prosimo, vnesite vaše sporočilo.';
    echo json_encode($response);
    exit;
}

// === KORAK 4: INICIALIZACIJA IN KONFIGURACIJA PHPMAILER ===

$mail = new PHPMailer(true);

try {
    // --- Nastavitve strežnika ---
    
    // !!! POMEMBNO: Način za razhroščevanje je sedaj IZKLOPLJEN !!!
    // S tem zagotovimo, da skripta vrne samo čist JSON odgovor.
    $mail->SMTPDebug = SMTP::DEBUG_OFF;
    
    $mail->isSMTP();
    $mail->Host       = SMTP_HOST;
    $mail->SMTPAuth   = true;
    $mail->Username   = SMTP_USERNAME;
    $mail->Password   = SMTP_PASSWORD;
    $mail->SMTPSecure = SMTP_SECURE;
    $mail->Port       = SMTP_PORT;

    $mail->CharSet = 'UTF-8';

    // --- Prejemniki ---
    $mail->setFrom(SMTP_USERNAME, $name);
    $mail->addAddress(SMTP_USERNAME, 'Hermina Merc - Spletna Stran');
    $mail->addReplyTo($email, $name);

    // --- Vsebina e-sporočila ---
    $mail->isHTML(false);
    $mail->Subject = 'Novo sporočilo s spletne strani herminamerc.si od: ' . $name;

    $bodyName = htmlspecialchars($name);
    $bodyEmail = htmlspecialchars($email);
    $bodyMessage = htmlspecialchars($message);

    $mail->Body    = "Prejeli ste novo sporočilo preko kontaktnega obrazca.\n\n" .
                     "==================================================\n" .
                     "Ime in priimek: " . $bodyName . "\n" .
                     "E-mail naslov: " . $bodyEmail . "\n" .
                     "==================================================\n\n" .
                     "Sporočilo:\n" .
                     "--------------------------------------------------\n" .
                     $bodyMessage . "\n" .
                     "--------------------------------------------------\n";

    // === KORAK 5: POŠILJANJE E-SPOROČILA ===
    $mail->send();

    $response['success'] = true;
    $response['message'] = 'Hvala za vaše sporočilo! Odgovorili vam bomo v najkrajšem možnem času.';

} catch (Exception $e) {
    http_response_code(500); // Internal Server Error
    $response['success'] = false;
    // V produkciji ne izpisujemo podrobne napake uporabniku, ampak jo zabeležimo.
    $response['message'] = 'Sporočila ni bilo mogoče poslati. Prosimo, poskusite znova kasneje ali kontaktirajte administratorja.';
    
    // Zabeležimo dejansko napako v strežniški log.
    error_log("PHPMailer napaka: " . $mail->ErrorInfo);
}

// === KORAK 6: POŠILJANJE ODGOVORA ===
echo json_encode($response);

?>