/** Free tier: scans per calendar month (locally reset on month change). */
export const FREE_SCAN_LIMIT = 15;

/** One-time launch bonus scans for the first registrations. */
export const LAUNCH_BONUS_SCANS = 100;

/** How many registrations the launch special covers. */
export const LAUNCH_CLAIM_LIMIT = 500;

/** Maximum accepted upload size (10 MB) — enforced before any body is buffered. */
export const MAX_UPLOAD_BYTES = 10 * 1024 * 1024;

/** Human-readable counterpart of {@link MAX_UPLOAD_BYTES} for UI copy. */
export const MAX_UPLOAD_MB = 10;

/** Maximum accepted JSON body size (1 MB). */
export const MAX_JSON_BODY_BYTES = 1024 * 1024;

/**
 * POST /api/receipts carries a data-URL preview (sanitize cap ~4 MB chars)
 * plus the extraction payload. 1 MB would drop a successful scan on persist.
 * One receipt with a max-size preview still fits; larger batches are chunked
 * client-side in `saveServerReceipts`.
 */
export const MAX_RECEIPTS_JSON_BYTES = 6 * 1024 * 1024;

/** Multipart guard: maximum number of form fields accepted per request. */
export const MAX_FORM_FIELDS = 20;

/** Multipart guard: maximum number of files accepted per request. */
export const MAX_FORM_FILES = 20;
