import type { VercelRequest, VercelResponse } from '@vercel/node'; const FILE_URLS: Record = { deals: "https://www.dropbox.com/scl/fi/3mm5m4e04myhqt59piefs/Deals-Amazon-2025.xlsx?rlkey=6llr0xhs6di0c3d8o96ashzmv&st=ggu0z7hu&dl=1", promos: "https://www.dropbox.com/scl/fi/ufhej9do9w839oyyfrpk3/Promos_Amazon_2025_all-countries.xlsx?rlkey=4foano9dt5h3sl58l35vqg89d&st=wu0t56wh&dl=1", chargebacks: "https://www.dropbox.com/scl/fi/m2qr2cxhtgkc48acjrrgx/Amazon-Operational-Chargebacks-2025.xlsx?rlkey=vlrz4qfydsjtikgh0ylivocjq&st=zdhmjvaz&dl=1", }; export default async function handler(req: VercelRequest, res: VercelResponse) { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); if (req.method === 'OPTIONS') { return res.status(200).end(); } const file = req.query.file as string; const url = FILE_URLS[file]; if (!url) { return res.status(400).json({ error: `Unknown file: "${file}". Valid options: deals, promos, chargebacks` }); } try { console.log(`[fetch-mkt-data] Fetching ${file} from Dropbox...`); const response = await fetch(url, { cache: 'no-store', headers: { 'Pragma': 'no-cache', 'Cache-Control': 'no-cache' } }); if (!response.ok) { throw new Error(`Dropbox responded with ${response.status}`); } const buffer = await response.arrayBuffer(); console.log(`[fetch-mkt-data] Successfully fetched ${file}, size:`, buffer.byteLength); res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); res.status(200).send(Buffer.from(buffer)); } catch (error: any) { console.error(`[fetch-mkt-data] Error fetching ${file}:`, error); res.status(500).json({ error: error.message }); } }