.info-box h4 margin-top: 0; color: #667eea;
.alert-error background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb;
if (!request[0]) return res.status(404).json( error: 'Request not found' ); // Configure email transporter const transporter = nodemailer.createTransport( service: 'gmail', auth: user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS ); // Send email await transporter.sendMail( from: '"Hua Hin Hotel" <hotel@huahin.com>', to: email, subject: 'Your Visa Support Letter for Thailand', text: 'Please find attached your visa support letter for your stay in Hua Hin.', attachments: [ filename: 'visa_support_letter.pdf', path: request[0].letter_file_path ] ); // Update status await db.query( 'UPDATE hotel_visa_requests SET visa_letter_status = "sent" WHERE id = ?', [req.params.request_id] ); res.json( success: true, message: 'Visa letter sent to guest email' ); catch (error) console.error(error); res.status(500).json( error: 'Failed to send email' );
@media (max-width: 768px) .visa-support-container padding: 15px;
.form-group margin-bottom: 20px;
const [loading, setLoading] = useState(false); const [message, setMessage] = useState(null);
.info-box background: #f0f4ff; padding: 15px; border-radius: 8px; margin: 20px 0; border-left: 4px solid #667eea;
.form-row grid-template-columns: 1fr; gap: 0;
.info-box h4 margin-top: 0; color: #667eea;
.alert-error background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb;
if (!request[0]) return res.status(404).json( error: 'Request not found' ); // Configure email transporter const transporter = nodemailer.createTransport( service: 'gmail', auth: user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS ); // Send email await transporter.sendMail( from: '"Hua Hin Hotel" <hotel@huahin.com>', to: email, subject: 'Your Visa Support Letter for Thailand', text: 'Please find attached your visa support letter for your stay in Hua Hin.', attachments: [ filename: 'visa_support_letter.pdf', path: request[0].letter_file_path ] ); // Update status await db.query( 'UPDATE hotel_visa_requests SET visa_letter_status = "sent" WHERE id = ?', [req.params.request_id] ); res.json( success: true, message: 'Visa letter sent to guest email' ); catch (error) console.error(error); res.status(500).json( error: 'Failed to send email' ); hotel visa hua hin
@media (max-width: 768px) .visa-support-container padding: 15px;
.form-group margin-bottom: 20px;
const [loading, setLoading] = useState(false); const [message, setMessage] = useState(null);
.info-box background: #f0f4ff; padding: 15px; border-radius: 8px; margin: 20px 0; border-left: 4px solid #667eea; .info-box h4 margin-top: 0
.form-row grid-template-columns: 1fr; gap: 0;
© 2026 — Rising Peak Crown