/**
 * When true, the verification domain is served by the in-memory mock (apis/mockApi.ts) behind the
 * VerificationApi seam. The b6 routes exist server-side, but — like `catalog` — the mock lets the full
 * nurse flow (checklist → identity run → credential upload → under-review → admin-approval → verified
 * badge + publish gate) demo standalone before the backend is reachable in this environment. Flip to
 * false to hit the live endpoints — no hook/component changes (see
 * dev/shared-working-context/reports/mocks-registry.md).
 */
export const USE_VERIFICATION_MOCK = true;

/**
 * The checklist is **moderately fresh** — submitting a step changes it, and every mutation invalidates
 * it, so a short staleTime avoids a refetch when B3 and B6 mount from the same cached query.
 */
export const VERIFICATION_STATUS_STALE_TIME = 30_000;

/** The public trust badge changes only on a step decision / suspension / expiry — keep it warm longer. */
export const TRUST_BADGE_STALE_TIME = 5 * 60_000; // 5 min
export const TRUST_BADGE_GC_TIME = 30 * 60_000; // 30 min

/** Client-side document guardrails (mirrors the b6 `IObjectStorage` limits). jpg/png/pdf, 5 MB cap. */
export const ACCEPTED_DOCUMENT_TYPES: readonly string[] = ['image/jpeg', 'image/png', 'application/pdf'] as const;
export const ACCEPTED_IMAGE_TYPES: readonly string[] = ['image/jpeg', 'image/png'] as const;
export const MAX_DOCUMENT_SIZE_BYTES = 5 * 1024 * 1024; // 5 MB

/** The national-ID is a 10-digit code with an official checksum — validated before the KYC run. */
export const NATIONAL_ID_LENGTH = 10;

/**
 * Admin review queue — moderately fresh; a decision invalidates it. `keepPreviousData` + a per-page key
 * make paging flicker-free, so a short `staleTime` is enough.
 */
export const ADMIN_QUEUE_STALE_TIME = 20_000;
export const ADMIN_QUEUE_PAGE_SIZE = 20;

/** A single admin case — same freshness as the queue; invalidated on every decide / approve / reject. */
export const ADMIN_CASE_STALE_TIME = 20_000;

/**
 * A document's **signed GET URL is short-lived** (server issues ~60 s URLs). Fetch it on demand and keep it
 * out of long-term cache: a short `staleTime` re-fetches a fresh URL on reopen; a short `gcTime` drops the
 * stale URL soon after the viewer closes (never retry — a failed/expired sign is surfaced, not re-hammered).
 */
export const SIGNED_DOCUMENT_URL_STALE_TIME = 30_000;
export const SIGNED_DOCUMENT_URL_GC_TIME = 60_000;
