|
@@ -0,0 +1,72 @@
|
|
|
|
|
+import { NextRequest, NextResponse } from 'next/server';
|
|
|
|
|
+import { prisma } from '@/lib/prisma';
|
|
|
|
|
+
|
|
|
|
|
+export async function GET(
|
|
|
|
|
+ request: NextRequest,
|
|
|
|
|
+ { params }: { params: Promise<{ id: string }> }
|
|
|
|
|
+) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const { id } = await params;
|
|
|
|
|
+ const importId = parseInt(id);
|
|
|
|
|
+
|
|
|
|
|
+ if (isNaN(importId)) {
|
|
|
|
|
+ return NextResponse.json(
|
|
|
|
|
+ { error: 'Invalid import ID' },
|
|
|
|
|
+ { status: 400 }
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Check if import exists
|
|
|
|
|
+ const importRecord = await prisma.import.findUnique({
|
|
|
|
|
+ where: { id: importId }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if (!importRecord) {
|
|
|
|
|
+ return NextResponse.json(
|
|
|
|
|
+ { error: 'Import not found' },
|
|
|
|
|
+ { status: 404 }
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Get basic summary data
|
|
|
|
|
+ const totalRecords = await prisma.cintasInstallCalendar.count({
|
|
|
|
|
+ where: { importId }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ const cintasSummaries = await prisma.cintasSummary.findMany({
|
|
|
|
|
+ where: { importId },
|
|
|
|
|
+ orderBy: { week: 'asc' }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // Get file info
|
|
|
|
|
+ const file = importRecord.fileId ? await prisma.file.findUnique({
|
|
|
|
|
+ where: { id: importRecord.fileId }
|
|
|
|
|
+ }) : null;
|
|
|
|
|
+
|
|
|
|
|
+ const summary = {
|
|
|
|
|
+ totalRecords,
|
|
|
|
|
+ totalWeeks: cintasSummaries.length,
|
|
|
|
|
+ cintasSummaries: cintasSummaries.map(summary => ({
|
|
|
|
|
+ week: summary.week,
|
|
|
|
|
+ trrTotal: summary.trrTotal,
|
|
|
|
|
+ fourWkAverages: summary.fourWkAverages,
|
|
|
|
|
+ trrPlus4Wk: summary.trrPlus4Wk,
|
|
|
|
|
+ powerAdds: summary.powerAdds
|
|
|
|
|
+ }))
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ return NextResponse.json({
|
|
|
|
|
+ importId,
|
|
|
|
|
+ fileName: file?.filename || 'Unknown',
|
|
|
|
|
+ uploadDate: importRecord.createdAt,
|
|
|
|
|
+ summary
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('Error fetching import summary:', error);
|
|
|
|
|
+ return NextResponse.json(
|
|
|
|
|
+ { error: 'Failed to fetch import summary' },
|
|
|
|
|
+ { status: 500 }
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+}
|