['label' => 'Half Day (4 hrs)', 'amount' => 99.00, 'days' => 0], 'full-day' => ['label' => 'Full Day (8 hrs)', 'amount' => 169.00, 'days' => 0], 'weekend' => ['label' => 'Weekend (48 hrs)', 'amount' => 299.00, 'days' => 1], ]); function db(): PDO { static $pdo; if (!$pdo) { $pdo = new PDO( 'mysql:host=' . PARKER_DB_HOST . ';dbname=' . PARKER_DB_NAME . ';charset=utf8mb4', PARKER_DB_USER, PARKER_DB_PASS, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC] ); } return $pdo; } function generateRef(): string { return 'PSR-' . strtoupper(substr(uniqid(), -6)); } function sendEmail(string $to, string $toName, string $subject, string $html): bool { if (!SENDGRID_API_KEY || strpos(SENDGRID_API_KEY, 'YOUR_KEY') !== false) return false; $payload = json_encode([ 'personalizations' => [['to' => [['email' => $to, 'name' => $toName]]]], 'from' => ['email' => MAIL_FROM, 'name' => MAIL_FROM_NAME], 'subject' => $subject, 'content' => [['type' => 'text/html', 'value' => $html]], ]); $ch = curl_init('https://api.sendgrid.com/v3/mail/send'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . SENDGRID_API_KEY, 'Content-Type: application/json'], CURLOPT_TIMEOUT => 15, CURLOPT_SSL_VERIFYPEER => false, ]); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_exec($ch); curl_close($ch); return $code === 202; }