import { NextResponse } from 'next/server';
import { db } from '@/db/drizzle';
import { testimony } from '@/db/schema';

export async function GET() {
  try {
    const testimonies = await db.select().from(testimony);
    return NextResponse.json(testimonies);
  } catch (error) {
    console.error('Error fetching testimonies:', error);
    return NextResponse.json(
      { message: 'Failed to fetch testimonies' },
      { status: 500 }
    );
  }
}

export async function POST(req: Request) {
  try {
    const formData = await req.formData();

    const name = formData.get('name')?.toString() ?? '';
    const position = formData.get('position')?.toString() ?? '';
    const company = formData.get('company')?.toString() ?? '';
    const content = formData.get('content')?.toString() ?? '';
    const image = formData.get('image')?.toString() ?? '';

    const newTestimony = await db.insert(testimony).values({
      id: crypto.randomUUID(),
      name,
      position,
      company,
      content,
      image,
      createdAt: new Date(),
      updatedAt: new Date(),
    });

    return NextResponse.json(newTestimony, { status: 201 });
  } catch (error: any) {
    console.error('Error creating testimony:', error);
    return NextResponse.json(
      { message: error.message || 'Failed to create testimony' },
      { status: 500 }
    );
  }
}
