res.json( success: true, message: 'Visa letter generated successfully', letter_url: pdfPath, request_id: result.insertId );
.visa-form padding: 20px;
catch (error) console.error(error); res.status(500).json( error: 'Failed to generate visa letter' ); hotel visa hua hin
.info-box background: #f0f4ff; padding: 15px; border-radius: 8px; margin: 20px 0; border-left: 4px solid #667eea;
if (!hotel) return res.status(404).json( error: 'Hotel not found' ); Database Schema -- Hotel Visa Requests Table CREATE
// Generate PDF Visa Letter async function generateVisaLetter(data) return new Promise((resolve, reject) => const doc = new PDFDocument(); const filename = visa_letter_$Date.now().pdf ; const filepath = ./uploads/visa_letters/$filename ;
I'll help you create a for Hua Hin, Thailand. This feature allows hotels to generate visa invitation letters for guests (especially useful for tourists needing visa support for Thailand entry). Feature Implementation 1. Database Schema -- Hotel Visa Requests Table CREATE TABLE hotel_visa_requests ( id INT PRIMARY KEY AUTO_INCREMENT, hotel_id INT NOT NULL, guest_name VARCHAR(100) NOT NULL, guest_passport_number VARCHAR(50) NOT NULL, guest_nationality VARCHAR(50) NOT NULL, guest_email VARCHAR(100), check_in_date DATE NOT NULL, check_out_date DATE NOT NULL, room_type VARCHAR(50), purpose_of_visit VARCHAR(100) DEFAULT 'tourism', visa_letter_status ENUM('pending', 'generated', 'sent', 'cancelled') DEFAULT 'pending', letter_generated_at TIMESTAMP NULL, letter_file_path VARCHAR(255), special_requests TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (hotel_id) REFERENCES hotels(id) ); -- Hua Hin Hotel Details Table CREATE TABLE hua_hin_hotels ( id INT PRIMARY KEY AUTO_INCREMENT, hotel_name VARCHAR(150) NOT NULL, hotel_address TEXT NOT NULL, hotel_tax_id VARCHAR(50), contact_person VARCHAR(100), contact_email VARCHAR(100), contact_phone VARCHAR(50) ); 2. Backend API (Node.js/Express) // routes/visaRoutes.js const express = require('express'); const router = express.Router(); const PDFDocument = require('pdfkit'); const fs = require('fs'); const nodemailer = require('nodemailer'); // Generate Visa Support Letter router.post('/generate-visa-letter', async (req, res) => try const hotel_id, guest_name, passport_number, nationality, check_in_date, check_out_date, room_type = req.body; hotel_id INT NOT NULL
.form-group input:focus, .form-group select:focus outline: none; border-color: #667eea;