import { PlaceholderActions, ShellPage } from "@/components/page-templates"; import { TablePlaceholder } from "@/components/placeholders"; import { getSession } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; import Link from "next/link"; function formatDate(date: Date | null | undefined) { if (!date) { return "-"; } return new Intl.DateTimeFormat("id-ID", { day: "2-digit", month: "short", year: "numeric" }).format(date); } function summarizeRules(raw: string | null) { if (!raw) { return "No rules defined"; } try { const parsed = JSON.parse(raw) as { description?: string }; if (parsed.description) { return parsed.description; } } catch { return raw; } return raw; } export default async function SegmentsPage() { const session = await getSession(); if (!session) { return (

Silakan login terlebih dahulu.

); } const tenantId = session.tenantId; const segments = await prisma.contactSegment.findMany({ where: { tenantId }, include: { _count: { select: { members: true } } }, orderBy: { updatedAt: "desc" } }); return ( } > [ {segment.name} , summarizeRules(segment.description ?? segment.rulesJson), String(segment._count.members), formatDate(segment.updatedAt) ])} /> ); }