#!/bin/zsh echo "📡 Creating API Layer for RC Compatibility App..." BASE="src/app/api" ############################################# # CREATE DIRECTORY STRUCTURE ############################################# mkdir -p "$BASE/models" mkdir -p "$BASE/models/[id]" mkdir -p "$BASE/parts" mkdir -p "$BASE/parts/[id]" mkdir -p "$BASE/compatibility/model/[id]" mkdir -p "$BASE/compatibility/part/[id]" ############################################# # MODELS → /api/models ############################################# cat > "$BASE/models/route.js" << 'EOF' import { MODELS } from "@/src/lib/data/models"; export async function GET() { return Response.json(MODELS); } EOF ############################################# # MODEL BY ID → /api/models/[id] ############################################# cat > "$BASE/models/[id]/route.js" << 'EOF' import { MODELS } from "@/src/lib/data/models"; export async function GET(request, { params }) { const model = MODELS.find(m => m.id === params.id); if (!model) { return Response.json({ error: "Model not found" }, { status: 404 }); } return Response.json(model); } EOF ############################################# # PARTS → /api/parts ############################################# cat > "$BASE/parts/route.js" << 'EOF' import { PARTS } from "@/src/lib/data/parts"; export async function GET() { return Response.json(PARTS); } EOF ############################################# # PART BY ID → /api/parts/[id] ############################################# cat > "$BASE/parts/[id]/route.js" << 'EOF' import { PARTS } from "@/src/lib/data/parts"; export async function GET(request, { params }) { const part = PARTS.find(p => p.id === params.id); if (!part) { return Response.json({ error: "Part not found" }, { status: 404 }); } return Response.json(part); } EOF ############################################# # MODEL COMPATIBILITY → /api/compatibility/model/[id] ############################################# cat > "$BASE/compatibility/model/[id]/route.js" << 'EOF' import { getCompatibleParts } from "@/src/lib/compatibility/engine"; export async function GET(request, { params }) { const results = getCompatibleParts(params.id); if (!results.length) { return Response.json({ error: "No compatible parts or model not found" }, { status: 404 }); } return Response.json(results); } EOF ############################################# # PART COMPATIBILITY → /api/compatibility/part/[id] ############################################# cat > "$BASE/compatibility/part/[id]/route.js" << 'EOF' import { getCrossCompatibleModels } from "@/src/lib/compatibility/engine"; export async function GET(request, { params }) { const results = getCrossCompatibleModels(params.id); if (!results.length) { return Response.json({ error: "No compatible models or part not found" }, { status: 404 }); } return Response.json(results); } EOF echo "🎉 API Layer created successfully!"