import { createApiRoute, requireAuth } from '@/utils/apiRouteHandler';
import { serverApiClient } from '@/utils/serverApiClient';

export const dynamic = 'force-dynamic'; // Disable caching for cart updates

export const POST = createApiRoute(
  requireAuth(async (req, { token }) => {
    try {
      const body = await req.json();
      const { cart_id, quantity } = body;

      console.log('Cart Update Request:', { cart_id, quantity });

      if (!cart_id || !quantity) {
        return {
          success: false,
          message: 'Cart ID and quantity are required',
        };
      }

      const result = await serverApiClient(`cart/update/${cart_id}`, {
        method: 'POST',
        body: JSON.stringify({ quantity }),
        headers: {
          'Content-Type': 'application/json',
        },
        cache: 'no-store', // Don't cache POST requests
      });

      console.log('Cart Update Result:', result);

      if (!result.success) {
        return {
          success: false,
          message: result.message || 'Failed to update cart',
        };
      }

      return result;
    } catch (error: any) {
      console.error('Cart Update Error:', error);
      return {
        success: false,
        message: error.message || 'Failed to update cart',
      };
    }
  })
);
