feat(housekeeping): personalize command deck
This commit is contained in:
1 parent
300ac0ef95
commit
5574e601bb
12 files changed
+1549
-1
No files matched your search
@@ -0,0 +1,45 @@
|
||||
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<HousekeepingResult<readonly HousekeepingRecentItem[]>> {
|
||||
return recentWorkService.load(context);
|
||||
}
|
||||
|
||||
export async function recordHousekeepingRouteVisit(
|
||||
routeId: string,
|
||||
context: HousekeepingCapabilityContext,
|
||||
): Promise<HousekeepingResult<HousekeepingRecentItem>> {
|
||||
return recentWorkService.recordVisit(routeId, context);
|
||||
}
|
||||
Reference in new issue
Block a user