/** * GET /api/cart * * Get the current user's shopping cart with all items * * Features: * - Returns cart for authenticated users (by userId) * - Returns cart for guest users (by sessionId) * - Automatically removes unavailable products (inactive or out of stock) * - Calculates totals and subtotals * - Returns list of removed items if any were auto-cleaned * * Response: * { * cart: { id, userId, sessionId, createdAt, updatedAt }, * items: [{ id, product, quantity, subtotal, addedAt }], * total: number, * itemCount: number, * removedItems?: string[] // Names of removed products * } */ export default defineEventHandler(async (event) => { try { // Get or create cart for current user/session const cart = await getOrCreateCart(event) // Get cart with items (auto-cleans unavailable products) const cartSummary = await getCartWithItems(cart.id) return cartSummary } catch (error) { // Log error for debugging console.error('Error fetching cart:', error) // Return empty cart on error return { cart: null, items: [], total: 0, itemCount: 0, } } })