import { prisma } from "@/lib/prisma"
import POSClient from "./POSClient"

export default async function POSPage() {
  const [clients, products, settings] = await Promise.all([
    prisma.client.findMany({
      orderBy: { name: 'asc' },
      include: {
        invoices: true,
      },
    }),
    prisma.product.findMany({
      orderBy: { name: 'asc' },
    }),
    prisma.settings.findUnique({
      where: { id: 'default' },
    }),
  ])

  const clientsWithStats = clients.map(client => ({
    id: client.id,
    name: client.name,
    totalPurchases: client.invoices.reduce((sum, inv) => sum + Number(inv.total), 0),
    invoiceCount: client.invoices.length,
  }))

  const productsWithNumbers = products.map((p: any) => ({
    id: p.id,
    sku: p.sku,
    name: p.name,
    salePrice: Number(p.salePrice),
    category: p.category,
    quantity: p.quantity,
    isFree: p.isFree,
  }))

  const settingsWithTva = settings as any
  const tvaRate = settingsWithTva?.defaultTva !== undefined ? Number(settingsWithTva.defaultTva) : 10

  return <POSClient clients={clientsWithStats} products={productsWithNumbers} tvaRate={tvaRate} />
}