<?php

header('Content-Type: application/json');

// Read JSON body
$rawBody = file_get_contents('php://input');
$jsonData = json_decode($rawBody, true);

// Support JSON, form POST, or query parameters
$data = [];

if (is_array($jsonData)) {
    $data = $jsonData;
} elseif (!empty($_POST)) {
    $data = $_POST;
} elseif (!empty($_GET)) {
    $data = $_GET;
}

// Get values
$name = trim($data['name'] ?? '');
$callback = trim(
    $data['callback']
    ?? $data['ani']
    ?? $data['from_number']
    ?? ''
);
$subject = trim($data['subject'] ?? '');
$message = trim($data['message'] ?? '');
$conid = trim(
    $data['conid']
    ?? $data['conversation_id']
    ?? ''
);

// Prevent email header injection
$name = str_replace(["\r", "\n"], '', $name);
$subject = str_replace(["\r", "\n"], '', $subject);

if ($subject === '') {
    $subject = 'New River City Hauler Inquiry';
}

$to = 'contact@rivercityhauler.com';

$emailSubject = 'New Lead: ' . $subject;

$emailBody = "";
$emailBody .= "New inquiry received\n";
$emailBody .= "====================\n\n";
$emailBody .= "Name: " . $name . "\n";
$emailBody .= "Callback Number: " . $callback . "\n";

if ($conid !== '') {
    $emailBody .= "Conversation ID: " . $conid . "\n";
}

$emailBody .= "\nSubject:\n";
$emailBody .= $subject . "\n\n";

$emailBody .= "Message:\n";
$emailBody .= $message . "\n";

// Change this to a valid address on your domain
$fromEmail = 'noreply@mycloudable.com';

$headers = [];
$headers[] = 'From: River City Hauler <' . $fromEmail . '>';
$headers[] = 'Reply-To: ' . $fromEmail;
$headers[] = 'Content-Type: text/plain; charset=UTF-8';
$headers[] = 'X-Mailer: PHP/' . phpversion();

$sent = mail(
    $to,
    $emailSubject,
    $emailBody,
    implode("\r\n", $headers)
);

if ($sent) {
    http_response_code(200);

    echo json_encode([
        'success' => true,
        'status' => 'sent',
        'message' => 'Message sent successfully'
    ]);
} else {
    http_response_code(500);

    echo json_encode([
        'success' => false,
        'status' => 'error',
        'message' => 'Email could not be sent'
    ]);
}