/** * When true, the notifications domain is served by the in-memory mock (`apis/mockApi.ts`) behind the * `NotificationsApi` seam. * * **Mock is primary this phase.** The b1 endpoints are live and the real `clientApi.ts` maps them 1:1, but a * notification is only produced by other backend domains dispatching one (`INotificationDispatcher`) — none * of which run client-side while the upstream flows are mock-primary — so there'd be nothing to show. The * mock seeds a realistic **unread-first** feed spanning every deep-link class (booking / payment / ticket / * payout / review / refund) so `notificationDeepLink` is exercisable, and exposes a dev-only * `__mockPushNotification` to simulate a fresh notification arriving (the bell increments within the poll * interval — phase §7 step 4). Flip to `false` once the upstreams are real — no hook/component change. */ export const USE_NOTIFICATIONS_MOCK = false; /** Notification-center page size (api-conventions `pageSize`). */ export const NOTIFICATIONS_PAGE_SIZE = 20; /** * **Poll politely.** Only the unread **count** revalidates on an interval (stale-while-revalidate): the * cached count is served instantly, refetched every `UNREAD_COUNT_REFETCH_INTERVAL` and on window focus, and * treated fresh for `UNREAD_COUNT_STALE_TIME` so we never hammer the endpoint. The **list is not polled** — * only its own reads/mutations refetch it. */ export const UNREAD_COUNT_STALE_TIME = 45 * 1000; export const UNREAD_COUNT_REFETCH_INTERVAL = 60 * 1000; export const NOTIFICATIONS_LIST_STALE_TIME = 30 * 1000; export const NOTIFICATIONS_GC_TIME = 5 * 60 * 1000;