import { NextRequest, NextResponse } from 'next/server' /** * POST /api/admin/companion/feedback * Submit feedback (bug report, feature request, general feedback) * Proxy to backend /api/feedback */ export async function POST(request: NextRequest) { try { const body = await request.json() // Validate required fields if (!body.type || !body.title || !body.description) { return NextResponse.json( { success: false, error: 'Missing required fields: type, title, description', }, { status: 400 } ) } // Validate feedback type const validTypes = ['bug', 'feature', 'feedback'] if (!validTypes.includes(body.type)) { return NextResponse.json( { success: false, error: 'Invalid feedback type. Must be: bug, feature, or feedback', }, { status: 400 } ) } // TODO: Replace with actual backend call // const backendUrl = process.env.BACKEND_URL || 'http://localhost:8000' // const response = await fetch(`${backendUrl}/api/feedback`, { // method: 'POST', // headers: { // 'Content-Type': 'application/json', // // Add auth headers // }, // body: JSON.stringify({ // type: body.type, // title: body.title, // description: body.description, // screenshot: body.screenshot, // sessionId: body.sessionId, // metadata: { // ...body.metadata, // source: 'companion', // timestamp: new Date().toISOString(), // userAgent: request.headers.get('user-agent'), // }, // }), // }) // // if (!response.ok) { // throw new Error(`Backend responded with ${response.status}`) // } // // const data = await response.json() // return NextResponse.json(data) // Mock response - just acknowledge the submission const feedbackId = `fb-${Date.now()}-${Math.random().toString(36).substr(2, 9)}` console.log('Feedback received:', { id: feedbackId, type: body.type, title: body.title, description: body.description.substring(0, 100) + '...', hasScreenshot: !!body.screenshot, sessionId: body.sessionId, }) return NextResponse.json({ success: true, message: 'Feedback submitted successfully', data: { feedbackId, submittedAt: new Date().toISOString(), }, }) } catch (error) { console.error('Submit feedback error:', error) return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Unknown error', }, { status: 500 } ) } } /** * GET /api/admin/companion/feedback * Get feedback history (admin only) */ export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) const type = searchParams.get('type') const limit = parseInt(searchParams.get('limit') || '10') // TODO: Replace with actual backend call // Mock response - empty list for now return NextResponse.json({ success: true, data: { feedback: [], total: 0, page: 1, limit, }, }) } catch (error) { console.error('Get feedback error:', error) return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Unknown error', }, { status: 500 } ) } }