import { prisma } from "@/lib/prisma"; import LeadStatusSelect from "@/components/lead-status-select"; export const dynamic = "force-dynamic"; type SearchParams = Promise<{ q?: string; status?: string; }>; function formatLeadNumber(id: string, createdAt: Date) { const date = new Date(createdAt); const y = date.getFullYear(); const m = String(date.getMonth() + 1).padStart(2, "0"); const d = String(date.getDate()).padStart(2, "0"); return `WP-${y}${m}${d}-${id.slice(-6).toUpperCase()}`; } export default async function AdminLeadsPage({ searchParams, }: { searchParams: SearchParams; }) { const params = await searchParams; const q = params.q?.trim() || ""; const status = params.status?.trim() || ""; const leads = await prisma.lead.findMany({ where: { AND: [ q ? { OR: [ { company: { contains: q, mode: "insensitive" } }, { phone: { contains: q, mode: "insensitive" } }, { email: { contains: q, mode: "insensitive" } }, { message: { contains: q, mode: "insensitive" } }, ], } : {}, status ? { status: status as any } : {}, ], }, orderBy: { createdAt: "desc" }, }); return (

Заявки

{leads.map((lead) => ( ))} {leads.length === 0 && ( )}
Дата Заявка Компания Телефон Email Сообщение Статус Источник
{new Date(lead.createdAt).toLocaleString("ru-RU")} {formatLeadNumber(lead.id, lead.createdAt)} {lead.company} {lead.phone} {lead.email || "—"} {lead.message || "—"} {lead.source}
Пока заявок нет
); }