import { NextRequest, NextResponse } from 'next/server';
import { authLimiter } from '@/lib/middleware/rateLimiter';

/**
 * Login endpoint with rate limiting
 * Limited to 5 attempts per 15 minutes per IP
 */
export async function POST(request: NextRequest) {
  // Apply rate limiting
  const rateLimitResult = await authLimiter(request);
  if (rateLimitResult) return rateLimitResult;

  try {
    const body = await request.json();
    const { email, password } = body;

    // TODO: Implement actual authentication logic
    // This is a placeholder - actual auth will be handled by backend

    // For now, forward to backend API
    const backendUrl = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3020';
    const response = await fetch(`${backendUrl}/api/v1/auth/login`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ email, password }),
    });

    const data = await response.json();

    if (!response.ok) {
      return NextResponse.json(data, { status: response.status });
    }

    return NextResponse.json(data, { status: 200 });
  } catch (error) {
    console.error('[Auth] Login error:', error);
    return NextResponse.json(
      {
        error: 'AUTH_LOGIN_FAILED',
        message: 'Login failed. Please try again.',
      },
      { status: 500 }
    );
  }
}
