import { NextResponse } from 'next/server';
import { prisma } from '@/lib/prisma';

export async function GET(request: Request) {
  try {
    const invoices = await prisma.farmInvoice.findMany({
      include: {
        farm: { select: { name: true } }
      },
      orderBy: { date: 'desc' }
    });
    return NextResponse.json(invoices);
  } catch (e) {
    console.error(e);
    return NextResponse.json({ error: 'Error fetching invoices' }, { status: 500 });
  }
}

export async function POST(request: Request) {
  try {
    const body = await request.json();
    const { farmId, invoiceNumber, amount, date } = body;

    const invoice = await prisma.farmInvoice.create({
      data: {
        farmId,
        invoiceNumber,
        amount: Number(amount),
        date: new Date(date)
      },
      include: {
        farm: { select: { name: true } }
      }
    });

    return NextResponse.json(invoice);
  } catch (e) {
    console.error(e);
    return NextResponse.json({ error: 'Error creating invoice' }, { status: 500 });
  }
}
