/** * POST /api/me/last-seen * * Heartbeat endpoint — sets Profile.lastSeenAt = NOW() for the authenticated user. * No request body required. * * Phase 1 fallback: frontend calls this on a ~60s interval while app is foregrounded. * Phase 2 (TODO): replace with Supabase Edge-Function triggered on presence-leave * events for sub-second accuracy without client-side polling. * * Response: { lastSeenAt: ISOString } */ import { requireUser } from "../../utils/auth"; import { touchLastSeen } from "../../db/profile"; export default defineEventHandler(async (event) => { const user = await requireUser(event); const now = await touchLastSeen(user.id); return { success: true, data: { lastSeenAt: now.toISOString() } }; });