import "server-only"; import { desc, eq } from "drizzle-orm"; import type { HousekeepingCapabilityContext, HousekeepingResult, } from "@/features/housekeeping/foundation/contracts"; import type { HousekeepingRecentItem } from "@/features/housekeeping/foundation/recent/recent-work"; import { createHousekeepingRecentWorkService } from "@/features/housekeeping/foundation/recent/recent-work"; import { createHousekeepingRegistry } from "@/features/housekeeping/foundation/registry"; import { HOUSEKEEPING_MANIFESTS } from "@/features/housekeeping/manifests"; import { AdminAuditLog, db } from "@/lib/db"; import { logAudit } from "@/lib/services/audit"; const recentWorkService = createHousekeepingRecentWorkService({ registry: createHousekeepingRegistry(HOUSEKEEPING_MANIFESTS), async loadRows(userId, limit) { return db .select({ action: AdminAuditLog.action, target: AdminAuditLog.target, domain: AdminAuditLog.domain, outcome: AdminAuditLog.outcome, createdAt: AdminAuditLog.createdAt, }) .from(AdminAuditLog) .where(eq(AdminAuditLog.userId, userId)) .orderBy(desc(AdminAuditLog.id)) .limit(limit); }, writeAudit: logAudit, }); export async function loadHousekeepingRecentWork( context: HousekeepingCapabilityContext, ): Promise> { return recentWorkService.load(context); } export async function recordHousekeepingRouteVisit( routeId: string, context: HousekeepingCapabilityContext, ): Promise> { return recentWorkService.recordVisit(routeId, context); }