import React from 'react'; import { renderToBuffer } from '@react-pdf/renderer'; import QRCode from 'qrcode'; import { TicketPDF } from '../ticket-pdf'; interface TicketData { userName?: string; eventName?: string; eventDate?: string; eventTime?: string; venue?: string; ticketType?: string; amount?: string; ticketNumber?: string; purchaseDate?: string; orderId?: string; seatNumber?: string; section?: string; } export async function generateTicketPDF(data: TicketData): Promise { // Generate QR code as data URL const qrCodeData = data.ticketNumber || `TICKET-${Date.now()}`; const qrCodeDataUrl = await QRCode.toDataURL(qrCodeData, { width: 300, margin: 2, color: { dark: '#000000', light: '#FFFFFF', }, }); // Create PDF document const pdfDoc = React.createElement(TicketPDF, { ...data, qrCodeDataUrl, }); // Render to buffer const pdfBuffer = await renderToBuffer(pdfDoc); return pdfBuffer; }