/** * Watches (issue #93, data-model.md §watches): explicit per-user * subscriptions to pages or whole ponds — the input side of the * notification model (#94). */ export const WATCH_TARGET_TYPES = ['page', 'pond'] as const; export type WatchTargetType = (typeof WATCH_TARGET_TYPES)[number]; export interface WatchView { id: string; targetType: WatchTargetType; targetId: string; /** Page title or pond name. */ name: string; /** Link target: `/p/` for ponds, `/p//` for pages. */ pondSlug: string; slug: string | null; createdAt: string; } export interface WatchListView { watches: WatchView[]; } /** The toggle state the page/pond headers need. */ export interface WatchStateView { watched: boolean; }