import { sql } from '@vercel/postgres'; import { getUserFromRequest } from '../../lib/permission-middleware'; export default async function handler(req, res) { if (req.method !== 'GET') { return res.status(405).json({ error: 'Method not allowed' }); } try { // Get authenticated user const user = await getUserFromRequest(req); if (!user) { return res.status(401).json({ error: 'Authentication required' }); } // Get user's decks from database const result = await sql` SELECT d.*, COUNT(dc.card_id) as card_count, COALESCE(SUM(cards.market_price * dc.quantity), 0) as total_value FROM decks d LEFT JOIN deck_cards dc ON d.id = dc.deck_id LEFT JOIN cards ON dc.card_id = cards.id WHERE d.user_id = ${user.userId} GROUP BY d.id ORDER BY d.updated_at DESC `; const decks = result.rows.map(deck => ({ id: deck.id, name: deck.name, description: deck.description, game: deck.game, cardCount: parseInt(deck.card_count) || 0, value: parseFloat(deck.total_value) || 0, createdAt: deck.created_at, updatedAt: deck.updated_at })); res.status(200).json(decks); } catch (error) { console.error('Error fetching decks:', error); res.status(500).json({ error: 'Failed to fetch decks' }); } }