import { ShellPage } from "@/components/page-templates"; import { Button, SectionCard } from "@/components/ui"; import { prisma } from "@/lib/prisma"; import { getSession } from "@/lib/auth"; import { redirect } from "next/navigation"; export default async function AutoAssignmentSettingsPage() { const session = await getSession(); if (!session) { redirect("/login"); } if (session.role === "agent") { redirect("/unauthorized"); } const tenantFilter = session.role === "super_admin" ? {} : { tenantId: session.tenantId }; const [pendingCount, openCount, agentCount, unassignedCount] = await Promise.all([ prisma.conversation.count({ where: { ...tenantFilter, status: "PENDING" } }), prisma.conversation.count({ where: { ...tenantFilter, status: "OPEN" } }), prisma.user.count({ where: { ...tenantFilter, role: { code: "AGENT" } } }), prisma.conversation.count({ where: { ...tenantFilter, assignedUserId: null, status: { in: ["OPEN", "PENDING"] } } }) ]); const autoRuleSuggestion = agentCount > 0 ? `Round-robin aktif (${agentCount} agent): prioritas agent akan otomatis berputar saat penugasan masuk.` : "Tambahkan agent terlebih dahulu sebelum auto-assignment dapat berjalan penuh."; return (

Auto-assign belum memiliki field konfigurasi per tenant di DB saat ini.

Open: {openCount} • Pending: {pendingCount} • Unassigned: {unassignedCount} • Agent aktif: {agentCount}

{autoRuleSuggestion}

Rekomendasi rule: utamakan penugasan ke agent dengan beban kerja paling rendah dari hitungan `open + pending`.

); }