Spaces:
Runtime error
Runtime error
| """ | |
| TreeTrack Application Constants | |
| Centralized configuration constants to eliminate magic numbers | |
| """ | |
| from datetime import timedelta | |
| # Authentication Constants | |
| SESSION_TIMEOUT_HOURS = 8 | |
| SESSION_TIMEOUT = timedelta(hours=SESSION_TIMEOUT_HOURS) | |
| AUTH_TOKEN_LENGTH = 32 | |
| # File Upload Constants | |
| MAX_FILE_SIZE_MB = 10 | |
| MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024 | |
| DEFAULT_SIGNED_URL_EXPIRY = 3600 # 1 hour | |
| EXTENDED_SIGNED_URL_EXPIRY = 7200 # 2 hours | |
| # Database Constants | |
| DEFAULT_TREES_LIMIT = 100 | |
| MAX_TREES_LIMIT = 1000 | |
| DEFAULT_SPECIES_LIMIT = 20 | |
| DEFAULT_OFFSET = 0 | |
| # Validation Constants (units in feet) | |
| MAX_SPECIES_NAME_LENGTH = 200 | |
| MAX_NOTES_LENGTH = 2000 | |
| MAX_STORYTELLING_TEXT_LENGTH = 5000 | |
| MAX_TREE_CODE_LENGTH = 20 | |
| MAX_HEIGHT_FEET = 1000 | |
| MAX_GIRTH_FEET = 200 | |
| # Application Constants | |
| APP_VERSION = "3.0.0" | |
| BUILD_TIME_KEY = "BUILD_TIME" | |
| # File Categories | |
| VALID_IMAGE_CATEGORIES = ["Leaf", "Bark", "Fruit", "Seed", "Flower", "Full tree"] | |
| # Utilities | |
| VALID_UTILITIES = [ | |
| "Religious", "Timber", "Biodiversity", "Hydrological benefit", | |
| "Faunal interaction", "Food", "Medicine", "Shelter", "Cultural" | |
| ] | |
| # Phenology Stages | |
| VALID_PHENOLOGY_STAGES = [ | |
| "New leaves", "Old leaves", "Open flowers", "Fruiting", | |
| "Ripe fruit", "Recent fruit drop", "Other" | |
| ] | |
| # API Rate Limiting | |
| DEFAULT_RATE_LIMIT = 100 # requests per minute | |
| BURST_RATE_LIMIT = 200 | |
| # Pagination Constants | |
| MIN_LIMIT = 1 | |
| MAX_LIMIT_PER_REQUEST = 1000 | |
| # Logging | |
| LOG_LEVEL_DEFAULT = "INFO" | |
| LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" | |
| # Security | |
| BCRYPT_ROUNDS = 12 # For password hashing | |
| # Cache TTL | |
| CACHE_TTL_SECONDS = 300 # 5 minutes | |
| CACHE_TTL_LONG_SECONDS = 3600 # 1 hour | |
| # Default Development Credentials | |
| DEV_PASSWORDS = { | |
| 'AALEKH_PASSWORD': 'dev_password_aalekh', | |
| 'ADMIN_PASSWORD': 'dev_password_admin', | |
| 'ISHITA_PASSWORD': 'dev_password_ishita', | |
| 'JEEB_PASSWORD': 'dev_password_jeeb' | |
| } | |
| # Environment Variables | |
| REQUIRED_ENV_VARS = { | |
| 'production': [ | |
| 'SUPABASE_URL', | |
| 'SUPABASE_ANON_KEY', | |
| 'SUPABASE_SERVICE_ROLE_KEY', | |
| 'AALEKH_PASSWORD', | |
| 'ADMIN_PASSWORD', | |
| 'ISHITA_PASSWORD', | |
| 'JEEB_PASSWORD' | |
| ], | |
| 'development': [] # Optional in development | |
| } | |