import { type ActionFunctionArgs } from '@remix-run/node';
import { requireAuth } from '~/lib/.server/auth';
import { errorResponse } from '~/utils/api-response';
import { chatAction } from './chat.server';
import { mockChat } from './mock-chat.server';

export async function action(args: ActionFunctionArgs) {
  const authResult = await requireAuth(args.request, { isApi: true });

  if (authResult instanceof Response) {
    return authResult;
  }

  const userId = authResult.userInfo?.sub;
  if (!userId) {
    return errorResponse(401, '用户未登录');
  }

  const useMock = false;
  if (useMock) {
    return mockChat(args, 'mock_stream_text_1.txt');
  }

  return chatAction({ ...args, userId });
}
