import { createClient } from '@supabase/supabase-js'; import fs from 'fs'; import path from 'path'; const supabase = createClient( 'https://weeiosqgiyjeeftvpyjr.supabase.co', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6IndlZWlvc3FnaXlqZWVmdHZweWpyIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc3NTU3MDg1NCwiZXhwIjoyMDkxMTQ2ODU0fQ.rs0jJRVhEOGrdUDXvGm_a5M9Q717w0I56HddiD8m2WE' ); const tenderId = '9dc7a1df-a8b3-48fc-8660-ace47506d613'; const filePath = 'C:/Users/Angelah/Documents/TenderHubKenya/17899-PURCHASE OF MOBILE PHONES.pdf'; const bucket = 'TenderDocs'; console.log('Reading PDF...'); const fileBuffer = fs.readFileSync(filePath); const fileSize = fs.statSync(filePath).size; const storagePath = `${tenderId}/17899-PURCHASE OF MOBILE PHONES.pdf`; console.log('Uploading to Supabase Storage...'); const { data, error } = await supabase.storage.from(bucket).upload(storagePath, fileBuffer, { contentType: 'application/pdf', upsert: true }); if (error) { console.error('Upload failed:', error); process.exit(1); } console.log('Upload successful:', data.path); // Update tender with storage path console.log('Updating tender record...'); const { error: updateError } = await supabase.from('tenders').update({ storage_path: storagePath, file_size_bytes: fileSize, content_type: 'application/pdf', status: 'PROCESSING' }).eq('id', tenderId); if (updateError) { console.error('Update failed:', updateError); process.exit(1); } // Create new processing job console.log('Queueing new processing job...'); const { error: jobError } = await supabase.from('processing_jobs').insert({ tender_id: tenderId, status: 'QUEUED', idempotency_key: `test-${tenderId}-${Date.now()}` }); if (jobError) { console.error('Job creation failed:', jobError); process.exit(1); } console.log('SUCCESS: PDF uploaded and job queued!'); console.log(`Monitor at: https://tenderhubkenya.vercel.app/dashboard/tenders/${tenderId}`);