import { db } from "@/lib/db"; import type { CatalogueCategory, PoTerm } from "@/lib/terms"; /** Active categories (ordered) each with their active clause texts — for the PO T&C editor (#11). */ export async function getTermsCatalogue(): Promise { const cats = await db.termsCategory.findMany({ where: { isActive: true }, orderBy: [{ sortOrder: "asc" }, { name: "asc" }], include: { clauses: { where: { isActive: true }, orderBy: [{ sortOrder: "asc" }, { createdAt: "asc" }], select: { text: true }, }, }, }); return cats.map((c) => ({ id: c.id, name: c.name, clauses: c.clauses.map((x) => x.text) })); } /** The default T&C set pre-filled on a NEW PO — every active isDefault clause, ordered. */ export async function getDefaultPoTerms(): Promise { const rows = await db.termsCondition.findMany({ where: { isDefault: true, isActive: true, category: { isActive: true } }, orderBy: [{ category: { sortOrder: "asc" } }, { sortOrder: "asc" }], select: { text: true, category: { select: { name: true } } }, }); return rows.map((r) => ({ category: r.category.name, text: r.text })); }