50e4f43738
Implement company AI onboarding/recommendation models, services, repository, and tender UI integration with supporting tests. Co-authored-by: Cursor <cursoragent@cursor.com>
22 lines
1022 B
Dart
22 lines
1022 B
Dart
/// Keys used for values persisted in [SharedPreferences].
|
|
///
|
|
/// Centralised here so the auth flow, the network layer and the router all
|
|
/// agree on the same key. Renaming a key in one place would otherwise silently
|
|
/// diverge from the others (e.g. the interceptor's defensive logout fallback).
|
|
class PrefKeys {
|
|
PrefKeys._();
|
|
|
|
static const String bearer = 'bearer';
|
|
static const String refreshToken = 'refresh_token';
|
|
static const String customerData = 'customer_data';
|
|
|
|
/// Fingerprint (hash of the company's document ids + website) of the last
|
|
/// profile version we triggered AI onboarding for. Lets us skip redundant
|
|
/// `POST /api/v1/onboarding` calls until the company's data actually changes.
|
|
static const String onboardingFingerprint = 'ai_onboarding_fingerprint';
|
|
|
|
/// Epoch milliseconds when AI onboarding was last started. Used by the
|
|
/// Recommended tab to show a "still learning" hint for a short grace period.
|
|
static const String onboardingStartedAt = 'ai_onboarding_started_at';
|
|
}
|