import { prisma } from '@peyzajart/db'
import Link from 'next/link'
import AdminDealersClient, { type DealerRow } from '../../../components/AdminDealersClient'

export const dynamic = 'force-dynamic'

export default async function AdminDealersPage() {
  const dealers = await prisma.dealer.findMany({
    where: { isAdmin: false },
    orderBy: { createdAt: 'desc' },
    include: { _count: { select: { orders: true } } },
  })

  const rows: DealerRow[] = dealers.map(d => ({
    id: d.id,
    companyName: d.companyName,
    contactName: d.contactName,
    dealerCode: d.dealerCode,
    email: d.email,
    phone: d.phone,
    discountRate: d.discountRate,
    isActive: d.isActive,
    status: d.status,
    createdAt: d.createdAt.toISOString(),
    orderCount: d._count.orders,
  }))

  const pending = rows.filter(d => d.status === 'PENDING')
  const active = rows.filter(d => d.status !== 'PENDING')

  return (
    <div className="p-6 md:p-8">
      <div className="mb-6 flex items-center justify-between">
        <div>
          <h1 className="font-display text-4xl font-light text-brown">Bayiler</h1>
          <p className="font-body text-sm text-brown/50 mt-1">
            {active.length} kayıtlı bayi
            {pending.length > 0 && <span className="text-orange"> • {pending.length} bekleyen başvuru</span>}
          </p>
        </div>
        <Link
          href="/admin/dealers/new"
          className="px-5 py-2 rounded-lg bg-brown text-cream font-body text-sm tracking-widest uppercase hover:bg-earth transition-colors"
        >
          + Yeni Bayi
        </Link>
      </div>

      <AdminDealersClient active={active} pending={pending} />
    </div>
  )
}
