import { NextRequest, NextResponse } from 'next/server';

/**
 * Google OAuth回调处理API
 * 注意：POST 方法已废弃，业务逻辑已移至 /users/oauth/callback 页面
 * 此文件现在仅用于处理 Google 的 GET 回调重定向
 */

/**
 * 根据请求获取正确的redirect_uri
 */
function getRedirectUri(request: NextRequest): string {
  const host = request.headers.get('host') || '';

  if (host.includes('localhost') || host.includes('127.0.0.1')) {
    // 本地开发环境：使用实际的端口号（可能是3000或3001）
    const protocol = 'http';
    return `${protocol}://${host}/api/auth/google/callback`;
  } else if (host.includes('movieflow.net')) {
    return 'https://www.movieflow.net/api/auth/google/callback';
  } else if (host.includes('movieflow.ai')) {
    return 'https://www.movieflow.ai/api/auth/google/callback';
  } else {
    // 默认使用生产环境
    return 'https://www.movieflow.ai/api/auth/google/callback';
  }
}

/**
 * 处理GET请求 - Google OAuth回调
 * 将GET请求重定向到页面路由进行处理
 */
export async function GET(request: NextRequest) {
  const { searchParams } = new URL(request.url);
  const code = searchParams.get('code');
  const state = searchParams.get('state');

  if (!code || !state) {
    return NextResponse.json(
        {
          success: false,
          message: 'Missing required parameters: code and state'
        },
        { status: 400 }
    );
  }

  // 重定向到页面路由，让页面处理OAuth回调
  const callbackUrl = `/users/oauth/callback?code=${encodeURIComponent(code)}&state=${encodeURIComponent(state)}`;

  // 修复：确保使用正确的域名进行重定向
  const host = request.headers.get('host') || 'www.movieflow.net';
  const protocol = request.headers.get('x-forwarded-proto') || 'https';
  const fullCallbackUrl = `${protocol}://${host}${callbackUrl}`;

  console.log('🔍 前端API重定向调试:');
  console.log('  - request.url:', request.url);
  console.log('  - host header:', host);
  console.log('  - protocol:', protocol);
  console.log('  - 重定向到:', fullCallbackUrl);

  return NextResponse.redirect(fullCallbackUrl);
}
