/**
 * When true, the reviews domain is served by the in-memory mock (`apis/mockApi.ts`) behind the `ReviewsApi`
 * seam.
 *
 * **Mock is primary this phase.** b14 serves the review **submit**, the public **nurse reviews** page, and
 * the tag rollup — but there is **no** review-eligibility read and **no** my-review-for-booking read
 * (**REQ-026**), and the whole moderation transition (`pending_moderation → published`) is admin-only (f15).
 * The mock reads the shared **f8 bookings store** to gate eligibility on a completed booking, tracks the
 * customer's submission so the "under review" state persists, seeds a small published-review list per nurse
 * for the profile tab, and exposes a dev-only `__mockPublishSubmittedReview` so a human can watch a submitted
 * review appear on the profile (the f15 moderation UI is deferred). Flip to `false` once REQ-026 lands — no
 * hook/component change (only `clientApi.ts`'s two gap methods start returning real data).
 */
export const USE_REVIEWS_MOCK = false;

/** Page size for the public nurse-reviews list (api-conventions `pageSize`). */
export const REVIEWS_PAGE_SIZE = 5;

/**
 * The published-review list moves slowly (a moderation transition is a rare admin action) — a generous
 * `staleTime` means revisiting a profile never needlessly refetches. Eligibility/my-review are per-booking
 * and are **invalidated on submit**, so their staleness is short (a submit must flip the CTA immediately).
 */
export const NURSE_REVIEWS_STALE_TIME = 2 * 60 * 1000;
export const REVIEW_ELIGIBILITY_STALE_TIME = 30 * 1000;
export const REVIEWS_GC_TIME = 10 * 60 * 1000;

/**
 * The admin moderation worklist is an actively-worked queue — a short `staleTime` keeps it fresh as items are
 * moderated by this (or another) admin, while still serving from cache during quick filter/page switches. A
 * moderation mutation invalidates it immediately, so this only governs background freshness.
 */
export const MODERATION_QUEUE_STALE_TIME = 20 * 1000;

/**
 * The low-rating support-alert threshold (server config, default ≤ 2). The mock echoes it on
 * `SubmitReviewResult.lowRatingAlertRaised`; the **UI never surfaces it** — it exists only so the mock's
 * result shape matches the wire.
 */
export const MIN_RATING_FOR_SUPPORT_ALERT = 2;
