Spaces:
Sleeping
Sleeping
File size: 5,128 Bytes
b64de39 fb6ccf7 b64de39 fb6ccf7 b64de39 75fda81 b64de39 c5a7b7d b64de39 c5a7b7d b64de39 75fda81 b64de39 c5a7b7d b64de39 4995d62 b64de39 34af792 b64de39 34af792 75fda81 b64de39 c5a7b7d b64de39 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | /**
* Application-wide constants.
*
* All magic values, default limits, and static look-up tables
* used across the frontend are centralized here.
*/
// ---------------------------------------------------------------------------
// API
// ---------------------------------------------------------------------------
// Use nullish coalescing to allow empty string as valid value (same-origin API)
export const API_BASE_URL =
import.meta.env.VITE_API_BASE_URL ?? "http://127.0.0.1:8000";
export const API_PREFIX = "/api";
export const API_TIMEOUT_MS = 15000;
export const API_RETRY_COUNT = 2;
export const API_RETRY_DELAY_MS = 1000;
// ---------------------------------------------------------------------------
// Application Metadata
// ---------------------------------------------------------------------------
export const APP_NAME = import.meta.env.VITE_APP_NAME || "KrishiNiti";
export const APP_VERSION = import.meta.env.VITE_APP_VERSION || "1.0.0";
// ---------------------------------------------------------------------------
// Cache Durations (milliseconds)
// ---------------------------------------------------------------------------
export const WEATHER_CACHE_DURATION_MS = Number(
import.meta.env.VITE_WEATHER_CACHE_DURATION_MS || 300000,
);
export const APMC_CACHE_DURATION_MS = Number(
import.meta.env.VITE_APMC_CACHE_DURATION_MS || 600000,
);
// ---------------------------------------------------------------------------
// Feature Flags
// ---------------------------------------------------------------------------
export const FEATURES = {
VOICE_ENABLED: import.meta.env.VITE_ENABLE_VOICE !== "false",
OFFLINE_ENABLED: import.meta.env.VITE_ENABLE_OFFLINE === "true",
};
// ---------------------------------------------------------------------------
// Supported Crop Types (mirrors backend)
// ---------------------------------------------------------------------------
export const SUPPORTED_CROPS = [
"Paddy",
"Wheat",
"Cotton",
"Sugarcane",
"Groundnut",
"Cumin",
"Tomato",
"Potato",
"Onion",
"Chilli",
"Maize",
"Pulses",
"Oilseeds",
"Millets",
];
// ---------------------------------------------------------------------------
// Alert Severity Levels
// ---------------------------------------------------------------------------
export const SEVERITY_LEVELS = {
INFO: "info",
WARNING: "warning",
DANGER: "danger",
};
export const SEVERITY_ORDER = {
info: 0,
warning: 1,
danger: 2,
};
// ---------------------------------------------------------------------------
// Pagination Defaults
// ---------------------------------------------------------------------------
export const DEFAULT_PAGE_SIZE = 50;
export const MAX_PAGE_SIZE = 200;
// ---------------------------------------------------------------------------
// Pincode
// ---------------------------------------------------------------------------
export const PINCODE_LENGTH = 6;
export const PINCODE_PATTERN = /^\d{6}$/;
// ---------------------------------------------------------------------------
// TensorFlow.js Model
// ---------------------------------------------------------------------------
export const MODEL_PATH = import.meta.env.VITE_MODEL_PATH || "/models";
// ---------------------------------------------------------------------------
// Languages
// ---------------------------------------------------------------------------
export const LANGUAGES = {
EN: "en",
HI: "hi",
GU: "gu",
};
export const LANGUAGE_NAMES = {
[LANGUAGES.EN]: "English",
[LANGUAGES.HI]: "हिंदी",
[LANGUAGES.GU]: "ગુજરાતી",
};
export const DEFAULT_LANGUAGE = LANGUAGES.EN;
// ---------------------------------------------------------------------------
// Local Storage Keys
// ---------------------------------------------------------------------------
export const STORAGE_KEYS = {
LANGUAGE: "farmhelp_language",
PINCODE: "farmhelp_pincode",
LOCATION: "farmhelp_location",
RECENT_SEARCHES: "farmhelp_recent_searches",
RECENT_ACTIVITY: "farmhelp_recent_activity",
USER_PREFERENCES: "farmhelp_preferences",
VOICE_SETTINGS: "farmhelp_voice_settings",
VOICE_TUTORIAL_SHOWN: "farmhelp_voice_tutorial_shown",
VOICE_CHAT_HISTORY: "farmhelp_voice_chat_history",
AUTH_USER: "farmhelp_auth_user",
AUTH_TOKEN: "farmhelp_auth_token",
};
// ---------------------------------------------------------------------------
// Routes (frontend)
// ---------------------------------------------------------------------------
export const ROUTES = {
HOME: "/",
LOGIN: "/login",
SIGNUP: "/signup",
PROFILE: "/profile",
DASHBOARD: "/my-dashboard",
DISEASE_DETECTION: "/disease",
WEATHER: "/weather",
APMC: "/apmc",
SCHEMES: "/schemes",
};
// ---------------------------------------------------------------------------
// HTTP Status Codes (commonly referenced)
// ---------------------------------------------------------------------------
export const HTTP_STATUS = {
OK: 200,
BAD_REQUEST: 400,
NOT_FOUND: 404,
TOO_MANY_REQUESTS: 429,
INTERNAL_SERVER_ERROR: 500,
SERVICE_UNAVAILABLE: 503,
};
|