import { NextRequest, NextResponse } from 'next/server'; import type { ApiResponse, EventsQueryParams, EventType } from '@/lib/types'; import { getEvents, getEventsSummary, getTimeSeriesData, getGeoAnalytics, getDeviceAnalytics } from '@/lib/analytics'; // 获取事件列表 export async function GET(request: NextRequest) { try { const searchParams = request.nextUrl.searchParams; const params: EventsQueryParams = { startTime: searchParams.get('startTime') || undefined, endTime: searchParams.get('endTime') || undefined, eventType: searchParams.get('eventType') as EventType || undefined, linkId: searchParams.get('linkId') || undefined, linkSlug: searchParams.get('linkSlug') || undefined, userId: searchParams.get('userId') || undefined, teamId: searchParams.get('teamId') || undefined, projectId: searchParams.get('projectId') || undefined, page: searchParams.has('page') ? parseInt(searchParams.get('page')!, 10) : 1, pageSize: searchParams.has('pageSize') ? parseInt(searchParams.get('pageSize')!, 10) : 20, sortBy: searchParams.get('sortBy') || undefined, sortOrder: (searchParams.get('sortOrder') as 'asc' | 'desc') || undefined }; const { events, total } = await getEvents(params); const response: ApiResponse = { success: true, data: events, meta: { total, page: params.page, pageSize: params.pageSize } }; return NextResponse.json(response); } catch (error) { const response: ApiResponse = { success: false, error: error instanceof Error ? error.message : 'Unknown error occurred' }; return NextResponse.json(response, { status: 500 }); } }