import { NextRequest, NextResponse } from 'next/server' import { auth } from '@/auth' import { memoryEchoService } from '@/lib/ai/services/memory-echo.service' /** * GET /api/ai/echo * Fetch next Memory Echo insight for current user */ export async function GET(req: NextRequest) { try { const session = await auth() if (!session?.user?.id) { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ) } // Get next insight (respects frequency limits) const insight = await memoryEchoService.getNextInsight(session.user.id) if (!insight) { return NextResponse.json( { insight: null, message: 'No new insights available at the moment. Memory Echo will notify you when we discover connections between your notes.' } ) } return NextResponse.json({ insight }) } catch (error) { return NextResponse.json( { error: 'Failed to fetch Memory Echo insight' }, { status: 500 } ) } } /** * POST /api/ai/echo * Submit feedback or mark as viewed */ export async function POST(req: NextRequest) { try { const session = await auth() if (!session?.user?.id) { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ) } const body = await req.json() const { action, insightId, feedback } = body if (action === 'view') { // Mark insight as viewed await memoryEchoService.markAsViewed(insightId) return NextResponse.json({ success: true }) } else if (action === 'feedback') { // Submit feedback (thumbs_up or thumbs_down) if (!feedback || !['thumbs_up', 'thumbs_down'].includes(feedback)) { return NextResponse.json( { error: 'Invalid feedback. Must be thumbs_up or thumbs_down' }, { status: 400 } ) } await memoryEchoService.submitFeedback(insightId, feedback) return NextResponse.json({ success: true }) } else { return NextResponse.json( { error: 'Invalid action. Must be "view" or "feedback"' }, { status: 400 } ) } } catch (error) { return NextResponse.json( { error: 'Failed to process request' }, { status: 500 } ) } }