import { NextRequest, NextResponse } from 'next/server' import { authenticateUser, generateToken } from '@/shared/lib/auth' export async function POST(req: NextRequest) { try { const { email, password } = await req.json() // Validation if (!email || !password) { return NextResponse.json( { error: 'Email and password are required' }, { status: 400 } ) } // Authenticate user const user = await authenticateUser(email, password) if (!user) { return NextResponse.json( { error: 'Invalid credentials' }, { status: 401 } ) } // Generate JWT token const token = generateToken({ userId: user.id, email: user.email, }) // Create response with user data const response = NextResponse.json({ message: 'Login successful', token, user: { id: user.id, email: user.email, name: user.name, image: user.image, }, }) // Set auth token in cookie (HttpOnly for security) response.cookies.set('auth-token', token, { httpOnly: true, secure: process.env.NODE_ENV === 'production', sameSite: 'lax', maxAge: 60 * 60 * 24 * 7, // 7 days path: '/', }) return response } catch (error) { console.error('Login error:', error) return NextResponse.json( { error: 'Internal server error' }, { status: 500 } ) } }