import { requireUser } from '@/lib/auth';
import { prisma } from '@/lib/db';
import { Desk } from '@/components/desk/Desk';
import { resendVerification } from '@/app/(auth)/actions';
import { ResendVerify } from '@/components/ResetForms';
import type { DeskParcel } from '@/components/DeskMap';
import { apShort } from '@/lib/ap';
export const dynamic = 'force-dynamic';
const SHORT: Record<string, string> = { PENDING_PAYMENT: 'ödeme bekliyor', PAID: 'sırada', QUEUED: 'sırada', RENDERING: 'üretimde', DELIVERED: 'teslim', FAILED: 'hata', CANCELLED: 'iptal' };
export default async function L({ children }: { children: React.ReactNode }) {
  const u = await requireUser();
  const orders = await prisma.order.findMany({ where: { userId: u.id, status: { not: 'CANCELLED' } }, orderBy: { createdAt: 'desc' }, take: 300, select: { id: true, ada: true, parsel: true, mahalle: true, status: true, progress: true, progressMsg: true, geometry: true } });
  const all: DeskParcel[] = orders.filter((o) => o.geometry).map((o) => ({ key: o.id, geometry: o.geometry as never, label: `${apShort(o.ada, o.parsel)} · ${SHORT[o.status]}`, tone: ['RENDERING', 'QUEUED', 'PAID'].includes(o.status) ? 'main' : 'other' }));
  const active = orders.filter((o) => ['PAID', 'QUEUED', 'RENDERING'].includes(o.status)).reverse().map((o) => ({ id: o.id, label: `${o.mahalle} ${apShort(o.ada, o.parsel)}`, status: o.status, progress: o.progress, progressMsg: o.progressMsg }));
  const banner = !u.emailVerifiedAt ? (
    <div className="border-b border-ink/15 bg-signal-soft px-4 py-2.5 text-[13.5px]"><b>{u.email}</b> adresini doğrulayın; doğrulanmadan sipariş verilemez. <ResendVerify action={resendVerification} /></div>
  ) : null;
  return <Desk all={all} active={active} credits={u.credits} adminHref={u.role === 'ADMIN' ? '/krtf1krtf' : undefined} banner={banner}>{children}</Desk>;
}
