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

export const dynamic = 'force-dynamic';

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

    const result = await serverApiClient('apply-coupon', {
      method: 'POST',
      body: JSON.stringify(body),
      cache: 'no-store',
    });

    return result;
  })
);

export const GET = createApiRoute(
  requireAuth(async (req, { token }) => {
    const { searchParams } = new URL(req.url);
    const code = searchParams.get('code');
    const amount = searchParams.get('amount');

    if (!code || !amount) {
      return {
        success: false,
        message: 'Code and amount are required',
      };
    }

    const result = await serverApiClient(`apply-coupon-code?code=${code}&amount=${amount}`, {
      method: 'GET',
      cache: 'no-store',
    });

    return result;
  })
);
