godcrm/god_frame/lib/core/config.dart
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

96 lines
3.4 KiB
Dart

/// GOD Frame app configuration constants.
class AppConfig {
AppConfig._();
/// Default CRM backend URL (production).
static const String defaultBaseUrl = 'https://crm.hltrn.cc';
/// Development CRM backend URL.
static const String devBaseUrl = 'https://devcrm.hltrn.cc';
/// API version prefix.
static const String apiPrefix = '/api/v3';
/// Frame Noa endpoint path.
static const String frameNoaPath = '/frame/noa';
/// Auth endpoint paths.
static const String loginPath = '/auth/login';
static const String logoutPath = '/auth/logout';
static const String mePath = '/auth/me';
static const String refreshPath = '/auth/refresh';
/// Google OAuth endpoint paths.
static const String googleTokenPath = '/auth/google/token';
static const String googleConfigPath = '/auth/google/config';
static const String googleMobileAuthUrlPath = '/auth/google/mobile-auth-url';
/// Google Web Client ID — used by native Google Sign-In to get access_token.
/// This is the Web client ID from Google Cloud Console, NOT Android client ID.
static const String googleWebClientId =
'791263961317-ejnp56q23s45dsrkvps0eo094aiva1sk.apps.googleusercontent.com';
/// Chat endpoint paths.
static const String conversationsPath = '/chat/conversations';
/// AI conversations path (supports PUT for title update).
static const String aiConversationsPath = '/ai/conversations';
/// Spaces endpoint path.
static const String spacesPath = '/spaces';
/// File upload path.
static const String uploadPath = '/files/upload';
/// Tickets path.
static const String ticketsPath = '/tickets';
/// Projects path.
static const String projectsPath = '/projects';
/// Tables path (generic table listing).
static const String tablesPath = '/tables';
/// Rows path template (append /{tableId}/rows).
static const String rowsPathTemplate = '/tables';
/// Agents table (for @mentions).
static const String agentsTablePath = '/tables/1784/rows';
/// Users/contacts path.
static const String usersPath = '/users';
/// Secure storage keys.
static const String tokenKey = 'jwt_token';
static const String refreshTokenKey = 'refresh_token';
static const String serverUrlKey = 'server_url';
static const String pairedDeviceKey = 'paired_frame_uuid';
/// BLE constants for Brilliant Frame.
static const String frameServiceUuid = '7a230001-5475-a6a4-654c-8431f6ad49c4';
static const String frameTxUuid = '7a230002-5475-a6a4-654c-8431f6ad49c4';
static const String frameRxUuid = '7a230003-5475-a6a4-654c-8431f6ad49c4';
/// Frame display dimensions.
static const int frameDisplayWidth = 640;
static const int frameDisplayHeight = 400;
/// Audio capture settings.
static const int audioSampleRate = 8000;
static const int audioBitDepth = 8;
/// Request timeouts.
static const Duration connectTimeout = Duration(seconds: 15);
static const Duration receiveTimeout = Duration(seconds: 60);
static const Duration bleTimeout = Duration(seconds: 30);
/// BLE keepalive interval — send hold every N seconds to prevent Frame sleep.
/// Frame glasses disconnect after ~10-15s of no BLE activity.
static const Duration bleKeepaliveInterval = Duration(seconds: 5);
/// Max message history sent with Frame requests.
static const int maxFrameHistory = 10;
/// Max file upload size (10 MB).
static const int maxUploadSize = 10 * 1024 * 1024;
}