import { auth } from '../../../auth'
import { prisma } from '@peyzajart/db'
import ProductCard from '../../../components/ProductCard'

export const dynamic = 'force-dynamic'

export default async function ProductsPage() {
  const session = await auth()
  const discountRate = session?.user.discountRate ?? 0

  const products = await prisma.product.findMany({
    where: { isActive: true },
    orderBy: [{ category: 'asc' }, { nameTr: 'asc' }],
    select: {
      id: true,
      slug: true,
      nameTr: true,
      category: true,
      size: true,
      priceB2B: true,
      stock: true,
      images: true,
    },
  })

  return (
    <div className="p-6 md:p-8">
      <div className="mb-8 flex items-end justify-between">
        <div>
          <h1 className="font-display text-4xl font-light text-brown">Ürün Kataloğu</h1>
          <p className="font-body text-sm text-brown/50 mt-1">
            {products.length} ürün
            {discountRate > 0 && (
              <span className="ml-3 text-earth font-medium">%{discountRate} bayi indiriminiz uygulandı</span>
            )}
          </p>
        </div>
      </div>

      {products.length === 0 ? (
        <p className="font-body text-center text-brown/40 py-20">Aktif ürün bulunamadı.</p>
      ) : (
        <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-5">
          {products.map((product) => {
            const discountedPrice = parseFloat(
              (product.priceB2B * (1 - discountRate / 100)).toFixed(2)
            )
            return (
              <ProductCard
                key={product.id}
                product={product}
                discountedPrice={discountedPrice}
                discountRate={discountRate}
              />
            )
          })}
        </div>
      )}
    </div>
  )
}
